Hallo zusammen,
hab momentan folgende 3 notifys:
1.define nRolloKipp notify WohnDoor.tilted {if (ReadingsVal("TerrasseRoll", "state", "on") eq "off") {fhem ("set TerrasseRoll 15%")}}
Wenn der Türkontakt Sensor "WohnDoor" den Status gekippt, hier "tilted" erkennt und der Rollladen "TerrasseRoll" geschlossen ist, dann fährt der Rollladen 15% auf. Zweck: Die Tür ist gekippt und durch die Rollladen Schlitze kommt Luft rein.
2.define nRolloZu notify WohnDoor.closed {if (Value("TerrasseRoll") eq "15") {fhem ("set TerrasseRoll off")}}
Quasi das Gegenteil zu nRolloKipp. Ist der Rollladen auf 15% und der Türgriff wird geschlossen, dann fährt der Rollladen wieder zu.
3.define nRolloAuf notify WohnDoor.open {if (Value("TerrasseRoll") eq "off" || Value("TerrasseRoll") eq "15") {fhem ("set TerrasseRoll on")}}
Ist der Rollladen geschlossen oder auf 15% und die Tür wird geöffnet, dann fährt der Rollladen hoch.
Alle Codes funktionieren einwandfrei. Allerdings habe ich jetzt 3 notifys für dieses recht "primitives" Zusammenspiel zwischen dem Sensor und dem Aktor.
WohnDoor: Türgriff Kontaktsensor HM-Sec-RHS
TerrasseRoll: Rollladenaktor HM-LC-BI-FM
Wie kann ich die Codes zusammenfassen? Eventuell als Mehrzeiler?
Machen mehrere notifys FHEM irgendwann langsam? ???
Ich hoffe das sind genug Infos. :D
Schon mal Danke im Voraus.
Gruß Alex
Hallo,
alle 3 löschen.
1 Notify erstellen - im regexp auf
WohnDoor.(tilted|closed|open)
ich hoffe das klappt so - prüfen.
Im Code die 3 Abfragen und Bedingungen einbauen und fertisch.
Sollte dann so in etwa aussehen:
define nRollo notify WohnDoor.(tilted|closed|open) {
if($EVENT eq "tilted") {
if (ReadingsVal("TerrasseRoll", "state", "on") eq "off") {
fhem ("set TerrasseRoll 15%");
}
}
if($EVENT eq "closed") {
if (Value("TerrasseRoll") eq "15") {
fhem ("set TerrasseRoll off");
}
}
if($EVENT eq "open") {
if (Value("TerrasseRoll") eq "off" || Value("TerrasseRoll") eq "15") {
fhem ("set TerrasseRoll on");
}
}
}
Ich hab hier deinen Code 1:1 übernommen und kein Feintuning der Zustände vorgenommen.
Auch kann der Code voller Fehler sein insb. weiß ich nicht ob in $EVENT nur tilted oder closed oder open steht oder ob $EVENT auch WohnDoor enthält - nach meinem schätzen aber eher nicht.
" und ( und { bitte selbst abzählen - du darfst den Code aber auch gerne abändern wie du es für sinnvoller erachtest.
ZitatMachen mehrere notifys FHEM irgendwann langsam?
Nicht unbedingt solange die regexp genau genug sind.
Grüße
Super hat fast auf anhieb geklappt. :P
Der funktioniert:
define nRollo notify WohnDoor.(tilted|closed|open) {
if($EVENT eq "tilted") {
if (ReadingsVal("TerrasseRoll", "state", "on") eq "off") {
fhem ("set TerrasseRoll 15%");
}
}
if($EVENT eq "closed") {
if (Value("TerrasseRoll") eq "15") {
fhem ("set TerrasseRoll off");
}
}
if($EVENT eq "open") {
if (ReadingsVal("TerrasseRoll", "state", "on") eq "off" || Value("TerrasseRoll") eq "15") {
fhem ("set TerrasseRoll on");
}
}
}
Im letzten Teil musste ich Value durch ReadingsVal ersetzten.
Hatte dann wohl auch nicht bei meiner ersten Variante funktioniert.
Warum Value nicht funktioniert hat versteh ich zwar nicht. Scheint mir als könnte man nicht 2 mal mit Value in einer if-Abfrage abfragen.
Auf jeden fall funktioniert jetzt der leicht überarbeitete Code. 8)
Danke an Puschel74, vielleicht kann ich auf diese Art auch ein paar andere notifys bei mir kürzen.
Gruß Alex