FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fhemotto am 01 November 2018, 20:01:58

Titel: DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Fhemotto am 01 November 2018, 20:01:58

Hallo
Habe seit längerer Zeit  eine Änderung bezüglich Event-Auswertung machen wollen.
Bin wohl auch  nicht mehr auf dem neuesten Stand  ;)

Leider Funktioniert dieses DOIF so nicht mit der Fehlermeldung:
,,
IF ([Teichpumpe] eq "on") (set Waschmaschine_fertig_Impuls on ; define Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off ): IF: no right bracket: (set Waschmaschine_fertig_Impuls on
,,

([Waschmaschine.Watt] < 1)
(IF  ([Teichpumpe] eq "on")
(set Waschmaschine_fertig_Impuls on ; define  Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off )
)


Habe mehrere DOIFs mit ( IF-Abfrage ) im Einsatz ohne Probleme.
In der Doku , die ja mittlerweile extrem angewachsen ist,   !VIELEN DANK NATÜRLICH DAFÜR!
habe ich erst einmal  nichts gefunden ( übersehen?)

Hintergrund:
Ich möchte die Auswertung  ([Waschmaschine.Watt] < 1) auswerten bei Änderung
und nur dann wenn ([Teichpumpe] eq "on")  aber nicht diese Event selber.
Für einen Tip / Lösung  / Hilfestellung/ Anschub wäre ich sehr dankbar.

Danke Uwe
Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: sash.sc am 01 November 2018, 20:04:50
Verknüpfe die beiden Events doch mit und!?

Bei doif brauchst du keine if Anfrage.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Damian am 01 November 2018, 20:08:43
DOIF ([Waschmaschine.Watt] < 1 and [?Teichpumpe] eq "on") (...

es dürfte aber einige Beispiele in der Commandref zu solchen Abfragen geben :)
Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Fhemotto am 01 November 2018, 20:26:50
Vielleicht habe ich mich nicht richtig ausgedrückt:
Wenn  :   ([Waschmaschine.Watt] < 1)  wechselt  und  ([Teichpumpe] eq "on") mochte ich etwas ausführen .
Wenn :  ([Waschmaschine.Watt] < 1)  und  ([Teichpumpe] eq "on")  wechselt        möchte ich nichts ausführen.
Also nur bei  ([Waschmaschine.Watt] <1)
Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Damian am 01 November 2018, 20:27:40
Zitat von: Fhemotto am 01 November 2018, 20:26:50
Vielleicht habe ich mich nicht richtig ausgedrückt:
Wenn  :   ([Waschmaschine.Watt] < 1)  wechselt  und  ([Teichpumpe] eq "on") mochte ich etwas ausführen .
Wenn :  ([Waschmaschine.Watt] < 1)  und  ([Teichpumpe] eq "on")  wechselt        möchte ich nichts ausführen.
Also nur bei  ([Waschmaschine.Watt] <1)

Das Fragezeichen hast du gesehen? ;)
Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Fhemotto am 01 November 2018, 20:47:43
Jo, Danke

Habs gefunden:

Trigger verhindern [?<devicename>], [?<devicename>:<readingname>], [?<devicename>:&<internalname>], [?<time specification>]Werden Status, Readings, Internals und Zeitangaben in der Bedingung mit einem Fragezeichen eingeleitet, triggern sie nicht

Sorry, Wie gesagte Doku/Modul sehr umfangreich, nochmals Danke.
Und natürlich auch in deiner Antwort prompt auch übersehen  ???

Trotzdem nochmals die Frage nur zum Verständnis:
Vorher:
([Waschmaschine.Watt] < 1 ) \
  (set Waschmaschine_fertig_Impuls on ;; define  Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off)

OK
mit ( IF ) Fehler ?

([Waschmaschine.Watt] < 1)
(IF  ([Teichpumpe] eq "on")
(set Waschmaschine_fertig_Impuls on ; define  Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off )
)


Nicht mehr Wichtig aber von Interesse.

Danke

Titel: Antw:DOIF Nur ein EVENT abfragen (Lösung mit IF ?)
Beitrag von: Damian am 01 November 2018, 20:51:52
Zitat von: Fhemotto am 01 November 2018, 20:47:43
Jo, Danke

Habs gefunden:

Trigger verhindern [?<devicename>], [?<devicename>:<readingname>], [?<devicename>:&<internalname>], [?<time specification>]Werden Status, Readings, Internals und Zeitangaben in der Bedingung mit einem Fragezeichen eingeleitet, triggern sie nicht

Sorry, Wie gesagte Doku/Modul sehr umfangreich, nochmals Danke.
Und natürlich auch in deiner Antwort prompt auch übersehen  ???

Trotzdem nochmals die Frage nur zum Verständnis:
Vorher:
([Waschmaschine.Watt] < 1 ) \
  (set Waschmaschine_fertig_Impuls on ;; define  Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off)

OK
mit ( IF ) Fehler ?

([Waschmaschine.Watt] < 1)
(IF  ([Teichpumpe] eq "on")
(set Waschmaschine_fertig_Impuls on ; define  Waschmaschine_fertig_Impuls_off at +00:00:35 set Waschmaschine_fertig_Impuls off )
)


Nicht mehr Wichtig aber von Interesse.

Danke

Bei DOIF und IF wird ein Komma statt Semikolon als Trennzeichen benutzt.