как три устройства (RO - чисто созерцаем параметр, RW - можем менять)
RO - Текущая температура пола 20.2
RW - Температура к которой стремится термостат 30.5
RW - Состояние термостата вкл/выкл
А вот как этот термостат выглядит в WB Web UI
Возникает ряд вопросов
Откуда такое именование устройств и параметров? Есть ли какой-то способ делегирования от z-way в wb ну или хотябы “ручками” назначить?
Первому zway устройству соответствует 0_49_1, по нему вопросов нет
0_67__11 я так понимаю соответствует второму девайсу в плане чтения, но как его менять?
Не понятно что за параметр 0_64__1, третья температура, но чего, откуда?
Третьему устройству соответствует 0_64, но почему она в виде range? ON/OFF должно быть
Также хотелось бы управлять другими параметрами доступными через zway expert ui, например режим работы термостата, есть ли какой способ вытащить эти “кишки”?
Внутри каждого Z-Wave устройства много параметров, которые меняются и которые можно менять. Большинство из них - служебные (флаги состояний, поддержка каких-то специальных возможностей и т.д.). Наша служба интеграции https://github.com/contactless/wb-mqtt-zway/ старается вытащить самые важные в интерфейс Wiren Board. К сожалению, угадывает она не всегда.
Если вы связаны с программирование, вы можете модифицировать wb-mqtt-zway под ваше устройство, и пересобрать его.
wb-mqtt-zway работает с софтом Z-Way через их API (начать https://www.generationrobots.com/media/Domotique/Z-Way-developers-documentation.pdf) Оно отдаёт все параметры всех устройств, а мы в них копаемся. Способа получить только параметры, которые у вас отображаются на главной странице Z-Way, насколько нам известно, нет.
Если какого-то нужного параметра нет, то можно его получить вручную, правда, довольно сложным способом. Для этого нужно из движка правил выполнить внешнюю команду, что-то вроде curl -s -g -u admin:put_password_here localhost:8083/ZWaveAPI/Run/devices[1].instances[0].commandClasses[113].data[6].event.value
– так я получал значение датчика открытия окна, значение с которого по умолчанию тоже не выводилось в наше ПО.
Как понять, что должно быть вместо devices[1].instances[0].commandClasses[113].data[6].event.value
?
Для этого можно выполнить команду до последнего слэша, тогда она выдаст большой файл со всеми параметрами все устройств. После этого можно поменять требуемый параметр (например, погреть датчик), и посмотреть разницу выводов (например, через diff). Так вы поймёте, в каком именно параметре хранится нужное значение.