Ich stehe auf dem Schlauch. Ich schalte mit einem Intertechno Wandschalter verschiedene Funksteckdosen.
define Schlafschalter notify IT_0FFF00000F set LichtTV,LichtKueche,WzRaumtrenner,IT_0FFF0FF0FF,IT_0FFF0F0FFF,Bad_LED_Stripe $EVENT
Nun möchte ich aber, dass wenn alles ausgeschaltet wird, der Nachtmodus "EIN" ist, also der Wandschalter negiert.
So habe ich es versucht, es geht aber nicht....
define NachtModus dummy
define night DOIF ([Schlafschalter] eq "off") (set NachtModus on) DOELSE (set NachtModus off)
Weiß jemand wie man das professionell macht?
Schalte das Ganze doch über eine LightScene.
Ich denke damit kommst du relativ schnell ans Ziel.
Gruß
Dan
Zitat von: Heimweh am 01 September 2016, 14:12:20
Ich stehe auf dem Schlauch. Ich schalte mit einem Intertechno Wandschalter verschiedene Funksteckdosen.
define Schlafschalter notify IT_0FFF00000F set LichtTV,LichtKueche,WzRaumtrenner,IT_0FFF0FF0FF,IT_0FFF0F0FFF,Bad_LED_Stripe $EVENT
Nun möchte ich aber, dass wenn alles ausgeschaltet wird, der Nachtmodus "EIN" ist, also der Wandschalter negiert.
So habe ich es versucht, es geht aber nicht....
define NachtModus dummy
define night DOIF ([Schlafschalter] eq "off") (set NachtModus on) DOELSE (set NachtModus off)
Weiß jemand wie man das professionell macht?
ZitatNun möchte ich aber, dass wenn alles ausgeschaltet wird, der Nachtmodus "EIN" ist, also der Wandschalter negiert.
Was heisst das konkret? Soll der Wandschalter wenn Du auf EIN drückst, auf Aus schalten und umgekehrt?
ZitatWeiß jemand wie man das professionell macht?
Du müsstest die Logik des notify ins DOIF einbauen, sonst ist der Schlafschalter nicht verknüpft.
Hallo Ellert,
ja genau, wenn ich den Intertechno ausschalte, sollen die ganzen Funksteckdosen aus gehen (tun sie auch) - aber der Nachtmodus soll "ein" geschaltet werden, und umgekehrt. Also wenn ich mit dem Intertechno alles einschalte, soll Nachtmodus wieder aus gehen....
Hast Du Dir mal LightScene angesehen?
Damit sollte das schnell umsetzbar sein.
Gruß
Dan
Hallo Dan,
ja hab ich. Aber das löst nicht das Problem. Die ganzen Steckdosen funktionieren ja... Es geht nur darum, wie man negiert schaltet.
Gruß, Daniel
Aber genau das kannst Du doch mit LightScene machen.
Du definierst alle beteiligten Devices als Teil der LightScene. Dann schaltest Du alle Devices wie sie sein sollen, also Steckdosen aus und Nachtmodus ein, und speicherst diese Scene. Dann kannst du mit Hilfe eines dummy (oder was auch immer) diese Scene aktivieren.
Ergebnis = das was du wolltest
Gruß
Dan
Du könntest auch ein notify bauen auf alle Steckdosen und dann prüfen ob alle ausgeschaltet sind. Wenn ja, dann Nachtmodus ein.
Sicherlich auch als DOIF umsetzbar, aber nicht meine Baustelle.
Es gibt meist mehrere Wege zur Lösung eines Problems.
Gruß
Dan
Zitat von: Heimweh am 02 September 2016, 08:29:34
Hallo Dan,
ja hab ich. Aber das löst nicht das Problem. Die ganzen Steckdosen funktionieren ja... Es geht nur darum, wie man negiert schaltet.
Gruß, Daniel
Die Abfragen in DOIF-Modul sind übersetzte Perl-Bedingungen "nicht" in Perl und damit auch in DOIF werden mit
!= bei Zahlen oder mit
ne bei Zeichenketten angegeben, desweitern gibt es den Operator
! für negation (alles in der Perldokumentation nachzulesen). Beispiele hier mit DOIF:
DOIF ([dummy| ne "on") (set ...)
DOIF ([mydummy:myreading:d] != 30) (set ...)
DOIF (!([dummy] eq "on")) (set ...)
usw.
Gruß
Damian
Zitat von: Heimweh am 02 September 2016, 07:57:57
Hallo Ellert,
ja genau, wenn ich den Intertechno ausschalte, sollen die ganzen Funksteckdosen aus gehen (tun sie auch) - aber der Nachtmodus soll "ein" geschaltet werden, und umgekehrt. Also wenn ich mit dem Intertechno alles einschalte, soll Nachtmodus wieder aus gehen....
Das sollte dann so funktionieren
define night DOIF ([IT_0FFF00000F] eq "off") (set NachtModus on) DOELSE (set NachtModus off)
Ich mach soetwas mit einem structure in dem ich alle Gertäte habe und dann ein normales notify nehme um das zu schalten (All_off bzw. Any_on).
Du kannst es aber auch nur mit einem notify machen. Setzte den Nachtschalter auf on und ein notify schaltet dann alle Geräte aus. So mache ich das.