DOIF Nur ein EVENT abfragen (Lösung mit IF ?)

Begonnen von Fhemotto, 01 November 2018, 20:01:58

Vorheriges Thema - Nächstes Thema

Fhemotto


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

sash.sc

Verknüpfe die beiden Events doch mit und!?

Bei doif brauchst du keine if Anfrage.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Damian

DOIF ([Waschmaschine.Watt] < 1 and [?Teichpumpe] eq "on") (...

es dürfte aber einige Beispiele in der Commandref zu solchen Abfragen geben :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fhemotto

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)

Damian

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? ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fhemotto

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


Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF