Доброго вечера.
Пытаюсь написать скрипт для управлениями кондиционерами через ИК и движок правил.
То что осилил:
- Виртуальное устройство с параметрами кондея
- JS, который берет параметры кондея, генерит ИК команду и собирает байтики для записи в регистр 2000+ (для того чтобы положить ИК команду RAM)
Проблема эти байтики передать через API. Вижу два варианта:
- Выполнить компнду
modbus_client
из JS. Плохо тем, что, похоже, перед и после каждой записи придется останавливать драйвер которыйwb-mqtt-serial
. Поэтому этот вариант не подходит. - Настроить регистр “строку” с адресом 2000+ и писать в нее через
dev
. Тут проблемы две:- Я не смог настроить регистр через конфиг. Пробовал добавить кастномный переметр через веб интерфейс (строка, holding register длинной 18 байт начиная с 2000) - после сохранения падает клиент. Что я делаю не так и можно ли так вообще?
- Буффер будет передаваться каждый раз. Можно ли как то настроить чтобы передавался один раз, или выставить низкий приоритет для кастомной проперти?
В идеале конечно бы иметь возможность в wb-mqtt-serial
передавать данные один раз. Например, при получении обновления от MQTT добавлять его в очередь и передавать ровно один раз. Я готов законтребютить это в GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver если фича устраивает архитектурно.
Подобный режим, помимо этого случая, думаю, будет очень полезен при пуско-наладке. Также можно добавить противополжный вариант: читать данные из регистра ровно один раз. Очень не хватает этого для чтенияи, например, серийного номера или других настроек однократно. Но, это не относится к этой теме. Тоже готов законтребютить это если договоримся об архитектуре.
p.s. если поможете - скрипты могу выложить в общий доступ. Будет доступно полное управление следующими кондеями (включая передачу температуры iFeel!):
-
Airwell
-
Ballu
-
Carrier
-
Daikin
-
Fuego
-
Fujitsu
-
Gree
-
Gree_YAC
-
Hitachi
-
Hyundai
-
MitsubishiElectric
-
MitsubishiHeavy
-
Nibe
-
PanasonicCPK
-
PanasonicCS
-
Philco
-
Samsung
-
Sharp
-
Toshiba
Проверить смогу только Gree, других кондеев нет Код для формирования ИК сингалов отсюда: Raw-IR-decoder-for-Arduino/rawirdecode at master · ToniA/Raw-IR-decoder-for-Arduino · GitHub