DOIF: (Verständnis?-) Problem mit wait-timer

Begonnen von Michi240281, 13 März 2015, 14:51:39

Vorheriges Thema - Nächstes Thema

Michi240281

Hallo zusammen,

ich nutze das DOIF seit kurzem für die Steuerung meiner Zirkulationspumpe. Hier der Code für das DI:

define Zirku_Pumpe_auto DOIF ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an") (set Zirkulationspumpe_WW on-for-timer 300)
attr Zirku_Pumpe_auto do always
attr Zirku_Pumpe_auto wait 3600


Ich möchte erreichen, dass wenn jmd daheim ist, man nicht im Urlaub ist und die Warmwasseraufbereitung überhaupt an ist, die Pumpe für 5 Minuten einschalten und dann 60 Minuten pausieren. Grundsätzlich funktioniert das ganze zwar, jedoch gibt es folgendes Problem:

Wenn die Pumpe abends das letzte Mal an war, läuft ja der Timer los. Dann geht der "Status_Warmwasser" auf "aus". Damit ist die Bedingung nicht mehr erfüllt und das DOIF macht die Pumpe auch nciht mehr an. Wenn jetzt jedoch am nächsten Morgen um z.B. 6 Uhr die Bedingung wieder erfüllt ist, läuft der Timer dann wieder von neuem los und das DOIF löst erst um 7 Uhr aus.

Was mach ich falsch?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Brockmann

Zitat von: Michi240281 am 13 März 2015, 14:51:39
Ich möchte erreichen, dass wenn jmd daheim ist, man nicht im Urlaub ist und die Warmwasseraufbereitung überhaupt an ist, die Pumpe für 5 Minuten einschalten und dann 60 Minuten pausieren. Grundsätzlich funktioniert das ganze zwar, jedoch gibt es folgendes Problem:
Nee, das funktioniert nicht. Was jetzt passiert ist: Das DOIF pausiert 60 Minuten und schaltet DANN die Pumpe für 5 Minuten an. Kleiner, aber feiner Unterschied.
Schau Dir mal das Attribut cmdpause an. Damit kannst Du festlegen, dass eine Aktion frühesten nach x Sekunden wieder ausgeführt werden soll. Das geht eher in die Richtung. Zumindest bekommst Du dann morgens beim ersten Einschalten keine Verzögerung.

Aber auch so wird die Pumpe nicht jede Stunde für 5 Minuten eingeschaltet, falls das Deine Absicht ist. Das klappt nur, wenn eine der Bedingungen das DOIF regelmäßig triggert.

flurin

Zitat von: Michi240281 am 13 März 2015, 14:51:39
Hallo zusammen,

ich nutze das DOIF seit kurzem für die Steuerung meiner Zirkulationspumpe. Hier der Code für das DI:

define Zirku_Pumpe_auto DOIF ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an") (set Zirkulationspumpe_WW on-for-timer 300)
attr Zirku_Pumpe_auto do always
attr Zirku_Pumpe_auto wait 3600


Ich möchte erreichen, dass wenn jmd daheim ist, man nicht im Urlaub ist und die Warmwasseraufbereitung überhaupt an ist, die Pumpe für 5 Minuten einschalten und dann 60 Minuten pausieren.

Versuchs mal so:

define Zirku_Pumpe_auto DOIF ([+01:00] and [Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 300)
attr Zirku_Pumpe_auto do always


Gruss
flurin

Michi240281

Leider funktionieren die Vorschläge alle nicht! :(

Hab jetzt das "wait" Attribut durch "cmdPause" ersetzt. Dennoch wird morgens verzögert geschaltet! Alles irgendwie dumm!

Noch irgendwelche Tipps?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Brockmann

Poste mal ein list Zirku_Pumpe_auto, damit wird über denselben aktuellen Stand sprechen.

Damian

Zitat von: Brockmann am 17 März 2015, 14:22:32
Poste mal ein list Zirku_Pumpe_auto, damit wird über denselben aktuellen Stand sprechen.

define Zirku_Pumpe_auto DOIF ([+01:00] and [Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 300)


Das sollte auf jeden Fall funktionieren (ohne wait).

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Michi240281

#6
Zitat von: Damian am 17 März 2015, 18:04:14
define Zirku_Pumpe_auto DOIF ([+01:00] and [Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 300)


Das sollte auf jeden Fall funktionieren (ohne wait).

Gruß

Damian

Leider nein! Es wird auch dabei morgens eine Pause eingelegt und nicht beim ersten Erfüllen der Bedingung geschaltet!

Hier das list:

Internals:
   DEF        ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 600)
   NAME       Zirku_Pumpe_auto_neu
   NR         949
   NTFY_ORDER 50-Zirku_Pumpe_auto_neu
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-03-17 21:58:09   cmd_event       Abwesend
     2015-03-17 21:58:09   cmd_nr          1
     2015-03-17 22:28:08   e_Abwesend_state nein
     2015-03-17 17:00:00   e_Status_Warmwasser_state an
     2015-03-17 21:58:09   state           cmd_1
   Condition:
     0          ReadingValDoIf('Abwesend','state','') eq "nein" and ReadingValDoIf('Urlaub','state','') eq "nein" and ReadingValDoIf('Status_Warmwasser','state','') eq "an"
   Devices:
     0           Abwesend Urlaub Status_Warmwasser
     all         Abwesend Urlaub Status_Warmwasser
   Do:
     0          set Zirkulationspumpe_WW on-for-timer 600
   Helper:
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Abwesend:state Urlaub:state Status_Warmwasser:state
     all         Abwesend:state Urlaub:state Status_Warmwasser:state
   State:
   Trigger:
Attributes:
   cmdpause   3600
   do         always
   room       Garage,Haus


Und dann noch ne andere Frage: Eine Idee, warum folgendes DOIF nicht schaltet?


Internals:
   DEF        ([{sunset_abs("HORIZON=-2",0,"16:00","22:30")}] and [HarmonyHUB:activity] ne "PowerOff") (set Alle_Steckdosen_EG:FILTER=STATE!=an an)
   NAME       Ambientelicht_TV_3
   NR         954
   NTFY_ORDER 50-Ambientelicht_TV_3
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-03-17 22:56:37   state           initialized
     2015-03-17 22:56:37   timer_1_c1      18.03.2015 18:51:41
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"") and ReadingValDoIf('HarmonyHUB','activity','') ne "PowerOff"
   Days:
   Devices:
     0           HarmonyHUB
     all         HarmonyHUB
   Do:
     0          set Alle_Steckdosen_EG:FILTER=STATE!=an an
   Helper:
     last_timer 1
     sleeptimer -1
   Itimer:
   Readings:
     0           HarmonyHUB:activity
     all         HarmonyHUB:activity
   Realtime:
     0          18:51:41
   State:
   Time:
     0          {sunset_abs("HORIZON=-2",0,"16:00","22:30")}
   Timecond:
     0          0
   Timer:
     0          0
   Timerfunc:
   Timers:
     0           0
Attributes:
   group      Automation
   room       Wohnzimmer



Ich will damit bezwecken, dass wenn ich eine activity starte (z.B. Dreambox) und die Sonne bereits untergegangen ist, dass dann geschaltet wird! Tut aber leider nix! Eigentlich sollte doch der Trigger über den HarmonyHUB ausreichen..........

Ahhhh, habe gerade nochmal getestet! Beim timer steht jetzt die Uhrzeit des Sonnenuntergangs von morgen!! Wieso denn das???

Internals:
   DEF        ([{sunset_abs("HORIZON=-2",0,"16:00","22:30")}] and [HarmonyHUB:activity] ne "PowerOff") (set Alle_Steckdosen_EG:FILTER=STATE!=an an)
   NAME       Ambientelicht_TV_3
   NR         954
   NTFY_ORDER 50-Ambientelicht_TV_3
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-03-17 23:05:00   cmd_event       HarmonyHUB
     2015-03-17 23:05:00   cmd_nr          2
     2015-03-17 23:05:00   e_HarmonyHUB_activity Dreambox
     2015-03-17 23:05:00   state           cmd_2
     2015-03-17 22:56:37   timer_1_c1      18.03.2015 18:51:41
   Condition:
     0          DOIF_time_once($hash->{timer}{0},$wday,"") and ReadingValDoIf('HarmonyHUB','activity','') ne "PowerOff"
   Days:
   Devices:
     0           HarmonyHUB
     all         HarmonyHUB
   Do:
     0          set Alle_Steckdosen_EG:FILTER=STATE!=an an
   Helper:
     last_timer 1
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           HarmonyHUB:activity
     all         HarmonyHUB:activity
   Realtime:
     0          18:51:41
   State:
   Time:
     0          {sunset_abs("HORIZON=-2",0,"16:00","22:30")}
   Timecond:
     0          0
   Timer:
     0          0
   Timerfunc:
   Timers:
     0           0
   Trigger:
Attributes:
   do         always
   group      Automation
   room       Wohnzimmer
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Brockmann

Zitat von: Michi240281 am 17 März 2015, 22:52:33
Leider nein! Es wird auch dabei morgens eine Pause eingelegt und nicht beim ersten Erfüllen der Bedingung geschaltet!

Dieses DOIF ist eigentlich ziemlich simpel. Wenn alle drei Bedingungen (gleichzeitig) eintreten, wird geschaltet. Danach wieder, wenn alle drei Bedingungen gleichzeitig eintreten, aber frühestens nach Ablauf von 3600 Sekunden. Aber es wird auch dann eben nur geschaltet, wenn das DOIF getriggert wird (durch ein Event, dass zu einer der drei Bedingungen passt). Ein Automatismus, der jede Stunde schaltet, solange bestimmte Bedingungen erfüllt sind, bekommst Du so nicht hin. Da musst Du Dir die Variante von Damian anschauen.
Warum das DOIF morgens nicht "pünktlich" schaltet, lässt sich schwer sagen, weil wir nicht wissen können, wie sich die drei Werte verhalten, die Du als Bedingung verwendest. Entweder sind nicht alle drei Bedingungen erfüllt oder aber sie waren in den 3600 Sekunden vorher schon mal erfüllt und die cmdpause ist noch nicht rum. Mach mal ein list in dem Moment, wo sich das DOIF nicht so verhält, wie Du erwartest.

Zitat von: Michi240281 am 17 März 2015, 22:52:33
Und dann noch ne andere Frage: Eine Idee, warum folgendes DOIF nicht schaltet?
...
Ich will damit bezwecken, dass wenn ich eine activity starte (z.B. Dreambox) und die Sonne bereits untergegangen ist, dass dann geschaltet wird! Tut aber leider nix! Eigentlich sollte doch der Trigger über den HarmonyHUB ausreichen..........

Dein DOIF prüft in dem Moment, wo der sunset_abs auftritt, ob HarmonyHub gerade auf PowerOff steht oder nicht. Das kann also nur genau einmal pro Tag passieren, und nicht jedes Mal, wenn Du eine Activity wählst. Anders wäre es, wenn Du einen Zeitraum angibst:

([{sunset_abs("HORIZON=-2",0,"16:00","22:30")}-{sunrise_abs()}] and [HarmonyHUB:activity] ne "PowerOff") (set Alle_Steckdosen_EG:FILTER=STATE!=an an)

Damit würde bei jeder Activity-Änderung zwischen Sonnenuntergang und Sonnenaufgang geprüft.

Dass der Timer auf morgen steht, ist logisch. Welches Sinn würde es machen, wenn der Timer auf einen Zeitpunkt in der Vergangenheit gesetzt wäre? Der Timer wird jeweils angepasst, wenn er getriggert wird. Also wenn heuite sunset_abs eintritt, wird der Timer auf den für morgen vorberechneten Zeitpunkt von sunset_abs gesetzt.

Michi240281

Zitat von: Brockmann am 18 März 2015, 08:28:13
Warum das DOIF morgens nicht "pünktlich" schaltet, lässt sich schwer sagen, weil wir nicht wissen können, wie sich die drei Werte verhalten, die Du als Bedingung verwendest. Entweder sind nicht alle drei Bedingungen erfüllt oder aber sie waren in den 3600 Sekunden vorher schon mal erfüllt und die cmdpause ist noch nicht rum.

Genau! Das DOIF schaltet abends ein letztes Mal und direkt danach sind die Bedingungen nicht mehr alle erfüllt, weil der Status_Warmwasser auf "aus" wechselt. Dann läuft der timer jedoch nicht weiter, wie ich es eigentlich dachte. Dann wäre er ja in der Nacht locker abgelaufen und morgens, wenn wieder alle 3 Bedingungen erfüllt sind, wird wieder geschaltet. Doch scheinbar wird der timer (cmdpause) eingefroren, wenn die Bedingungen nicht alle erfüllt sind. Daher kommt es dann morgens erst zu einer Pause von fast 60 Minuten! DAS ist das Problem!
Auch die von Damian gepostete Variante schaltet immer nur jede Stunde, wenn die Bedingungen erfüllt sind. Und da gibts dann dieselbe Verzögerung morgens.

Danke für den Hinweis bzgl. der Angabe eines Zeitraums bzgl. Sonnenuntergang! Ich denke, das müsste so funktionieren! :)
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Brockmann

Zitat von: Michi240281 am 18 März 2015, 21:25:35
Doch scheinbar wird der timer (cmdpause) eingefroren, wenn die Bedingungen nicht alle erfüllt sind.
Das denke ich eher nicht. Es wäre immer noch hilfreich, wenn Du morgens direkt nach Status_Warmwasser auf "ein" ein list <DOIF> machen würdest. Dann sieht man genau, was los ist. So ist es ein bißchen Stochern im Nebel. Wann und wie werden beispielsweise Abwesend und Urlaub gesetzt?

In diesem Sinne, probier mal, ob Du hiermit ein anderes Verhalten erreichst:
attr Zirku_Pumpe_auto_neu cmdpause 3600:0

Michi240281

Zitat von: Brockmann am 18 März 2015, 22:59:45
Das denke ich eher nicht. Es wäre immer noch hilfreich, wenn Du morgens direkt nach Status_Warmwasser auf "ein" ein list <DOIF> machen würdest. Dann sieht man genau, was los ist. So ist es ein bißchen Stochern im Nebel. Wann und wie werden beispielsweise Abwesend und Urlaub gesetzt?

In diesem Sinne, probier mal, ob Du hiermit ein anderes Verhalten erreichst:
attr Zirku_Pumpe_auto_neu cmdpause 3600:0

Das muss aber so sein, dass die cmdPause eingefroren wird, denn sonst wäre sie ja über Nacht locker abgelaufen und morgens würde direkt wieder geschaltet.

Urlaub ist immer auf "nein" und Abwesend auch auf "nein". Es ändert sich nur morgens um 5:30 Uhr der Status_Warmwasser von "aus" nach "an". Geschaltet wird aber erst um 6:30 Uhr ca.!

Hier mal ein Auszug aus dem FileLog der Pumpe, die geschaltet wird:

2015-03-18_22:26:18 Zirkulationspumpe_WW set_on-for-timer 600
2015-03-18_22:26:18 Zirkulationspumpe_WW Status: 1
2015-03-18_22:26:18 Zirkulationspumpe_WW level: 100
2015-03-18_22:26:18 Zirkulationspumpe_WW pct: 100
2015-03-18_22:26:18 Zirkulationspumpe_WW deviceMsg: an (to HMLAN1)
2015-03-18_22:26:18 Zirkulationspumpe_WW an
2015-03-18_22:26:18 Zirkulationspumpe_WW timedOn: running
2015-03-18_22:36:22 Zirkulationspumpe_WW level: 0
2015-03-18_22:36:22 Zirkulationspumpe_WW pct: 0
2015-03-18_22:36:22 Zirkulationspumpe_WW deviceMsg: aus (to broadcast)
2015-03-18_22:36:22 Zirkulationspumpe_WW aus
2015-03-18_22:36:22 Zirkulationspumpe_WW timedOn: aus
2015-03-18_22:36:22 Zirkulationspumpe_WW Status: 0
2015-03-18_22:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-18_23:26:18 Zirkulationspumpe_WW set_on-for-timer 600
2015-03-18_23:26:18 Zirkulationspumpe_WW Status: 1
2015-03-18_23:26:18 Zirkulationspumpe_WW level: 100
2015-03-18_23:26:18 Zirkulationspumpe_WW pct: 100
2015-03-18_23:26:18 Zirkulationspumpe_WW deviceMsg: an (to HMLAN1)
2015-03-18_23:26:18 Zirkulationspumpe_WW an
2015-03-18_23:26:18 Zirkulationspumpe_WW timedOn: running
2015-03-18_23:36:21 Zirkulationspumpe_WW level: 0
2015-03-18_23:36:21 Zirkulationspumpe_WW pct: 0
2015-03-18_23:36:21 Zirkulationspumpe_WW deviceMsg: aus (to broadcast)
2015-03-18_23:36:21 Zirkulationspumpe_WW aus
2015-03-18_23:36:21 Zirkulationspumpe_WW timedOn: aus
2015-03-18_23:36:21 Zirkulationspumpe_WW Status: 0
2015-03-18_23:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_00:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_01:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_02:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_03:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_04:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_05:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_06:26:18 Zirkulationspumpe_WW set_on-for-timer 600
2015-03-19_06:26:18 Zirkulationspumpe_WW Status: 1
2015-03-19_06:26:18 Zirkulationspumpe_WW level: 100
2015-03-19_06:26:18 Zirkulationspumpe_WW pct: 100
2015-03-19_06:26:18 Zirkulationspumpe_WW deviceMsg: an (to HMLAN1)
2015-03-19_06:26:18 Zirkulationspumpe_WW an
2015-03-19_06:26:18 Zirkulationspumpe_WW timedOn: running
2015-03-19_06:36:20 Zirkulationspumpe_WW level: 0
2015-03-19_06:36:20 Zirkulationspumpe_WW pct: 0
2015-03-19_06:36:20 Zirkulationspumpe_WW deviceMsg: aus (to broadcast)
2015-03-19_06:36:20 Zirkulationspumpe_WW aus
2015-03-19_06:36:20 Zirkulationspumpe_WW timedOn: aus
2015-03-19_06:36:20 Zirkulationspumpe_WW Status: 0
2015-03-19_06:58:16 Zirkulationspumpe_WW Status: 0   << addLog
2015-03-19_07:26:18 Zirkulationspumpe_WW set_on-for-timer 600
2015-03-19_07:26:18 Zirkulationspumpe_WW Status: 1
2015-03-19_07:26:18 Zirkulationspumpe_WW level: 100
2015-03-19_07:26:18 Zirkulationspumpe_WW pct: 100
2015-03-19_07:26:18 Zirkulationspumpe_WW deviceMsg: an (to HMLAN1)
2015-03-19_07:26:18 Zirkulationspumpe_WW an
2015-03-19_07:26:18 Zirkulationspumpe_WW timedOn: running
2015-03-19_07:36:20 Zirkulationspumpe_WW level: 0
2015-03-19_07:36:20 Zirkulationspumpe_WW pct: 0
2015-03-19_07:36:20 Zirkulationspumpe_WW deviceMsg: aus (to broadcast)
2015-03-19_07:36:20 Zirkulationspumpe_WW aus
2015-03-19_07:36:20 Zirkulationspumpe_WW timedOn: aus


Das List mache ich am WE mal, denn morgens um 5:30 Uhr bin ich noch nicht wach!  ;)

Danke für den Code, werde ich kommende Nacht testen!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Zitat von: Brockmann am 18 März 2015, 22:59:45
In diesem Sinne, probier mal, ob Du hiermit ein anderes Verhalten erreichst:
attr Zirku_Pumpe_auto_neu cmdpause 3600:0

Das tuts leider auch nicht! :(

Die CmdPause wird eingefroren, bis die Bedingungen wieder erfüllt sind!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Guten Morgen zusammen,

weiter gehts mit der Analyse.

Hier 2 lists! Einmal um 9:28 (2 Minuten bevor wieder alle Bedingungen wahr sind) und dann um 9:32 Uhr (2 Minuten nachdem alle Bedingungen wahr geworden sind:

Internals:
   DEF        ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 600)
   NAME       Zirku_Pumpe_auto_neu
   NR         949
   NTFY_ORDER 50-Zirku_Pumpe_auto_neu
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-03-22 09:28:09   cmd_event       Abwesend
     2015-03-22 09:28:09   cmd_nr          2
     2015-03-22 09:28:09   e_Abwesend_state nein
     2015-03-21 23:45:00   e_Status_Warmwasser_state aus
     2015-03-19 23:33:43   e_Urlaub_state  nein
     2015-03-22 09:28:09   state           cmd_2
   Condition:
     0          ReadingValDoIf('Abwesend','state','') eq "nein" and ReadingValDoIf('Urlaub','state','') eq "nein" and ReadingValDoIf('Status_Warmwasser','state','') eq "an"
   Devices:
     0           Abwesend Urlaub Status_Warmwasser
     all         Abwesend Urlaub Status_Warmwasser
   Do:
     0          set Zirkulationspumpe_WW on-for-timer 600
   Helper:
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Abwesend:state Urlaub:state Status_Warmwasser:state
     all         Abwesend:state Urlaub:state Status_Warmwasser:state
   State:
   Timerfunc:
   Trigger:
Attributes:
   cmdpause   3600:0
   do         always
   room       Garage,Haus


Internals:
   DEF        ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 600)
   NAME       Zirku_Pumpe_auto_neu
   NR         949
   NTFY_ORDER 50-Zirku_Pumpe_auto_neu
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-03-22 09:28:09   cmd_event       Abwesend
     2015-03-22 09:28:09   cmd_nr          2
     2015-03-22 09:28:09   e_Abwesend_state nein
     2015-03-22 09:30:00   e_Status_Warmwasser_state an
     2015-03-19 23:33:43   e_Urlaub_state  nein
     2015-03-22 09:28:09   state           cmd_2
   Condition:
     0          ReadingValDoIf('Abwesend','state','') eq "nein" and ReadingValDoIf('Urlaub','state','') eq "nein" and ReadingValDoIf('Status_Warmwasser','state','') eq "an"
   Devices:
     0           Abwesend Urlaub Status_Warmwasser
     all         Abwesend Urlaub Status_Warmwasser
   Do:
     0          set Zirkulationspumpe_WW on-for-timer 600
   Helper:
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Abwesend:state Urlaub:state Status_Warmwasser:state
     all         Abwesend:state Urlaub:state Status_Warmwasser:state
   State:
   Timerfunc:
   Trigger:
Attributes:
   cmdpause   3600:0
   do         always
   room       Garage,Haus


Geschaltet wurde (wieder, wie erwartet) nicht! Er steht sturr auf "cmd_2", obwohl die Bedingungen ja erfüllt sind. Es kann also nur an der cmdPause liegen, oder?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Brockmann

Hmm, da bin ich auch überfragt. Anscheinend kann man im list auch nicht ablesen, ob eine cmdpause aktiv ist oder nicht (ich jedenfalls nicht).
Da kann wohl nur Damian etwas zu sagen.

Michi240281

Ja offensichtlich kann man das echt nicht sehn!

Hier ein list von gerade:

Internals:
   DEF        ([Abwesend:state] eq "nein" and [Urlaub:state] eq "nein" and [Status_Warmwasser:state] eq "an")
(set Zirkulationspumpe_WW on-for-timer 600)
   NAME       Zirku_Pumpe_auto_neu
   NR         949
   NTFY_ORDER 50-Zirku_Pumpe_auto_neu
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-03-22 10:28:09   cmd_event       Abwesend
     2015-03-22 10:28:09   cmd_nr          1
     2015-03-22 10:58:09   e_Abwesend_state nein
     2015-03-22 09:30:00   e_Status_Warmwasser_state an
     2015-03-19 23:33:43   e_Urlaub_state  nein
     2015-03-22 10:28:09   state           cmd_1
   Condition:
     0          ReadingValDoIf('Abwesend','state','') eq "nein" and ReadingValDoIf('Urlaub','state','') eq "nein" and ReadingValDoIf('Status_Warmwasser','state','') eq "an"
   Devices:
     0           Abwesend Urlaub Status_Warmwasser
     all         Abwesend Urlaub Status_Warmwasser
   Do:
     0          set Zirkulationspumpe_WW on-for-timer 600
   Helper:
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Abwesend:state Urlaub:state Status_Warmwasser:state
     all         Abwesend:state Urlaub:state Status_Warmwasser:state
   State:
   Timerfunc:
   Trigger:
Attributes:
   cmdpause   3600:0
   do         always
   room       Garage,Haus


Nun steht er auf "cmd_1", so wie es sein soll! Offensichtlich ist intern da wirklich noch die cmdPause aktiv!

@Damian:Kannst du helfen?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9