Сценарии пользователей
-
Добрый вечер! Есть связка RPi4 + Mega (пока по USB). Подскажите, как работать с Serial для выдачи команды в канал от IHS к устройству, подключенному к Ардуино, и приема из канала ответа устройства, подключенного к Ардуино? Только по Modbus, или есть еще какие решения? Заранее спасибо!
-
Участник @kostinanton написал в Сценарии пользователей:
Добрый вечер! Есть связка RPi4 + Mega (пока по USB). Подскажите, как работать с Serial для выдачи команды в канал от IHS к устройству, подключенному к Ардуино, и приема из канала ответа устройства, подключенного к Ардуино? Только по Modbus, или есть еще какие решения? Заранее спасибо!
Только по Modbus. Других вариантов сейчас нет
-
@intrahouse в есть наработки по МЭК-61850?
-
@intrapro а подскажите, как из свойства time получить значения минут и секунд? Устанавливаю на 00:00:00, в логе вижу значение:
03.03 16:49:47.867 log: 4492800
как преобразовать?
-
@homa, если Вы имеете в виду параметр сценария type:"time", там банальные секунды
Вот например сценарий определяет параметры auto_afterOn, auto_afterOffconst kev_speed_status = Device("SensorD","Состояние скоростей", [ {"name":"auto_afterOn", "note":"После ручного включения", "type":"time", "val":0}, {"name":"auto_afterOff", "note":"После ручного выключения", "type":"time", "val":0} ]); script({ start() { ..... this.log("auto_afterOn="+kev.getParam('auto_afterOn')) ...... } });
Задаем 1 час
Результат:
03.03 17:55:42.230 log: auto_afterOn=3600Если поставить 00:00:00
03.03 17:55:04.036 log: auto_afterOn=0Или что-то другое имелось в виду?
-
@intrapro я и ожидал секунды... но почему-то значение в 52 дня лежит, хотя выставлено 0
-
@homa да странно А если изменить?
-
@intrapro значение всегда секунды с уставки + ровно 52 дня)
-
@homa для любого параметра типа time??
-
@intrapro в рамках одного сценария для обоих параметров такая ситуация
-
@homa а меняете вы значения параметров интерактивно? Или из сценария?
-
@intrapro нашел проблему. изначально я в сценарии задал значение 4573457, потом крутил бегунки, потом поставил 0. На других устройствах все работает штатно, а вот те, на которых изначально было не то значение, не получается вернуть в строй.
-
@homa придется из сценария разово записать 0 или другое кол-во секунд в пределах суток.
-
@intrapro да, получилось. спасибо! И сразу другой вопрос: нельзя запускать мультисценарий из расписания? там можно выбрать только экземпляр с конкретным устройством...
-
Пользователь @homa написал в Сценарии пользователей:
И сразу другой вопрос: нельзя запускать мультисценарий из расписания? там можно выбрать только экземпляр с конкретным устройством...
Запустить можно конкретный сценарий. Мультисценарий - это как бы шаблон. Имеется в виду запустить все экземпляры мультисценария сразу? Нет, пока только по одному
-
Можно. Опять таки через доп актуатор.
В мультисценарий внести еще один элемент - актуатор.
И сделать его триггером. Чтобы сценарий запускался, когда этот актуатор, например, включается.Во все наборы устройств мультисценария этот актуатор сделать одним и тем же.
А его можно включать/выключать другим скриптом. Который запускать по расписанию.
-
@Erik Да, верно. Нормальный вариант
-
@Erik я добавил бинарный датчик и через плагин сенсорэмулятор задал период изменения. Суть таже - триггер) неудобно одинаковое устройство писать всем экземплярам мультисценария. Нужно групповое добавление устройств в мультисценарий)
-
Пользователь @homa написал в Сценарии пользователей:
неудобно одинаковое устройство писать всем экземплярам мультисценария.
Почему?
У системы есть состояния.
Это режим охраны, режим работы отопления, присутствие, и все что угодно еще.
И если в разных состояниях должны быть разные сценарии, нужно создавать устройства - признаки этих состояний, и проверять их значения в скриптах.
Или запускать скрипты при изменении их состояний.
И это как раз удобно. Можно не только состояниями оперировать, но и сочетаниями состояний. Например "экономичный режим отопления в отсутствии хозяев при включенной охране".
Полностью развязывает руки. И вы можете менять состояния вручную, скриптом, по расписанию, по событию, и менять поведение системы.
А добавить эти устройства в мультисценарии нужно 1 (один) раз. Зачем вам другой механизм?
-
@Erik Вы меня не поняли) чтобы выполнять мультисценарий циклически делаем виртуальное устройство, которое меняет состояние каждые 50сек:
Запускаем мультисценарий по изменению этого датчика:
чтобы все экземпляры сценария срабатывали каждые 50сек нужно добавить этот бинарный датчик ко всем экземплярам:
И вот это неудобно каждый раз добавлять одинаковое устройство в "Запускать для устройств". Было бы удобно прописать в коде устройство напрямую, но это не поддерживается в мультисценариях