куда написать проверить код? // Правило для активации режима влажной уборки при долгом нажатии кнопки
rules.push({
when: function(ctx) {
return ctx.item === ‘wb_mr6c_39_Input1’ &&
ctx.newValue === true && // Кнопка нажата
(new Date().getTime() - ctx.previousEvent.timestamp.getTime()) >= 3000; // Длительность нажатия минимум 3 секунды
},
then: function(ctx) {
// Отправляем команду на включение влажной уборки
items[‘wb_mwac_v2_30_CleaningMode’].postUpdate(true);
}
});
Здравствуйте.
Перенес ваш сообщение в новую ветку, согласно правилам: одна тема - одна проблема.
Пожалуйста, уточните:
- Предполагается, что этот код будет работать с wb-rules?
- Что должен делать этот код?
- Видели нашу статью про ИИ и написание кода?
Добрый день.
Вполне могу попробовать помочь.
Прокомментируйте пожалуйста:
Где определяется объект “ctx” и что за свойства (методы) он имеет?
Что за функция (или макрос) “items”?
подскажите через какой ИИ удобнее писать код, сам пока не владею, максимум кнопки привязать к соседнему реле. ссылка в статье не работает
Да в общем нет разницы какой использовать.
Единственное, совершенно необходимое условие - нужно понимать как будет работать предложенное нейросетью.
Потому что очень уж часто результат не то что не оптимален - он вреден.
Проверил:
От себя рекомендую встроенный в данный портал ИИ инструмент. Найти вы его можете в верхнем правом углу экрана.
При взаимодействии с ИИ советую максимально полно описывать задачу (промпт) - тогда результат будет лучше и меньше итераций взаимодействий потребуется.
Встроенный в данный портал ИИ инструмент РАБОТАЕТ!!! написал несколько скриптов, возникла проблема с погодой из интернета -
// /etc/wb-rules/pogoda_wttr_ru.js
(function () {
defineVirtualDevice(“pogoda_ru”, {
title: “Погода из интернета (wttr.in, RU)”,
cells: {
temperature: { type: “temperature”, value: 0, readonly: true },
raw: { type: “text”, value: “”, readonly: true } // для отладки
}
});
// опрашивать раз в 10 минут
defineRule(“fetch_pogoda_wttr_ru”, {
when: cron(“@every 10m”),
then: function () {
// lang=ru, формат j1 → JSON; используем sed для быстрого извлечения temp_C
var cmd = “curl -s ‘https://wttr.in/Moscow?format=j1&lang=ru’ | sed -n ‘s/."temp_C"\s:\s*"\?\([^",}]\)"\?./\1/p’”;
runShellCommand(cmd, {
captureOutput: true,
exitOnError: false,
callback: function (exitCode, output) {
log(“pogoda_wttr_ru: curl exitCode=” + exitCode + " out=[" + output + “]”);
// сохраняем сырой ответ в текстовую ячейку (коротко), и пытаемся поставить число
dev[“pogoda_ru/raw”] = “exit=” + exitCode + " out=" + output;
var t = parseFloat(output);
if (!isNaN(t)) {
dev[“pogoda_ru/temperature”] = t;
log("pogoda_wttr_ru: set temperature = " + t);
} else {
log(“pogoda_wttr_ru: parse error, output=” + output);
}
}
});
}
});
// первый быстрый запуск через 10 сек после старта (чтобы не ждать 10 минут)
setTimeout(function () {
runRule(“fetch_pogoda_wttr_ru”);
}, 10000);
})();
Добрый день.
А какая помощь требуется?
