[gelöst] Fenster offen Meldung in versch. Zeiträumen mit unterschiedl. Optionen

Begonnen von Fridolin, 24 November 2017, 17:13:28

Vorheriges Thema - Nächstes Thema

Fridolin

Hallo FHEM-Gemeinde,

ich habe diverse DOIFs in Betrieb, die mir Fenster offen, unterhalb Temperatur X, nach einer bestimmten Zeit mit "wait" melden. Das lasse ich mir mit "repeatsame x" im Abstand von "repeatcmd xxx" wiederholen.

Funktioniert alles wunderbar.

Nun möchte ich nur im Schlafzimmer morgens 15 Minuten lüften und abends bevor wir ins Bett gehen nur 5 Minuten da es sonst zu sehr auskühlt. Dazu habe ich mein bestehendes DOIF sozusagen verdoppelt und jeweils eine entsprechende Zeitspanne eingebaut.

([Fenster.Schlafzimmer] eq "open" and [05:30-18:00] and [TEMP:temperature] < 18) (set TelegramBot message xxxxxxxxxxxx) DOELSEIF
([Fenster.Schlafzimmer] eq "open" and [18:01-03:00] and [TEMP:temperature] < 18) (set TelegramBot message xxxxxxxxxxxx)


Dazu ein "wait 900:300"

Das funktioniert auch mit jeweils einer Message.

Jetzt zum Problem: Ich wollte morgens 5 Wiederholungen nach jeweils 3 Minuten machen und abends 3 Wiederholungen im Abstand von 1 Minute. Dazu hatte ich:

"repeatcmd 180:60" und "repeatsame 5:3"

hinzugefügt. Das hatte aber nicht funktioniert. Ich weiß nicht mehr was ich noch alles versucht hatte, mal kam gar keine Meldung, mal hörten die Meldungen nicht mehr auf usw. Was mache ich falsch?

Viele Grüße
Fridolin
FHEM zuerst auf FB dann Raspi, HM, FS20

Damian

ZitatIch weiß nicht mehr was ich noch alles versucht hatte,

Schade. Bei mir funktioniert diese Konstellation wie programmiert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fridolin

Hallo Damian,

du meinst "repeatcmd 180:60" und "repeatsame 5:3" war doch richtig ?
OK, habs noch mal so konfiguriert und werde das mal heute Abend und morgen früh testen.

Gruß
Fridolin
FHEM zuerst auf FB dann Raspi, HM, FS20

Damian

Zitat von: Fridolin am 24 November 2017, 17:56:22
Hallo Damian,

du meinst "repeatcmd 180:60" und "repeatsame 5:3" war doch richtig ?
OK, habs noch mal so konfiguriert und werde das mal heute Abend und morgen früh testen.

Gruß
Fridolin

Meine Testkonfiguration (FS ist Fernbedienung)

defmod di_test DOIF ([FS] eq "on") (set bla on) DOELSEIF ([FS] eq "off")(set bla off)
attr di_test repeatcmd 10:10
attr di_test repeatsame 3:4
attr di_test wait 1:1

setstate di_test cmd_2
setstate di_test 2017-11-24 17:34:24 Device FS
setstate di_test 2017-11-24 17:34:55 cmd 2
setstate di_test 2017-11-24 17:34:55 cmd_count 4
setstate di_test 2017-11-24 17:34:55 cmd_event FS
setstate di_test 2017-11-24 17:34:55 cmd_nr 2
setstate di_test 2017-11-24 17:34:24 e_FS_STATE off
setstate di_test 2017-11-24 17:34:55 error set bla off: Please define bla first
setstate di_test 2017-11-24 17:34:55 state cmd_2
setstate di_test 2017-11-24 17:35:05 wait_timer no timer
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fridolin

FHEM zuerst auf FB dann Raspi, HM, FS20

Fridolin

Hat auch heute morgen funktioniert, nach 5 Meldungen war auch schluss. Alles perfekt. Irgendeinen Fehler hatte ich gemacht aber das liegt 3-4 Wochen zurück und ich hatte erst jetzt wieder Zeit zum posten. Ich hatte ganz kurze Zeiten zum testen genommen und dabei wohl Fehler gemacht. Danke für die Hilfe.

Gruß
Fridolin
FHEM zuerst auf FB dann Raspi, HM, FS20

Fridolin

Hallo FHEM-Gemeinde,

ich muß meinen eigenen Beitrag noch mal öffnen. Zur Übersicht nachfolgend mein DOIF:

define Fenster.SZ.Alarm DOIF ([Fenster.Schlafzimmer] eq "open" and [05:30-18:00] and [TEMP_HYGRO:temperature] < 18)

    (set Telegrambot message @12345678 Fenster im Schlafzimmer zumachen)

DOELSEIF

([Fenster.Schlafzimmer] eq "open" and [18:01-03:00] and [TEMP_HYGRO:temperature] < 18)

    (set Telegrambot message @12345678 Fenster im Schlafzimmer zumachen)


Folgende Attribute sind gesetzt:

attr   Fenster.SZ.Alarm   repeatcmd    180:60
attr   Fenster.SZ.Alarm   repeatsame   5:3
attr   Fenster.SZ.Alarm   wait         900:300


In der Zeit von 05:30-18:00 wird nach Ablauf von 15 Min. 5 Meldungen im Abstand von 3 Min. versandt.
In der Zeit von 18:01-03:00 wird nach Ablauf von 5 Min. 3 Meldungen im Abstand von 1 Min. versandt.

Funktioniert soweit auch genauso wie konfiguriert.

Nun zu meinem Problem:
Egal, ob ich das Fenster nach der ersten versandten Meldung oder schon vor Ablauf des Wait-Timers schließe, es werden trotzdem immer ALLE Meldungen versandt.

Ich hatte es schon mit den Attributen: do resetwait, do always, event-on-change-reading, event-on-update-reading versucht aber es ändert nichts.

Was ich nicht verstehe ist, sobald das Fenster geschlossen ist, ist eine der 3 UND-Verknüpfungen unwahr und somit sollte das DOIF doch "stoppen"
Meine anderen Fenster-offen DOIFs ohne Zeitspanne, die also nur auf Fenster offen/zu und AussenTemp triggern, melden nur solange bis das Fenster geschlossen wird oder gar nicht wenn man es vor Ablauf der Wait-Zeit schließt.

Viele Grüße,
Fridolin.



FHEM zuerst auf FB dann Raspi, HM, FS20

Damian

Zitat von: Fridolin am 31 Dezember 2017, 10:37:12
Hallo FHEM-Gemeinde,

ich muß meinen eigenen Beitrag noch mal öffnen. Zur Übersicht nachfolgend mein DOIF:

define Fenster.SZ.Alarm DOIF ([Fenster.Schlafzimmer] eq "open" and [05:30-18:00] and [TEMP_HYGRO:temperature] < 18)

    (set Telegrambot message @12345678 Fenster im Schlafzimmer zumachen)

DOELSEIF

([Fenster.Schlafzimmer] eq "open" and [18:01-03:00] and [TEMP_HYGRO:temperature] < 18)

    (set Telegrambot message @12345678 Fenster im Schlafzimmer zumachen)


Folgende Attribute sind gesetzt:

attr   Fenster.SZ.Alarm   repeatcmd    180:60
attr   Fenster.SZ.Alarm   repeatsame   5:3
attr   Fenster.SZ.Alarm   wait         900:300


In der Zeit von 05:30-18:00 wird nach Ablauf von 15 Min. 5 Meldungen im Abstand von 3 Min. versandt.
In der Zeit von 18:01-03:00 wird nach Ablauf von 5 Min. 3 Meldungen im Abstand von 1 Min. versandt.

Funktioniert soweit auch genauso wie konfiguriert.

Nun zu meinem Problem:
Egal, ob ich das Fenster nach der ersten versandten Meldung oder schon vor Ablauf des Wait-Timers schließe, es werden trotzdem immer ALLE Meldungen versandt.

Ich hatte es schon mit den Attributen: do resetwait, do always, event-on-change-reading, event-on-update-reading versucht aber es ändert nichts.

Was ich nicht verstehe ist, sobald das Fenster geschlossen ist, ist eine der 3 UND-Verknüpfungen unwahr und somit sollte das DOIF doch "stoppen"
Meine anderen Fenster-offen DOIFs ohne Zeitspanne, die also nur auf Fenster offen/zu und AussenTemp triggern, melden nur solange bis das Fenster geschlossen wird oder gar nicht wenn man es vor Ablauf der Wait-Zeit schließt.

Viele Grüße,
Fridolin.

Ein Abbruch von Wiederholungen oder eines aktiven Waittimers ist nur durch einen Zustandswechsel möglich, dafür sollte ein DOELSE ohne weitere Angaben am Ende deiner DOIF-Definition ausreichen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fridolin

FHEM zuerst auf FB dann Raspi, HM, FS20