Hauptmenü

Zeitsteuerung

Begonnen von antonwinden, 25 Oktober 2024, 14:55:09

Vorheriges Thema - Nächstes Thema

antonwinden

Ich habe das Problem das folgendes DOIF obwohl eigentlich simpel nicht funktioniert:

Internals:
   DEF        (([Heizungan])-([Heizungaus]) && ([Uebergangszeitaktiv] eq "ein"))(set HeizungEinAus on)DOELSE(set HeizungEinAus off)
   FUUID      671381dd-f33f-d8e8-9be9-d5c6bf3a49eb9fdf
   FVERSION   98_DOIF.pm:0.285460/2024-02-23
   MODEL      FHEM
   NAME       heatuebergangszeit
   NOTIFYDEV  Heizungan,Uebergangszeitaktiv,Heizungaus,global
   NR         1723
   NTFY_ORDER 50-heatuebergangaus
   STATE      cmd_1
   TYPE       DOIF
   VERSION    28546 2024-02-23 20:11:05
   eventCount 28
   READINGS:
     2024-10-25 12:53:06   cmd             1
     2024-10-25 12:53:06   cmd_event       heatuebergangszeit
     2024-10-25 12:53:06   cmd_nr          1
     2024-10-25 12:43:21   last_cmd        cmd_1
     2024-10-25 12:53:02   mode            enabled
     2024-10-25 12:53:06   state           cmd_1
     2024-10-25 12:53:06   warning         condition c01: Argument "09:00" isn't numeric in subtraction (-)

   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Heizungan:
         0:
           &STATE     ^Heizungan$
       Heizungaus:
         0:
           &STATE     ^Heizungaus$
       Uebergangszeitaktiv:
         0:
           &STATE     ^Uebergangszeitaktiv$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::InternalDoIf($hash,'Heizungan','STATE'))-(::InternalDoIf($hash,'Heizungaus','STATE')) && (::InternalDoIf($hash,'Uebergangszeitaktiv','STATE') eq "ein")
   do:
     0:
       0          set HeizungEinAus on
     1:
       0          set HeizungEinAus off
   helper:
     NOTIFYDEV  Heizungan,Uebergangszeitaktiv,Heizungaus,global
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventa:
       cmd_nr: 1
       cmd: 1
       cmd_event: heatuebergangszeit
       cmd_1
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: heatuebergangszeit
       state: cmd_1
   internals:
     all         Heizungan:STATE Heizungaus:STATE Uebergangszeitaktiv:STATE
   uiState:
   uiTable:
Attributes:
   do         always
   group      Übergangszeit
   room       Heizung
Gibt die Warnung "condition c01: Argument "09:00" isn't numeric in subtraction (-)" aus.
Heizungan ist im Format "09:00"
und Heizungaus "15:00"
Wie krieg ich das zum Laufen?
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Gisbert

Hallo Anton,

vielleicht so:
([Heizungan-Heizungaus] && [Uebergangszeitaktiv] eq "ein")Überflüssige Klammern sind auch entfernt.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

passibe

Müsste es nicht zusätzlich auch
[?Uebergangszeitaktiv] eq "ein"heißen?

Denn das soll ja hinsichtlich der Übergangszeit nicht event-basiert sein, sondern nur "abfragen" ob grade Übergangszeit ist, oder nicht.

Gisbert

Vom Ergebnis her sollte es keinen Unterschied machen, ob [Uebergangszeitaktiv] eq "ein" triggernd oder mit ? nicht triggernd ist.
Ich versuche so wenig Trigger wie möglich zu verwenden. Manchmal kommt es aber vor, gerne im Zusammenhang mit event-on-change-reading, dass man plötzlich ganz ohne Trigger da steht.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Damian

Zeitintervalle sehen anders aus:

([[Heizungan]-[Heizungaus]] && ...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF