JSON może wymieniać dane między serwerem, czyli np. Rasberry Pi, a aplikacją klienta, czyli np. Domoticz.
Format ten możemy wykorzystać w projektach na Rasberry Pi pisanych np. w Pythonie lub innym języku programowania i wykorzystać np. do obsługi nietypowych czujników, których nie obsługuje sam Domoticz lub innych urządzeń.
Komendy JSON dla Domoticz opisane są na stronie WIKI Domoticz -> Link
Komunikację JSON możemy sprawdzić wpisując w adres przeglądarki internetowej:
Ogólny adres:
http://ip-domoticz:port/json.htm?type=rodzaj_komendy
Komendy jakie możemy wykorzystać w Domoticz pokazuje poniższy obrazek
Czyli, w moim przypadku będzie, to: http://192.168.3.105:8080/json.htm?type=rodzaj_komendy
Wpisując: http://192.168.3.105:8080/json.htm?type=devices&rid
zobaczymy wszystkie urządzenia, jakie mamy w Domoticz
Możemy też zobaczyć status konkretnego urządzenia wpisując jego IDX, odczytamy go wchodząc w Konfiguracja -> Urządzenia w Domoticz
Jak widać np. dla urządzenia Kwiatki Idx wynosi 38, więc po wpisaniu:
http://192.168.3.105:8080/json.htm?type=devices&rid=38
zobaczymy status urządzenia Kwiatki
Można również odczytać status grupy urządzeń widocznych w menu Domoticz, czyli Przełączniki, Temperatura, Pogoda, Użytkowe, wpisując dla:
np. dla przełączników:
http://192.168.3.105:8080/json.htm?type=command¶m=getlightswitches
lub odczytać wschód i zachód słońca:
http://192.168.3.105:8080/json.htm?type=command¶m=getSunRiseSet
Bardziej przydatne może być sterowanie przełącznikami, np dla przełącznika o idx = 21, komenda będzie taka:
Włączenie:
http://192.168.3.105:8080/json.htm?type=command¶m=switchlight&idx=21&switchcmd=On
Wyłączenie:
http://192.168.3.105:8080/json.htm?type=command¶m=switchlight&idx=21&switchcmd=Off
W Pythonie do pobierania i przesyłania adresów sieciowych służy moduł urllib2, więcej o tym module możemy poczytać na tej stronie -> Link
Możemy napisać dowolny program, który będzie pobierał i przesyłał dane do Domoticz.
Prosty program, który włączy lampkę, odczeka 2 sekundy i wyłączy wygląda tak:
Kod programu jest do pobrania stąd -> Link