DOIF set erzeugt keinen Log Eintrag

Begonnen von Feinfinger, 27 Oktober 2021, 14:25:32

Vorheriges Thema - Nächstes Thema

Feinfinger

Hallo zusammen,

Ich schalte über folgendes DOIF meine Zirkulationspumpe.

Internals:
   DEF        (([06:15-22:00|8] or [07:00-22:30|7]) and [Bewohner] eq "zuhause" and [Shelly_3:temp_zirkulation] < 29) (set Shelly_3 on) DOELSEIF ([Shelly_3:temp_zirkulation] > 40)(set Shelly_3 off) DOELSE
   FUUID      61781906-f33f-000f-9638-5e53b545e4a6639f
   MODEL      FHEM
   NAME       di_Zirkulation
   NOTIFYDEV  Shelly_3,Bewohner,global
   NR         277
   NTFY_ORDER 50-di_Zirkulation
   STATE      cmd_2
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1635337060.52675
           VALUE      cmd_3
   READINGS:
     2021-10-27 14:20:54   Device          Shelly_3
     2021-10-27 14:20:44   cmd             2
     2021-10-27 14:20:44   cmd_event       Shelly_3
     2021-10-27 14:20:44   cmd_nr          2
     2021-10-27 14:20:40   e_Bewohner_STATE zuhause
     2021-10-27 14:20:54   e_Shelly_3_temp_zirkulation 40.2
     2021-10-27 13:48:27   mode            enabled
     2021-10-27 14:20:44   state           cmd_2
     2021-10-27 13:48:27   timer_01_c01    28.10.2021 06:15:00|8
     2021-10-27 13:48:27   timer_02_c01    27.10.2021 22:00:00|8
     2021-10-27 13:48:27   timer_03_c01    28.10.2021 07:00:00|7
     2021-10-27 13:48:27   timer_04_c01    27.10.2021 22:30:00|7
   Regex:
     accu:
     collect:
     cond:
       Bewohner:
         0:
           &STATE     ^Bewohner$
         1:
       Shelly_3:
         0:
           temp_zirkulation ^Shelly_3$:^temp_zirkulation:
         1:
           temp_zirkulation ^Shelly_3$:^temp_zirkulation:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms,"8") or ::DOIF_time($hash,2,3,$wday,$hms,"7")) and ::InternalDoIf($hash,'Bewohner','STATE') eq "zuhause" and ::ReadingValDoIf($hash,'Shelly_3','temp_zirkulation') < 29
     1          ::ReadingValDoIf($hash,'Shelly_3','temp_zirkulation') > 40
   days:
     0          8
     1          8
     2          7
     3          7
   do:
     0:
       0          set Shelly_3 on
     1:
       0          set Shelly_3 off
     2:
       0         
   helper:
     DEVFILTER  ^global$|^Bewohner$|^Shelly_3$
     NOTIFYDEV  global|Bewohner|Shelly_3
     event      temp_zirkulation: 40.2
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   Shelly_3
     timerevent temp_zirkulation: 40.2
     triggerDev Shelly_3
     timerevents:
       temp_zirkulation: 40.2
     timereventsState:
       temp_zirkulation: 40.2
     triggerEvents:
       temp_zirkulation: 40.2
     triggerEventsState:
       temp_zirkulation: 40.2
   internals:
     all         Bewohner:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   localtime:
     0          1635394500
     1          1635364800
     2          1635397200
     3          1635366600
   readings:
     all         Shelly_3:temp_zirkulation
   realtime:
     0          06:15:00
     1          22:00:00
     2          07:00:00
     3          22:30:00
   time:
     0          06:15:00
     1          22:00:00
     2          07:00:00
     3          22:30:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
   triggertime:
     1635364800:
       localtime  1635364800
       hash:
     1635366600:
       localtime  1635366600
       hash:
     1635394500:
       localtime  1635394500
       hash:
     1635397200:
       localtime  1635397200
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      di_Zirkulation
   room       DOIFtools,Keller


Der zu schaltende Shelly sieht so aus:

Internals:
   FUUID      617847e9-f33f-000f-7afe-22f7a54e03719132
   IODev      Mosquitto
   NAME       Shelly_3
   NR         279
   STATE      off
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1635337058.85042
           VALUE      on
       temp_zirkulation:
         DBLogging:
           TIME       1635337414.16753
           VALUE      39.5
   READINGS:
     2021-10-27 13:22:32   IODev           Mosquitto
     2021-10-27 14:23:39   state           off
     2021-10-27 14:23:39   temp_kaltwasser 16.8
     2021-10-27 14:23:39   temp_warmwasser 47.1
     2021-10-27 14:23:39   temp_zirkulation 39.5
     2021-10-27 14:23:39   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      shellies/shelly1-E8DB84AB955C/relay/0/command
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     shellies/shelly1-E8DB84AB955C/relay/0
     shellies/shelly1-E8DB84AB955C/ext_temperature/2
     shellies/shelly1-E8DB84AB955C/ext_temperature/1
     shellies/shelly1-E8DB84AB955C/ext_temperature/0
   subscribeExpr:
     ^shellies\/shelly1-E8DB84AB955C\/relay\/0$
     ^shellies\/shelly1-E8DB84AB955C\/ext_temperature\/2$
     ^shellies\/shelly1-E8DB84AB955C\/ext_temperature\/1$
     ^shellies\/shelly1-E8DB84AB955C\/ext_temperature\/0$
   subscribeQos:
     shellies/shelly1-E8DB84AB955C/ext_temperature/0 0
     shellies/shelly1-E8DB84AB955C/ext_temperature/1 0
     shellies/shelly1-E8DB84AB955C/ext_temperature/2 0
     shellies/shelly1-E8DB84AB955C/relay/0 0
   subscribeReadings:
     shellies/shelly1-E8DB84AB955C/ext_temperature/0:
       cmd       
       name       temp_zirkulation
     shellies/shelly1-E8DB84AB955C/ext_temperature/1:
       cmd       
       name       temp_warmwasser
     shellies/shelly1-E8DB84AB955C/ext_temperature/2:
       cmd       
       name       temp_kaltwasser
     shellies/shelly1-E8DB84AB955C/relay/0:
       cmd       
       name       state
Attributes:
   IODev      Mosquitto
   alias      Zirkulationspumpe
   devStateIcon on:sani_earth_source_heat_pump@green off:sani_earth_source_heat_pump
   event-on-change-reading .*
   genericDeviceType switch
   group      Shelly
   icon       sani_boiler_temp
   publishSet on off shellies/shelly1-E8DB84AB955C/relay/0/command
   room       Homekit,Keller,MQTT-Devices
   siriName   Zirkulationspumpe
   subscribeReading_state shellies/shelly1-E8DB84AB955C/relay/0
   subscribeReading_temp_kaltwasser shellies/shelly1-E8DB84AB955C/ext_temperature/2
   subscribeReading_temp_warmwasser shellies/shelly1-E8DB84AB955C/ext_temperature/1
   subscribeReading_temp_zirkulation shellies/shelly1-E8DB84AB955C/ext_temperature/0
   useSetExtensions 1



Wenn ich den Shelly manuell schalte, wird ein Eintrag im DbLog erzeugt, so wie es sein soll.

Wenn das DOIF den Shelly schaltet, egal ob on oder off wird nichts im Log abgelegt.


Kann mir das jemand erklären?


Proxmox VM - MAPLE-CUL - SIGNALDINO

Damian

DOIF benutzt die gleichen Mechanismen, die auch für die Kommandozeile gelten, daher sollte es keine Unterschiede geben.

Du kannst mal im DOIF per set cmd_1 die Ausführung von "set Shelly_3 on" provozieren und gleichzeitig im Eventmonitor schauen, ob du das dazugehörige Event siehst. 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Feinfinger

Das hab ich bereits getan, das Event wird sauber erzeugt und findet sich auch im Log wieder.

Löst das DOIF den Befehl aus, passiert nichts im Log.

Hab auch schonmal alles neu angelegt und neu gestartet, keine Änderung.

Helfe mir momentan mit nem Dummy, aber es muss ja auch direkt gehen.
Proxmox VM - MAPLE-CUL - SIGNALDINO

Damian

Zitat von: Feinfinger am 27 Oktober 2021, 21:45:24
Das hab ich bereits getan, das Event wird sauber erzeugt und findet sich auch im Log wieder.

Löst das DOIF den Befehl aus, passiert nichts im Log.

Hab auch schonmal alles neu angelegt und neu gestartet, keine Änderung.

Helfe mir momentan mit nem Dummy, aber es muss ja auch direkt gehen.

ja, aber ich wollte wissen, ob über DOIF ein entsprechendes Event (nicht Log) generiert wird - das hast du hier nicht geschrieben
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF