Добрый день!
Подскажите, как правильно реализовать выполнение скрипта, после перезагрузки WB.
Этот костыль нужен из-за zigbee выключателей Livolo, они не подключаются к контроллеру после его перезагрузки.
cron(“@reboot”) - выдает ошибку
Код
function enableZigbeePermitJoin() {
// Задержка перед включением Zigbee Permit Join
setTimeout(function () {
log("zigbee2mqtt_permit_join: Задержка перед включением началом работы устройств");
// Устанавливаем значения устройств
dev["dimmer_1"]["Channel 2"] = 100;
dev["dimmer_1"]["Channel 3"] = 100;
log("zigbee2mqtt_permit_join: Каналы 2 и 3 диммера 1 выставлены в 100%");
dev["dimmer_1"]["K2"] = true;
dev["dimmer_1"]["K3"] = true;
log("zigbee2mqtt_permit_join: Реле 2 и 3 диммера 1 выставлены в true");
dev["dimmer_0-10"]["Channel 1"] = 8000;
dev["dimmer_0-10"]["Channel 2"] = 8000;
log("zigbee2mqtt_permit_join: Каналы 1 и 2 диммера 0-10 выставлены в 8000");
// Включаем Zigbee Permit Join
dev["zigbee2mqtt/Permit join"] = true;
log("zigbee2mqtt_permit_join: Включено zigbee2mqtt/Permit join на 1 минуту");
// Задержка перед выполнением zigbee2mqtt/Update devices
setTimeout(function () {
log("zigbee2mqtt_permit_join: Задержка перед выполнением zigbee2mqtt/Update devices");
// Выполняем zigbee2mqtt/Update devices
dev["zigbee2mqtt/Update devices"] = true;
log("zigbee2mqtt_permit_join: Выполнено zigbee2mqtt/Update devices");
// Задержка перед выключением Zigbee Permit Join
setTimeout(function () {
log("zigbee2mqtt_permit_join: Задержка перед выключением Zigbee Permit Join");
// Выключаем Zigbee Permit Join
dev["zigbee2mqtt/Permit join"] = false;
log("zigbee2mqtt_permit_join: Выключено zigbee2mqtt/Permit join.");
log("zigbee2mqtt_permit_join: Процедура восстановления после перезагрузки завершена");
}, 60000); // Задержка перед выключением Zigbee Permit Join
}, 60000); // Задержка перед выполнением zigbee2mqtt/Update devices
}, 10000); // Задержка перед включением Zigbee Permit Join
}
// Обработчик для ручного запуска функции
defineVirtualDevice("ZigbeePermitJoin", {
title: "Восстановление после перезагрузки",
cells: {
manualTrigger: {
type: "pushbutton",
title: "Запустить функцию восстановления"
}
}
});
// Правило для ручного запуска функции
defineRule("manualTriggerRule", {
whenChanged: "ZigbeePermitJoin/manualTrigger",
then: function () {
enableZigbeePermitJoin();
}
});
// Правило для выполнения функции при старте контроллера
defineRule("enableZigbeePermitJoinOnStartup", {
when: cron("@reboot"),
then: function () {
enableZigbeePermitJoin();
}
});