FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Heimweh am 01 September 2016, 14:12:20

Titel: Schalten wenn nicht...
Beitrag 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?

Titel: Antw:Schalten wenn nicht...
Beitrag von: DeeSPe am 01 September 2016, 15:44:04
Schalte das Ganze doch über eine LightScene.
Ich denke damit kommst du relativ schnell ans Ziel.

Gruß
Dan
Titel: Antw:Schalten wenn nicht...
Beitrag von: Ellert am 01 September 2016, 16:13:53
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.
Titel: Antw:Schalten wenn nicht...
Beitrag 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....
Titel: Antw:Schalten wenn nicht...
Beitrag von: DeeSPe am 02 September 2016, 07:59:41
Hast Du Dir mal LightScene angesehen?
Damit sollte das schnell umsetzbar sein.

Gruß
Dan
Titel: Antw:Schalten wenn nicht...
Beitrag 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
Titel: Antw:Schalten wenn nicht...
Beitrag von: DeeSPe am 02 September 2016, 08:41:23
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
Titel: Antw:Schalten wenn nicht...
Beitrag von: DeeSPe am 02 September 2016, 08:46:17
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
Titel: Antw:Schalten wenn nicht...
Beitrag von: Damian am 02 September 2016, 09:08:46
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
Titel: Antw:Schalten wenn nicht...
Beitrag von: Ellert am 02 September 2016, 11:09:05
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)
Titel: Antw:Schalten wenn nicht...
Beitrag von: strauch am 02 September 2016, 15:30:41
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.