В принципе, ваш первый код может работать, только в вашем варианте к имени свойства надо добавить имя объекта, к которому это свойство относится.
Код: Выделить всё
// Пробую вкл/выкл свет в садике:
if (timeIs(getGlobal('ИМЯ_ВАШЕГО_ОБЪЕКТА.SunRiseTime'))) {
callMethod("ESP-01S.turnOff");
}
if (timeIs(getGlobal('ИМЯ_ВАШЕГО_ОБЪЕКТА.SunSetTime'))) {
callMethod("ESP-01S.turnOn");
}
Затем надо убедиться, что в свойствах "SunRiseTime" и "SunSetTime" сохранено (после вычисления) ПРАВИЛЬНОЕ время. Для теста (чтобы проверить работоспособность кода, а не ждать рассвета) можете вписать туда нужное время руками.
Вычислять можно разными способами (
viewtopic.php?f=27&t=2215). Периодичность вычислений можете определить сами (минимум 1 раз в сутки).
Запускать ваш код (из первого поста) надо раз минуту. Т.е. запуск сценария надо прописать в "onNewMinute" или в Cron.
Ну и напоследок, надо убедиться, что сами методы "ESP-01S.turnOff" и "ESP-01S.turnOn" работают.
Хоть готовый код я вам не написал, но примерную последовательность действий набросал.