DOIF triggert nicht mit Uhrzeit

Begonnen von krk_0812, 21 Oktober 2017, 10:41:00

Vorheriges Thema - Nächstes Thema

krk_0812

Ich habe jetzt eine Stunde vergeblich gesucht, entweder habe ich es nicht gefunden, oder ich verstehe es nicht . . .

Ich verwende eine einfache Heizungssteuerung, die bis zum Abschalten im Mai problemlos lief, seit dem Wiedereinschalten im Oktober jedoch (nach Update) nicht mehr funktioniert:

Nachtabsenkung Heizungskessel
define Nachtabsenkung_Heizkessel DOIF ([07:00-22:00])(set Kesselregelung desired 55) DOELSE (set Kesselregelung desired 40)
define Kesselregelung THRESHOLD Heizungskessel:temperature:5.0 |set Heizung off|set Heizung on|2
attr Kesselregelung number_format %.1f
attr Kesselregelung state_format _m _dv

Umwälzpumpensteuerung
define Umwaelzpumpen DOIF ([07:00-22:00])(set Heizungspumpen desired 20) DOELSE (set Heizungspumpen desired 16)
define Heizungspumpen THRESHOLD Wohnzimmer:temperature:0.5 |set Pumpe_Fussbodenheizung off;;set Pumpe_Radiatoren  off|set Pumpe_Fussbodenheizung on;;set Pumpe_Radiatoren on|2
attr Heizungspumpen number_format %.1f
attr Heizungspumpen state_format _m _dv


Fehler: von DOIF wird keine Temperaturänderung mehr an THRESHOLD übergeben und ich finde keinen Fehler, da seit dem Abschaltenim Frühjahr nichts geändert wurde.
Wie kann ich denn DOIF veranlassen, dass kurzfristig getriggert wird? Ich kann ja nicht immer bis 22:00 oder 7:00 warten.
THRESHOLD kann ich über "Desired" und Eingabe einer Temperatur zum Schalten bewegen, aber von DOIF kommt keine Information zu THRESHOLD.

Danke für jeden Tipp!
2 x FB7390 + 2 x RaspberryPi (FHEM)
Reserve: 2x FB7050, 2x FB7270, 1x FB7390, 1 x 7490, CUL,

Otto123

Hi,

Du kannst jederzeit die Zweige x des DOIF testen durch set <Name des DOIF> cmd_x

Statt rot schreiben verwende bitte Codetags, die findest Du mit der # Taste über dem  :-X Smily.
Ein list vom DOIF ist auch wesentlich besser als ein fett formatiertes define. Da sieht man viel mehr. Vor allem ob das DOIF einfach inactive geschaltet ist?  ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krk_0812

Hallo Otto,

danke!
Ich habe meine Frage geändert, die Formatierungen und Farbe raus genommen.
Deinen Tip mit"cmd_x" zu testen, habe ich durchgeführt. cmd_1 und cmd_2 schalten den THRESHOLD um. Es steht dann die neue Temperatur drin.
Bei mir funktioniert anscheinend "nur" die Schaltung (Triggerung) über die Uhrzeit nicht. Zu den Schaltzeiten 07:00 und 22:00 passiert nichts!

Gruß Manfred
2 x FB7390 + 2 x RaspberryPi (FHEM)
Reserve: 2x FB7050, 2x FB7270, 1x FB7390, 1 x 7490, CUL,

Otto123

Aber die Timer sehen gut aus. Das sollte zu den Zeiten funktionieren.
Ein Screenshot ist kein list! Gib bitte in der Kommandzeile list Umwaelzpumpen ein und kopiere die Ausgabe als Text.

Du kannst doch einfach die Zeiten mal in kurze Zukunft ändern.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krk_0812

#4
Hallo Otto,

ich habe es jetzt mit einer naheliegenden Uhrzeit probiert. Statt 22:00 dann 14:50 eingegeben. Die Umschaltung hat funktioniert --> cmd2.
Warum seit Inbetriebnahme vor 4 Tagen keine einzige Umschaltung um 07:00 und 22:00 funktioniert hat, ist mir ein Rätsel.
Kann es sein, weil ich über THRESHOLD und "Desired" die Temperatur eingegeben habe und die sich dadurch dort fixiert hatte?
Ich beobachte es heute abend und morgen früh und rühre ich dann noch einmal!

Erst einmal besten Dank und ein schönes Wochenende!
Gruß Manfred


Internals:
   DEF        ([07:00-22:00])(set Heizungspumpen desired 18) DOELSE (set Heizungspumpen desired 16)
   NAME       Umwaelzpumpen
   NR         141
   NTFY_ORDER 50-Umwaelzpumpen
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-10-21 13:14:33   cmd             1
     2017-10-21 13:14:33   cmd_event       set_cmd_1
     2017-10-21 13:14:33   cmd_nr          1
     2017-10-21 13:14:33   state           cmd_1
     2017-10-21 10:19:45   timer_01_c01    22.10.2017 07:00:00
     2017-10-21 10:19:45   timer_02_c01    21.10.2017 22:00:00
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
   do:
     -1:
     0:
       0          set Heizungspumpen desired 18
     1:
       0          set Heizungspumpen desired 16
   helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1508648400
     1          1508616000
   realtime:
     0          07:00:00
     1          22:00:00
   regexp:
     all:
   state:
     STATE:
   time:
     0          07:00:00
     1          22:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1508616000:
       localtime  1508616000
       hash:
     1508648400:
       localtime  1508648400
       hash:
Attributes:
2 x FB7390 + 2 x RaspberryPi (FHEM)
Reserve: 2x FB7050, 2x FB7270, 1x FB7390, 1 x 7490, CUL,

Otto123

Zitat von: Otto123 am 21 Oktober 2017, 11:50:06
verwende bitte Codetags, die findest Du mit der # Taste über dem  :-X Smily.
Editiere bitte Deinen Post nochmal, das übt und wir können es wirklich besser lesen :)

Der desired_value sollte sich ändern, egal von wo Du ihn setzt. Am Timestamp im Reading kannst Du auch sehen wann er geändert wurde.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krk_0812

Hallo Otto,

jetzt haben um 22:00 beide DOIF umgeschaltet.
Frage mich aber bitte nicht, weshalb sie das an den vergangenen 4 Tagen nicht taten!

Was mich noch beschäftigt, ist die Frage, ob ich meine beiden DOIF und beide THRESHOLD alleine durch DOIF ersetzen könnte?
Ich habe 2 Schaltzeiten (07:00 und 22:00), sowohl für die Nachtabsenkung des Heizkessels, als auch für die Nachtabsenkung der Heizkörper (geschaltet über die Umwälzpumpen).
Tagtemperatur Kessel 55 Grad, nachts 40 Grad (Hysterese 5 Grad),
Tagtemperatur Umwälzpumpen 20 Grad, nachts 16 Grad (Hysterese 1 Grad).

Danke für Deine Hilfe!
Gruß Manfred
2 x FB7390 + 2 x RaspberryPi (FHEM)
Reserve: 2x FB7050, 2x FB7270, 1x FB7390, 1 x 7490, CUL,

Damian

Zitat von: krk_0812 am 21 Oktober 2017, 22:47:42
Hallo Otto,

jetzt haben um 22:00 beide DOIF umgeschaltet.
Frage mich aber bitte nicht, weshalb sie das an den vergangenen 4 Tagen nicht taten!
Du hast keine Attribute gesetzt (insb. do always), wenn du manuell zum Testen cmd_1 ausführst, wird es nicht noch mal um 07:00 Uhr ausgeführt.

Zitat
Was mich noch beschäftigt, ist die Frage, ob ich meine beiden DOIF und beide THRESHOLD alleine durch DOIF ersetzen könnte?
Ich habe 2 Schaltzeiten (07:00 und 22:00), sowohl für die Nachtabsenkung des Heizkessels, als auch für die Nachtabsenkung der Heizkörper (geschaltet über die Umwälzpumpen).
Tagtemperatur Kessel 55 Grad, nachts 40 Grad (Hysterese 5 Grad),
Tagtemperatur Umwälzpumpen 20 Grad, nachts 16 Grad (Hysterese 1 Grad).

Das kannst du machen. Allerdings zeigt die Erfahrung, dass man sich unnötig Abhängigkeiten einhandelt, wenn man alles in ein Modul packt.

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

Otto123

Zitat von: Damian am 21 Oktober 2017, 22:56:47
Das kannst du machen. Allerdings zeigt die Erfahrung, dass man sich unnötig Abhängigkeiten einhandelt, wenn man alles in ein Modul packt.
Das sehe ich so wie Damian. Also lass es so aufgeteilt.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krk_0812

Herzlichen Dank an beide,

heute morgen hat es auch wieder regulär umgeschaltet, also scheint es zu funktionieren.
Jetzt muss ich aber erst wieder suchen, was "do always" bedeutet und wie es geneu eingefügt wird.
Das ist mein Problem, ich werde es sicher finden, einfügen und nach einem Jahr absolut nicht mehr wissen, wie das funktionierte.

Noch einen schönen Sonntag!
Gruß Manfred
2 x FB7390 + 2 x RaspberryPi (FHEM)
Reserve: 2x FB7050, 2x FB7270, 1x FB7390, 1 x 7490, CUL,

Otto123

Hallo MAnfred,

ich glaube Du brauchst in deinem Fall do always nicht wirklich. Die Bemerkung von Damian war dahingehen, wenn Du zwischendrin den Zustand schon per Hand getriggert hast triggert er nicht noch einmal.
Ein DOIF führt beim Zustandwechsel der Bedingung den Ausführungsteil nur einmal aus. Beispiel
defmod di_GutenMorgen DOIF ([05:51-11:00] and ["LichtBWaSw_02:on"]) (set Sonos_Bad GroupMute 0)
Geht der Schalter in der Zeitspanne das erste Mal auf on wird das radio gestartet. Geht er aus bekommt das DOIF nicht mit. Geht er wieder auf on wird das Radio nicht neu gestartet. Würde ich das wollen, müsste ich do always verwenden.

Bei Dir wird zu Beginn der Zeitspanne einmal geschaltet und zum Ende das DOELSE ausgeführt. Das ist alles gut.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz