Hauptmenü

DOIF will einfach nicht triggern

Begonnen von pechnase, 17 Mai 2018, 11:07:01

Vorheriges Thema - Nächstes Thema

pechnase

Hallo zusamen,
ich verwende FHEM schon seit mehrerer Jahren erfolgreich. Bis jetzt habe ich DOIF nich verwendet, wollte es jetzt aber an einem einfachen Beispiel anwenden, bekomme es aber leider nicht zum Laufen.
Abwohl es wirklich vorbildlich viel Dokumentation zu DOIF gibt, finde ich den Fehler in meinem define nicht.

Hier das define:

defmod WW_Temperatur_Alarm DOIF ([WW_Temp_Alarm_enable:"on"] and [TempLogger1:Temperature1:d1] < 55.0) ({exmail('smarthome@xxxxx.de','WW-Temperatur','Die WW-Temperatur ist unter 55°C gesunken')})
attr WW_Temperatur_Alarm group Alarme
attr WW_Temperatur_Alarm room Alarme,TempLogger
attr WW_Temperatur_Alarm verbose 5

setstate WW_Temperatur_Alarm initialized
setstate WW_Temperatur_Alarm 2018-05-17 10:33:01 Device TempLogger1
setstate WW_Temperatur_Alarm 2018-05-16 21:24:20 cmd 0
setstate WW_Temperatur_Alarm 2018-05-16 21:18:33 cmd_event TempLogger1
setstate WW_Temperatur_Alarm 2018-05-16 21:18:33 cmd_nr 2
setstate WW_Temperatur_Alarm 2018-05-17 10:33:01 e_TempLogger1_Temperature1 54.00
setstate WW_Temperatur_Alarm 2018-05-17 05:31:39 e_WW_Temp_Alarm_enable_events on
setstate WW_Temperatur_Alarm 2018-05-16 21:24:20 mode enabled
setstate WW_Temperatur_Alarm 2018-05-16 21:24:20 state initialized

Zur Erklärung:
Der Dummy WW_Temp_Alarm_enable stellt ein Zeitfenster dar, in dem die Warmwasser(WW) Temperatur überwacht werden soll. Der Dummy kann "on" oder "off" sein. Aus dem Device TempLogger1 wird das Reading Temperature1 als 'Messwert' verwendet. TempLogger1 ist ein MQTT Device. Da ich mir nicht sicher bin, ob das Reading ein String oder eine Zahl ist, habe ich das :d1 eingefügt. Habe es aber auch schon ohne :d1 versucht. Habe auch schon das attr do always gesetzt. Da die E-Mail aber nur einmal gesendet werden soll, sobald der Wert 55 unterschritten wird, denke ich, ist das attr do always eh falsch.
Wenn ich set WW_Temperatur_Alarm cmd_1 ausführe, wird die E-Mail auch erzeugt. Für mich heißt das, dass cmd_1 nie 'erreicht' wird, die Bedingung also noch irgend ein Fehler hat, den ich aber leider nicht finden kann.

Bin über jeden Tipp dankbar

VG Wolfgang
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

Damian

Dann hast du einen ungünstigen Zeitpunkt für den Einstieg gewählt. ;)

Nimm diese Version: https://forum.fhem.de/index.php/topic,87183.msg803068.html#msg803068
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

pechnase

Danke für die sehr schnelle Antwort heute Vormittag!
Ich habe mir das 98_DOIF.pm aus dem Repository heruntergeladen und installiert. Rechte der Datei und Owner entsprechend angepasst, hat aber leider nicht zum Erfolg geführt.

VG Wolfgang
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

Damian

Zitat von: pechnase am 17 Mai 2018, 16:36:26
Danke für die sehr schnelle Antwort heute Vormittag!
Ich habe mir das 98_DOIF.pm aus dem Repository heruntergeladen und installiert. Rechte der Datei und Owner entsprechend angepasst, hat aber leider nicht zum Erfolg geführt.

VG Wolfgang

Du willst offenbar den Zustand abfragen und nicht das Ereignis:

defmod WW_Temperatur_Alarm DOIF ([WW_Temp_Alarm_enable] eq "on" and [TempLogger1:Temperature1:d1] < 55.0) ({exmail('smarthome@xxxxx.de','WW-Temperatur','Die WW-Temperatur ist unter 55°C gesunken')})
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

pechnase

Das Ereignis ist doch 'TempLogger1:Temperature1:d1] < 55.0' was aber eben noch mit einer UND-Verknüpfung versehen ist. Ich meine solche Beispiele gibt es doch in den DOIF Dokumentationen auch. Was ist da der Unterschied?
Z.B.:

define di_lampe DOIF (
(
[sensor:brightness] < 120 and
[?[twilight:ss_indoor]-23:59]
)
(set lampe on)
DOELSEIF
(
[sensor:brightness] > 80 and
[?04:00-[twilight:sr_indoor]]
)
(set lampe off)
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

satprofi

ist da nicht eine klammer zuviel?

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

pechnase

danke für den Hinweis, nur wo soll eine Klammer zu viel sein? Ich kann die Stelle nicht erkennen.

VG Wolfgang
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

satprofi

im obigen code sehe ich bei doif 2 öffnende klammern, aber nur eine schliessende

Gesendet mit Tapatalk

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

pechnase

stimmt, da habe ich bei c&p eine Zeile zu wenig aus der DOIF Dokumentation kopiert. Das war ja aber nur ein Beispiel aus der Dokumentation. In meinem Code, siehe ganz oben, sehe ich keine fehlende Klammer.
Eine Lösung habe ich noch nicht gefunden. Werde es mal mit einem Notify versuchen.
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

Per

Zitat von: pechnase am 19 Mai 2018, 22:27:49Eine Lösung habe ich noch nicht gefunden.
Den Post von Damian hast du gelesen?

Zitat von: Damian am 17 Mai 2018, 17:05:54
defmod WW_Temperatur_Alarm DOIF ([WW_Temp_Alarm_enable] eq "on" and [TempLogger1:Temperature1:d1] < 55.0) ({exmail('smarthome@xxxxx.de','WW-Temperatur','Die WW-Temperatur ist unter 55°C gesunken')})

Bei deinem Ausgangscode wurde nur zum Zeitpunkt des Wechsels des Dummys auf on auf <55 abgefragt, bei Damians sowohl beim Wechsel als auch auch bei Unterschreitung von 55 getriggert.