Hallo zusammen,
nach einigem Hin und Her habe ich es nun geschafft, das Garagentor mit FHEM zu bedienen. Leider habe ich den Code wohl so angelegt, dass die Darstellung in FHEM etwas merkwürdig ist (WAF=0). Meine bessere Hälfte möchte das Garagentor auch mit dem Handy/Tablet schalten, ich möchte Ihr aber nicht meine wirren Dummies zumuten (siehe Screenshot). Ich bitte deshalb um Eure Hilfe (ich mute sie also Euch zu):
IST-Zustand:
- Rolltor wird potentialfrei geschaltet nach dem Schema AUF-STOP-ZU (Schalten 1 Sekunde)
- Geschaltet wird über HM_LC_SW4_PCB: http://www.elv.de/homematic-4-kanal-schaltaktor-hm-lc-sw4-pcb-komplettbausatz-inkl-gehaeuse.html (http://www.elv.de/homematic-4-kanal-schaltaktor-hm-lc-sw4-pcb-komplettbausatz-inkl-gehaeuse.html)
- Ob das Rolltor geschlossen, offen oder in Fahrt ist, wird über 2 Fensterkontakte (ich weiß, einer würde auch reichen) oben und unten ermittelt: http://www.elv.de/homematic-hm-sec-sc-funk-tuer-fensterkontakt.html (http://www.elv.de/homematic-hm-sec-sc-funk-tuer-fensterkontakt.html)
- Über einen Dummy ("Tor_West") kann ich 1 Sekunde schalten, so dass das Rolltor entweder aufgeht, schließt, oder stoppt. Der Dummy wechselt jedoch dabei immer von ON auf OFF, unabhängig davon, ob das Tor zu ist oder geschlossen
- Um den Zustand des Tores zu sehen, habe ich einen weiteren Dummy ("Tor_West_Status"), der aufgrund der Meldungen/Zustände der beiden Fenster-Sensoren ermittelt wird.
- Ich habe schon versucht, den ersten Dummy ("Tor_West") anhand der Infos aus dem zweiten Dummy ("Tor_West_Status") zu verändern --> Tor zu = Tor_West=OFF. Dies führt aber nur dazu, dass der Aktor HM_LC_SW4_PCB ein weiteres Mal schaltet. Quasi ein Zirkelschluss.
---------------------------------------------------
Hier der Code:
define Tor_West dummy
attr Tor_West alias Garagentor West
attr Tor_West eventMap on:geöffnet off:zu stepAUF:fährt stepAB:Stop
attr Tor_West room Garage
attr Tor_West setList on off
attr Tor_West webCmd on:off
#wenn Dummy Schalter gedrückt wird, Garagentaster 1 Sekunde schalten
define act_on_Tor_West notify Tor_West set CUL_HM_HM_LC_SW4_PCB_1D888F_Sw_02 on-for-timer 1
define Tor_West_Status dummy
attr Tor_West_Status alias Garagentor West Status
attr Tor_West_Status eventMap on:geöffnet off:zu stepAUF:fährt stepAB:Stop
attr Tor_West_Status icon icoGraph
attr Tor_West_Status room Garage
attr Tor_West_Status webCmd on:off:stepAUF:stepAB
#attr Tor_West_Status group Schalter
#attr Tor_West_Status onStateName toggle
#attr Tor_West_Status setList on off stepAUF stepAB
#attr Tor_West_Status setList on off stepAUF stepAB
define Tor_dummy dummy
define Zustand_West_U1 notify GARAGENTOR_WEST_U {\
if("%" =~ m/contact.*closed/) {\
fhem("set Tor_West_Status off;;set Tor_dummy on")}}
define Zustand_West_U2 notify GARAGENTOR_WEST_U {\
if("%" =~ m/contact.*open/) {\
fhem("set Tor_West_Status stepAUF;;set Tor_dummy off")}}
define Zustand_West_O1 notify GARAGENTOR_WEST_O {\
if("%" =~ m/contact.*closed/) {\
fhem("set Tor_West_Status on;;set Tor_dummy on")}}
define Zustand_West_O2 notify GARAGENTOR_WEST_O {\
if("%" =~ m/contact.*open/) {\
fhem("set Tor_West_Status stepAUF;;set Tor_dummy off")}}
################# Watchdog ####################
define Zustand_West_faehrt watchdog Tor_dummy:off 00:00:15 Tor_dummy:on set Tor_West_Status stepAB;; setstate Zustand_West_faehrt defined
---------------------------------------------------
So sieht das in FHEM aus: siehe Anhang
Man beachte den 2. Abschnitt "dummy":
- Garagentor West
- Garagentor West Status
Über Garagentor West schalte ich.
Über Garagentor West Status sehe ich, was passiert.
--> NICHT SCHÖN
Soll-Zustand:
-Funktion wie bisher (Über einen Klick in FHEM den nächsten Schaltzustand auslösen: Auf-Stop-Zu)
-In FHEM nur einen Eintrag: "Garagentor West", welcher nach einem Klick den aktuellen Zustand zeigt, den die Sensoren ermitteln: Auf, Zu oder Fährt.
-->WAF=1000
Ich hoffe, es macht sich überhaupt jemand die Mühe, sich durch meinen fabrizierten Bull***t hier durch zu arbeiten. Ich würde mich auf jeden Fall über jeden noch so kleinen Gedankenschubs freuen, der mich wieder auf die richtige Spur bringt.
Vielen Dank und bis bald. :)
Zitatich möchte Ihr aber nicht meine wirren Dummies zumuten
Aber uns wohl, wa?
Zitatich mute sie also Euch zu):
Ach ja, seufz.
Also ich habe nach etwa der Hälfte des Posts aufgegeben.
Frage: Du kennst den Befehl "setstate" ?
Ändert die den Zustand von Aktoren und Dummies am Webfrontende OHNE eine tatsächlich Schaltung durchzuführen.
Ich weiss nichtmal ob dir das hilft, weil ich deine hochkomplexe Schaltung nicht Durchdrungen hab.
Aber ich würde am Ende irgendwas bauen, was aus dem durch die Sensoren ermittelten Zustand mit z.b. "setstate tor_west on" anpasst. (Oder auf Tor_West_Status, ich durchdringe es wie gesagt nicht.)
Hallo Zrrronggg!
vielen Dank für Deine Hilfe! Den Befehl kannte ich noch nicht und er löst ein Problem von zweien. Das zweite Problem, die Darstellung, habe ich fast bezwungen. Ich werde heute nochmal basteln und die Lösung dann mitteilen.
Bis bald :)
Sooooo.
Nach einiger Lektüre hier im Forum hat es nun geklappt. Vor allem die Weiterbildung bei den Befehlen devStateIcon, eventMap und webCmd und wie diese zusammenhängen, haben mich weitergebracht. Hier ist es ganz gut erklärt: http://forum.fhem.de/index.php/topic,12080.msg71651.html#msg71651 (http://forum.fhem.de/index.php/topic,12080.msg71651.html#msg71651)
Nun zur Lösung. Vielleicht hilft sie ja anderen Usern.
#Dummy für die Schaltung auf der FHEM GUI. Es gibt 4 Zustände: Zu, Auf, fährt, Stop
define Tor_West dummy
attr Tor_West alias Garagentor West
attr Tor_West devStateIcon Zu:shutter_closed:fährt Auf:shutter_open:fährt fährt:shutter_4:Stop Stop:rc_RED:fährt
attr Tor_West eventMap on:Auf off:Zu stepAUF:fährt stepAB:Stop
attr Tor_West room Garage
#attr Tor_West webCmd Auf:Zu:fährt:Stop
#Garagentaster 1 Sekunde schalten
define act_on_Tor_West notify Tor_West set CUL_HM_HM_LC_SW4_PCB_1D888F_Sw_02 on-for-timer 1
#wenn Fensterkontakt unten einen Kontakt hat, setze die Anzeige/Grafik in FHEMWEB auf ZU.
define Zustand_West_U1 notify GARAGENTOR_WEST_U {\
if("%" =~ m/contact.*closed/) {\
fhem("setstate Tor_West Zu;;set Tor_dummy on")}}
#wenn Fensterkontakt unten geöffnet wird, setze die Anzeige/Grafik in FHEMWEB auf FÄHRT.
define Zustand_West_U2 notify GARAGENTOR_WEST_U {\
if("%" =~ m/contact.*open/) {\
fhem("setstate Tor_West fährt;;set Tor_dummy off")}}
#wenn Fensterkontakt oben einen Kontakt hat, setze die Anzeige/Grafik in FHEMWEB auf AUF.
define Zustand_West_O1 notify GARAGENTOR_WEST_O {\
if("%" =~ m/contact.*closed/) {\
fhem("setstate Tor_West Auf;;set Tor_dummy on")}}
#wenn Fensterkontakt oben geöffnet wird, setze die Anzeige/Grafik in FHEMWEB auf FÄHRT.
define Zustand_West_O2 notify GARAGENTOR_WEST_O {\
if("%" =~ m/contact.*open/) {\
fhem("setstate Tor_West fährt;;set Tor_dummy off")}}
#Wenn nach 30 Sekunden Fahrt des Garagentors weder der Fensterkontakt oben oder unten einen Kontakt meldet, muss das Tor in Mittelstellung gestoppt worden sein. Der Zustand wird als gestoppt angezeigt.
define Tor_dummy dummy
define Zustand_West_faehrt watchdog Tor_dummy:off 00:00:30 Tor_dummy:on setstate Tor_West Stop;; setstate Tor_West defined
GARAGENTOR_WEST_U und GARAGENTOR_WEST_O sind die beiden HM-Fensterkontakte. CUL_HM_HM_LC_SW4_PCB_1D888F_Sw_02 ein Kanal des HM-Aktors. Die defines dieser Geräte sind nicht im Code aufgeführt.
Das Garagentor wird also nur noch über den Klick auf das Symbol (siehe Angang) gesteuert. Es werden 4 Zustände angezeigt:
-Garagentor zu (shutter_closed.png)
-Garagentor fährt (shutter_4.png)
-Garagentor zu (shutter_open.png)
-Garagentor in der Mitte gestoppt (rc_RED.png)
FHEM macht wirklich Spaß, vielen Dank an die Macher :D
Falls die Spezialisten hier der Meinung sind, dass der Code in das Wiki oder woandershin als Codebeispiel passt, füge ich es gerne ein.
Es gibt zu einem sehr ähnlichen Fall im Wiki bereits einen Artikel. die dort vorgestellte Lösung ist wesentlich wengier Komplex und daher womöglich für Anfänger besser geeignet.
http://www.fhemwiki.de/wiki/Schalten_in_Abhängigkeit_von_Türkontakt
der Link ist etwas unglücklich. :)
Müsste so lauten:
http://www.fhemwiki.de/wiki/Schalten_in_Abhängigkeit_von_Türkontakt (http://www.fhemwiki.de/wiki/Schalten_in_Abh%C3%A4ngigkeit_von_T%C3%BCrkontakt)