Forum użytkowników automatyki budynkowej
Z-wave => OpenHab, Domoticz, Jeedom itd... => Wątek zaczęty przez: Kondzio75 w Czerwiec 12, 2016, 10:09:32 pm
-
Witam
Mam prośbę o pomoc w temacie OpenHab/automatyka budynkowa.
Chciałbym wyłączyć lub włączyć sobie przy pomocy OpenHab'a matę elektryczną grzewczą podłogową i zakupiłem u chińczyka przekaźnik ethernetowy
http://www.sainsmart.com/relay-1/sainsmart-rj45-tcp-ip-remote-controller-board-with-8-channels-relay-integrated.html
OpenHab pelnilby rolę termostatu (dane z dwóch termometrow podlaczonych do ESP8622-12- jeden pod plytkami a drugi metr nad podlogą) ...Chciałbym również mieć mozliwosc recznego wlaczenia sobie ogrzewanie a nie przy pomocy np tylko komórki z aplikacji HABdroid ...akurat ten przekaźnik chiński ma wejścia GND i IN i jak się zewrze je to załączy lub rozłączy odpowiedni przekaźnik...problem w tym że musi o tym także widzieć OpenHab(tak mi się wydaje).Jedynym chyba sposobem aby o tym wiedział jest odpytanie strony w chińskim urządzeniu gdzie jest status przekaznikow(zmienia się on dynamicznie w zaleznosci od zwarcia wejścia).Najprosciej bym to zrobil curl'em spod linuksa ale trzeba by parsowac z kilka sekund strone html ze stanem przekaznikow...i tutaj nie wiem jak to zrobić i mialbym prosbe o jakies sugestie ew. strony do poczytania o takim parsowaniu.
Z gory dzięki za pomoc.Pozdrawiam.
HTML po odpytaniu np. curl'em urządzenia wygląda tak(stan przekaźników od 5 do 8 - wyłączone)
<center><p>Relay-ALL  ON   <font color="#00FF00">  </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/45"> ALL-ON</a><p><center><p>Relay-ALL OFF <font color="#FF0000">    </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/44"> ALL-OFF</a><p><center><p> Relay-05: <font color="#FF0000"> OFF  </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/09">ON/OFF-05</a><p><center><p> Relay-06: <font color="#FF0000"> OFF  </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/11">ON/OFF-06</a><p><center><p> Relay-07: <font color="#FF0000"> OFF  </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/13">ON/OFF-07</a><p><center><p> Relay-08: <font color="#FF0000"> OFF  </font> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/15">ON/OFF-08</a><p><center><p> Change IP/Port:     <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/41"> Enter</a><p> <small><a href="http://192.168.1.222/30000"></a></small><a href="http://192.168.1.222/30000/42">Next Page</a><p>
-
Ja bym pokombinował z http binding i regexp-ami:
http="<[http://host/url:60000:REGEX(.*?Relay-08: <font color="#FF0000">(O.*?) .*)]"
Ponieważ na jednej stronie wyświetlane jest kilka przekaźników to warto może użyć modułu cache aby ograniczyć ilość pobierań strony.
w openhab.conf:
http:relayCache.url=http://host/url
http:relayCache.updateInterval=60000
i w itemie:
[code]http="<[relayCache:30000:REGEX(.*?Relay-08: <font color="#FF0000">(O.*?) .*)]"
[/code]