Garagentorsteuerung inkl. Tür/Fensterkontakt - Status devStateIcon Web-Frontend

Begonnen von maxxnet, 24 Juni 2016, 10:38:22

Vorheriges Thema - Nächstes Thema

maxxnet

Hallo zusammen,

für meine Garagentorsteuerung setze ich den HM-LC-Sw4-WM und einen HM-Sec-SCo ein. Mein Hörmann-Garagentorantrieb hat für externe Taster getrennte Eingänge für Auf, Zu und Stopp, weshalb ich auch zwei der vier Kanäle des HM-LC-Sw4-WM verwenden kann (Stopp benötige ich nicht). Der Fensterkontakt soll mir, wenn das Tor nicht über FHEM gesteuert wird, den Status des Garagentors im Webfrontend aktualisieren.

Hier erstmal mein Code:


define Garagentor dummy
attr webCmd Auf:Zu
attr room Garage
attr group Garage
attr devStateIcon Auf:fts_garage_door_10@red Zu:fts_garage_door_100@green
attr icon fts_garage

define Garage_Schalter_Auf notify Garagentor:Auf set Garage_Sw_01 on-for-timer 1
define Garage_Schalter_Zu notify Garagentor:Zu set Garage_Sw_02 on-for-timer 1

define Garage_Sensor1_Auf notify Tor_Sen1 { if(Value("Tor_Sen1") eq "open") { fhem("setstate Garagentor Auf")}}
define Garage_Sensor1_Zu notify Tor_Sen1 { if(Value("Tor_Sen1") eq "closed") { fhem("setstate Garagentor Zu")}}


Das Ganze funktioniert soweit auch sehr gut.

Mein Problem ist nun aber der Umstand, dass mir "setstate" das Webfrontend nicht automatisch aktualisiert. Soviel ich herausbekommen habe liegt es daran, dass "setstate" kein Event auslöst. Gut dachte ich mir, nimmst du einfach "setreading". Damit wird dann auch das Webfrontend bei verändertem Sensorstatus aktualisiert. Leider habe ich aber dann das Problem, dass mir das setzen des Readings "state" auf "Auf" bzw. "Zu" meine Garagentorschalter, welche auf "Auf" bzw. "Zu" reagieren, auslöst und das Tor dann tatsächlich öffnet bzw. schließt.

Wie kann ich das umschiffen? Würde sich das mit Hilfe einer EventMap lösen lassen? Gibt es hierfür vielleicht eine ganz andere Lösung?

Danke für eure Hilfe

Grüße Markus

Ellert

Hier ist beschrieben, wie Du das Frontend aktualisieren kannst http://www.fhemwiki.de/wiki/ReadingsGroup#Links_und_Trigger

Dann kannst Du setstate und danach myUtils_refresh("WEB")} aufrufen.

maxxnet

Herzlichen Dank. Werde ich gleich heute Abend ausprobieren.

lg Markus