Интеграция с Domoticz · Невотон
Главная / Интеграция с Domoticz

Интеграция с 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 нажать на любом из датчиков на кнопку «Журнал», то можно просмотреть графики изменения отображаемых величин.