od dobrych kilku lat działam na Raspberyy pi z OpenHab 2 (obecnie od dawna nieaktualizowana wersja 2.4.0).
Mój "smarthome" to w głównej mierze kilkanaście sonoff afe firmware (na potrzeby sterowania światłem) + bramka zigbee xiaomi + bezprzewodowe włączniki zigbee xiaomi.
Na raspbbery zainstalwoałem również serwer MQTT, dzięki czemu współpraca "xiaomi gateway" z "sonoof afe" jest bezproblemowa.
Mój problem polega na tym iż nie wiem jak spiąć optymalnie Shelly Plus1PM z OpenHab. Nie zależy mi na odczycie pomiaru energii, chciałbym aby jedynie Openhab wiedział w jakim stanie jest przekaźnik i sterowanił nim, tak jak obecnie sonoofami.
Próbowałem:
- skonfigurować połączenie MQTT, ale shelly wysyła bardzo dużo tematów po MQTT i nie wiem bardzo co dokładnie powinienem wpisać w pliku items. Teraz dla sonoff mam np tak:
"Switch sonoff_kuchnia_zyrandol "Żyrandol" (KuchniaGroup, AllLightsGroup) [ "Lighting" ] {mqtt=">[broker:/kuchnia/zyrandol/switch/cmd:command:ON:on], >[broker:/kuchnia/zyrandol/switch/cmd:command:OFF:off], <[broker:/kuchnia/zyrandol/switch/state:state:ON:on], <[broker:/kuchnia/zyrandol/switch/state:state:OFF:off]"}"
- próbowałem zainstalować w openhab binding shelly, ale niestety mam za starą wersję openhaba, a aktualizacja do nowszej wiąże się praktycznie ze stawianiem wszystkiego od nowa... Co jest raczej niemożliwe ze względu na to iż przez kilka lat nazbierało mi się na serwerku różnych dziwnych smarthomeowych rzeczy.
Obecnie mogę sterować przekaźnikiem za pomocą web-api:
http://192.168.1.190/relay/0?turn=off
http://192.168.1.190/relay/0?turn=on
http://192.168.1.190/rpc/Switch.GetStatus?id=0
Niestety w takim przypadku nie wiem jak odświeżać status urządzenia w openhab (sytuacja gdy stan przekaźnika zostanie zmieniony bez udziału openhab)
Jak najprościej mogę sterować shelly z poziomu openhab 2.4? Proszę o jakiekolwiek wskazówki - resztę doszukam, ewentualnie jakieś przykłady z własnego "podwórka".
Shelly wysyła do brokera mqtt informacje w postaci tablicy json, jak przełożyć wartości z "output:true/false" na status obiektu switch w openhab?
{"id":0, "source":"HTTP", "output":true, "timer_started_at":1662714862.96, "timer_duration":7200.00, "apower":24.2, "voltage":231.6, "current":0.113, "aenergy":{"total":20.304,"by_minute":[520.068,520.720,520.068],"minute_ts":1662715858},"temperature":{"tC":54.6, "tF":130.3}}
niestety nie mam juz openHab 2 i ciężko tak na czuja, jak to tam było
Jeśli w plikach konfigurujesz to cos takiego mniej więcej próbowałbym w thing od brokera
Bridge mqtt:broker:blabla "MQTT Broker" [ host="", port=..........] { Thing topic shelly "Shelly" { Channels: Type switch : przekaznik "Przekaznik shell" [ stateTopic="tutaj-temat-shelly-wysyla-tego-jasona", on="true", off="false", transformationPattern="JSONPATH:$.output" ] } }
gdzies w OH2 musi zostać zainstalowany JSONPATH chyba w transformacjach
pzdr.a