FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: is2late am 22 Dezember 2020, 08:32:57

Titel: (Gelöst) syntax error bei DOIF
Beitrag von: is2late am 22 Dezember 2020, 08:32:57
Guten Morgen!
Ich möchte gern Sonos-Meldungen während der Nachtruhe unterdrücken. Dazu habe ich ein Nachtruhe_Schalter dummy angelegt, das von einem DOIF getriggert wird, woraufhin das n_Notify_Nachtruhe die weiteren Notifys auf inactive setzt, welche sich mit den Meldungen befassen. Bei dem DOIF stimmt die Syntax nicht:
defmod Nachtruhe DOIF (([22:00-07:00]) (set Nachtruhe_Schalter on)) DOELSE (set Nachtruhe_Schalter off)

Es gibt folgende Fehlermeldung:
setstate Nachtruhe 2020-12-22 07:00:00 error condition c01: syntax error, ("\

Sieht jemand den Fehler?

Vielen Dank!
Titel: Antw:syntax error bei DOIF
Beitrag von: yersinia am 22 Dezember 2020, 08:37:42
Diese Klammersetzung müsste falsch sein:
Zitatdefmod Nachtruhe DOIF (([22:00-07:00]) (set Nachtruhe_Schalter on)) DOELSE (set Nachtruhe_Schalter off)
So sollte es funktionieren:
defmod Nachtruhe DOIF ([22:00-07:00]) (set Nachtruhe_Schalter on) DOELSE (set Nachtruhe_Schalter off)
Siehe auch in der commandref: https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
Titel: Antw:syntax error bei DOIF
Beitrag von: is2late am 22 Dezember 2020, 09:31:43
Vielen Dank, Yersinia, probiere ich aus.

LG Ingo
Titel: Antw:syntax error bei DOIF
Beitrag von: MadMax-FHEM am 22 Dezember 2020, 10:23:13
Warum setzt du erst einen dummy um daraufhin dann mit einem notify andere notify zu deaktivieren?

Warum nicht gleich statt dem dummy die notify deaktivieren?

Oder habe ich das falsch gelesen/verstanden?

Gruß, Joachim
Titel: Antw:syntax error bei DOIF
Beitrag von: is2late am 22 Dezember 2020, 10:36:59
Hi Joachim,

ich habe nur den Weg über das Dummy gesehen. Wie meinst Du das? Das DOIF könnte direkt die Notifys deaktivieren?

LG Ingo
Titel: Antw:syntax error bei DOIF
Beitrag von: Christoph Morrison am 22 Dezember 2020, 10:59:56
Zitat von: is2late am 22 Dezember 2020, 10:36:59
ich habe nur den Weg über das Dummy gesehen. Wie meinst Du das? Das DOIF könnte direkt die Notifys deaktivieren?

Hallo Ingo,

du kannst die Dummies und die Notifies wegrationalisieren, in dem du nur ein DOIF benutzt. Das DOIF kann zusammen vermutlich alles, was deine Dummies und deine Notifies können (ohne dein genaues Setup zu kennen). Nachtruhe_Schalter könnte z.B. genau das DOIF sein, das du hier vorgestellt hast.

Im Prinzip vereinigt man Schalter und Payload in ein Gerät.
Titel: Antw:syntax error bei DOIF
Beitrag von: MadMax-FHEM am 22 Dezember 2020, 11:00:11
Naja statt:

set dummy irgendwas

und dann:

notify auf dummy:irgendwas

und dann:

set notify1 inactive;set notify2 inactive; ...

einfach gleich im DOIF: set notify1 inactive, set notify2 inactive usw.

Oder eben wieder auf active setzen...

Allerdings kenne ich die Syntax von DOIF nicht (und hab auch keine Lust sie mir anzueignen ;)  )...
...mir kam nur der "Umweg" über einen weiteren dummy und ein notify irgendwie eigenartig vor...

Gruß, Joachim
Titel: Antw:syntax error bei DOIF
Beitrag von: is2late am 22 Dezember 2020, 16:09:38
Super, allen vielen Dank! Wieder etwas gelernt...
Titel: Antw:syntax error bei DOIF
Beitrag von: MadMax-FHEM am 22 Dezember 2020, 16:17:42
Zitat von: is2late am 22 Dezember 2020, 16:09:38
Super, allen vielen Dank! Wieder etwas gelernt...

Geht es nun?

Wie gelöst?

Wäre hilfreich für andere...

Und wenn es geht: pack doch ein [gelöst] etc. vor den ersten Post, danke.

Gruß, Joachim
Titel: Antw:(Gelöst) syntax error bei DOIF
Beitrag von: is2late am 22 Dezember 2020, 17:33:44
Es lag tatsächlich an der Syntax: Kommafehler, wie von Yersinia vermerkt. Ich hab es bei meiner Konstruktion belassen, weil sie so funktioniert und der Status über Dummy und Notify auch gut nachvollziehbar ist.  Die direkteren Möglichkeiten des DOIF - s. Link oben zur Zeitsteuerung von Yersinia - werde ich bei nächster Gelegenheit nutzen.