Интеграция с Domoticz
Интеграция с Domoticz
В сегменте DIY большой популярностью пользуется opensource-сервер автоматики Domoticz. Его отличает возможность интеграции в рамках одного проекта большого количества устройств автоматики с разнообразными интерфейсами.
Теперь мы интегрируем в проект на базе Domoticz и модуль PCR-6.0.1-E. Для этого воспользуемся виртуальным типом оборудования «HTTP/HTTPS poller»
На вкладке Настройки/Оборудование добавим оборудование типа HTTP/HTTPS poller. Назовем его, например, PCR-6.0.1-E Http Poller. Это оборудование будет с заданной в параметре «Обновить» периодичностью отправлять на указанный в параметре «URL» адрес HTTP-запрос (все тело запроса, включая адрес, должно быть указано в этом параметре: 192.168.XXX.YYY/get/m2m/inputs?type=specific&number=All&hash=21232f297a57a5a743894a0e4a801fc3
В параметре «Команда» указываем имя файла, содержащего программу-парсер для обработки ответа от нашего оборудования. Эта программа на языке Lua должна располагаться в специальном каталоге /domoticz/scripts/lua_parsers (по умолчанию в этом каталоге лежат файлы примеров написания таких обработчиков от авторов Domoticz). Обработчик прост и выполняет всего две функции: извлекает из JSON-ответа модуля необходимые данные и отправляет эти данные для отображения в виртуальные устройства, созданные в Domoticz для каждого из вида данных модуля.
После того как создано и сохранено виртуальное оборудование с именем PCR-6.0.1-E Http Poller надо создать виртуальные датчики для отображения считанных значений счетчиков (по одному устройству для каждого отображаемого значения, то есть напряжение, ток, мощность, энергия и т.д.). Чтобы создать виртуальные датчики, привязанные к типу созданного ранее оборудования, надо на вкладке «Настройка/Оборудование» на строке PCR-6.0.1-E нажать на кнопку «Создать виртуальные датчики», в появившемся окне задать имя датчика (например, Watt-meter), выбрать из выпадающего списка подходящий тип датчика, который определит метрику отображаемых данных, и нажать на кнопку «Сохранить». После этого созданный виртуальный датчик появится на вкладке «Настройки/Устройства» и на вкладке «Вспомогательные».
Надо обратить внимание на значение идентификатора Idx, которое присваивается при создании виртуального датчика (в левой колонке таблицы устройств). Это значение надо присвоить переменной, ссылающейся на виртуальный датчик в программе-обработчике.
— Устанавливаем идентификаторы Idx виртуальных датчиков
local PCR-6.0.1-E_U_id = 1
local PCR-6.0.1-E_I_id = 2
local PCR-6.0.1-E_W_id = 3
local PCR-6.0.1-E_E_id = 4
— Получить содержание ответа
s = request[‘content’];
— Учесть иерархию .inputs.data[0].values для json-ответа
local PCR-6.0.1-E_U = domoticz_applyJsonPath(s,’.inputs.data[0].values.U’)
local PCR-6.0.1-E_I = domoticz_applyJsonPath(s,’.inputs.data[0].values.I’)
local PCR-6.0.1-E_W = domoticz_applyJsonPath(s,’.inputs.data[0].values.W’)
local PCR-6.0.1-E_E = domoticz_applyJsonPath(s,’.inputs.data[0].values.energy.T1′)
— Отправить данные в виртуальные датчики (устройства)
domoticz_updateDevice(PCR-6.0.1-E_U_id,»,PCR-6.0.1-E_U)
domoticz_updateDevice(PCR-6.0.1-E_I_id,»,PCR-6.0.1-E_I)
domoticz_updateDevice(PCR-6.0.1-E_W_id,»,PCR-6.0.1-E_W)
domoticz_updateDevice(PCR-6.0.1-E_E_id,»,PCR-6.0.1-E_E)
— Конец обработчика
После сохранения файла PCR-6.0.1-E_Parsers.lua в каталоге /domoticz/scripts/lua_parsers виртуальные датчики начнут с заданной периодичностью отображать значения, полученные от модуля PCR-6.0.1-E.
Если в интерфейсе Domoticz нажать на любом из датчиков на кнопку «Журнал», то можно просмотреть графики изменения отображаемых величин.