Domoticz. Взаимодействие с помощью JSON


Взаимодействуем с системой Domoticz с помощью JSON запросов.

Рассмотрим формат взаимодействия на примере:

http://username:password@domoticz-ip:port/json.htm?type=devices&rid=IDX

username - логин системы

password - пароль системы

Если у вас не установлена авторизация данные параметры можно не указывать.

domoticz-ip - Ip системы

port - порт системы

IDX - номер устройства/датчика в системе.

Использовать JSON запросы можно либо через браузер либо в программах/скриптах на языках, поддерживающих данную функцию.

Выполнив в браузере запрос (для датчика температуры):

http://D**:*****@127.0.0.1:8080/json.htm?type=devices&rid=12

получим ответ от сервера вида:

{
"ActTime" : 1510778495,
"ServerTime" : "2017-11-15 23:41:35",
"Sunrise" : "08:05",
"Sunset" : "16:21",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 0,
"CustomImage" : 0,
"Data" : "23.7 C",
"Description" : "",
"Favorite" : 0,
"HardwareID" : 3,
"HardwareName" : "Gateway",
"HardwareType" : "Xiaomi Gateway",
"HardwareTypeVal" : 95,
"HaveTimeout" : false,
"ID" : "74BD",
"LastUpdate" : "2017-11-15 22:59:33",
"Name" : "Xiaomi Temperature",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" : [ 0 ],
"Protected" : false,
"ShowNotifications" : true,
"SignalLevel" : "-",
"SubType" : "LaCrosse TX3",
"Temp" : 23.699999999999999,
"Timers" : "false",
"Type" : "Temp",
"TypeImg" : "temperature",
"Unit" : 189,
"Used" : 1,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "12"
}
],
"status" : "OK",
"title" : "Devices"
}

Как видим сервер возвращает параметры датчика: температуру, номер устройства, дату последнего обновления и др.

Все JSON запросы возвращают строку вида:

"status" : "OK"

или "ERR" если при возникновении ошибки.

Рассмотрим часть запросов для ознакомления с возможностями JSON запросов.

Получить статус устройства с номером IDX:

/json.htm?type=devices&rid=IDX

Получить статус всех устройств добавленных на панель (избранные):

/json.htm?type=devices&used=true&filter=all&favorite=1

Получить время заката и рассвета:

/json.htm?type=command&param=getSunRiseSet

Добавить запись MESSAGE в журнал Domoticz:

/json.htm?type=command&param=addlogmessage&message=MESSAGE

Включить/выключить лампу с номером IDX:

/json.htm?type=command&param=switchlight&idx=99&switchcmd=On

/json.htm?type=command&param=switchlight&idx=99&switchcmd=Off

Выключить систему:

/json.htm?type=command&param=system_shutdown

Перезагрузить систему:

/json.htm?type=command&param=system_reboot

Обновить значение TEMP датчика температуры с номером IDX:

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP

Обновить значение текстового TEXT виртуального датчика с номером IDX:

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEXT

Со всеми возможностями управления Domoticz с помощью JSON можно ознакомится на официальной странице в википедии Domoticz.