Hauptmenü

mein DOIF macht nichts

Begonnen von Christian72D, 04 November 2024, 16:23:11

Vorheriges Thema - Nächstes Thema

Christian72D

Ich möchte bei Abwesendheit die Heizungs Sollwerte in Variablen schreiben lassen und danach die Heizung runter stellen.
Wenn ich zurück bin sollen alle auf die gespeicherten Werte zurück gehen.

Aber weder das Schreiben in die Variablen geht, noch das stellen der Heizung.
Selbst wenn ich CMD_1 oder _2 von Hand starte.

Internals:
   DEF        ([16:00-21:30] and ([Bewohner] ne "home")) (set WZ_Temp [WZ.Heizung:desired-temp], set WZ.Heizung desired-temp 17.0, set WC_Temp [WC.Heizung:desired-temp], set WC.Heizung desired-temp 17.0, set Bad_Temp [Bad.Heizung:desired-temp], set Bad.Heizung desired-temp 17.0, set AZ_Temp [AZ.Heizung:desired-temp], set AZ.Heizung desired-temp 17.0, set SZ_Temp [SZ.Heizung:desired-temp], set SZ.Heizung desired-temp 17.0, set K_Temp [K.Heizung:desired-temp], set K.Heizung desired-temp 17.0) DOELSEif ([16:00-21:30] and ([Bewohner] eq "home")) (set WZ.Heizung desired-temp [WZ_Temp], set WC.Heizung desired-temp [WC_Temp], set Bad.Heizung desired-temp [Bad_Temp], set AZ.Heizung desired-temp [AZ_Temp], set SZ.Heizung desired-temp [SZ_Temp], set K.Heizung desired-temp [K_Temp])
   FUUID      5e746858-f33f-23c8-bf7c-3ec8680a4e2c3d62
   FVERSION   98_DOIF.pm:0.285460/2024-02-23
   MODEL      FHEM
   NAME       Heizung_Bewohner
   NOTIFYDEV  Bewohner,global
   NR         443
   NTFY_ORDER 50-Heizung_Bewohner
   STATE      disabled
   TYPE       DOIF
   VERSION    28546 2024-02-23 20:11:05
   eventCount 2
   READINGS:
     2024-11-03 19:45:17   Device          Bewohner
     2024-11-03 19:45:17   cmd             2
     2024-11-03 19:45:17   cmd_event       Bewohner
     2024-11-03 19:45:17   cmd_nr          2
     2024-11-03 19:45:17   e_Bewohner_STATE home
     2024-11-03 19:45:27   last_cmd        cmd_2
     2024-11-03 19:45:27   mode            disabled
     2024-11-03 19:45:27   state           disabled
     2024-11-04 03:00:40   timer_01_c01    04.11.2024 16:00:00
     2024-11-04 03:00:40   timer_02_c01    04.11.2024 21:30:00
   Regex:
     cond:
       Bewohner:
         0:
           &STATE     ^Bewohner$
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and (::InternalDoIf($hash,'Bewohner','STATE') ne "home")
   days:
   do:
     0:
       0          set WZ_Temp [WZ.Heizung:desired-temp], set WZ.Heizung desired-temp 17.0, set WC_Temp [WC.Heizung:desired-temp], set WC.Heizung desired-temp 17.0, set Bad_Temp [Bad.Heizung:desired-temp], set Bad.Heizung desired-temp 17.0, set AZ_Temp [AZ.Heizung:desired-temp], set AZ.Heizung desired-temp 17.0, set SZ_Temp [SZ.Heizung:desired-temp], set SZ.Heizung desired-temp 17.0, set K_Temp [K.Heizung:desired-temp], set K.Heizung desired-temp 17.0
     1:
       0         
   helper:
     NOTIFYDEV  Bewohner,global
     globalinit 1
     last_timer 2
     sleeptimer -1
   internals:
     all         Bewohner:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1730732400
     1          1730752200
   perlblock:
   realtime:
     0          16:00:00
     1          21:30:00
   time:
     0          16:00:00
     1          21:30:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1730752200:
       localtime  1730752200
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon cmd_1:ios-set_on cmd_2:ios-set_off-green disabled:ios-off initialize:ios_off_fill initialized:ios_off_fill
   do         always
   event-on-change-reading Bewohner
   group      HeizungsSteuerung
   room       Heizung

Und ja, die Variablen sind angelegt, beim Test OHNE was zu stellen wurden auch schön die Werte rein geschrieben.

rabehd

Wie wäre es mal mit einem Heizkörper anzufangen?
Auch funktionierende Lösungen kann man hinterfragen.

passibe

#2
Du hast da DOELSEif stehen. Das muss DOELSEIF heißen.

Ansonsten: Am besten in der Definition auch Absätze und ggfs. Einrückungen benutzen ... Macht es um einiges übersichtlicher

Sany

Zitatmein DOIF macht nichts
Doch, dein DOIF macht genau das, was du ihm gesagt hast: nix ;)
Ich lese 3x disabled in Deinem list. Du hast das DOIF schlicht disabled, dann macht es auch nix.
Beim "set Heizung_Bewohner " aus dem Auswahlfeld enable auswählen und Set klicken, dann macht es zumindest etwas. Wie passible schreibt ist da ein Fehler drin, und wie rabehd anmerkt ist die Fehlersuche einfacher, wenn man in kleinem Schritten startet und erweitert.

Viel Erfolg!



Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

activetower

it's better to use absätze and ggfs. in the definition as well. Macht is rather too optimistic.