FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: willybauss am 20 Januar 2017, 23:27:17

Titel: DOIF Syntax
Beitrag von: willybauss am 20 Januar 2017, 23:27:17
Hi,

ich habe zwei DOIF's, die inhaltlich und funktional gleich sind; sie unterscheiden sich lediglich in der Zeilenformatierung. Das führt bei Version 2 zu einer unschönen Nebenwirkung:

Version 1 läuft perfekt.
Version 2 macht funktional auch, was es soll, aber alle userReadings des Mythz Devices erscheinen doppelt im Log. Das kann ja fast nur an Zeilentrennungen oder TAB statt Leerzeichen liegen. Andere Unterschiede sehe ich nicht. Aber was steckt dahinter?

Wer kann mir den Denkanstoß geben, um drauf zu kommen, was hier schief läuft?

Version 1:
([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 0)
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 1)
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 2)
                 DOELSE (setreading Mythz fanstage 3)


Version 2:
([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 0)
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 1)
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 2)
DOELSE
(setreading Mythz fanstage 3)

Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 21 Januar 2017, 21:51:18
Nachtrag:
in beiden Fällen (Version 1 und 2) erscheint das notify, das die userReadings triggert, nur einmal in Eventmonitor. Woher kommt dann der zweite Eintrag im Log?
Titel: Antw:DOIF Syntax
Beitrag von: Amenophis86 am 22 Januar 2017, 07:03:41
Hat das Zweite vll ein do always attr? Ein List der beiden DOIF würde die Unterschiede nochmal deutlicher zeigen, sofern denn welche vorhanden sind.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 09:37:55
Besten Dank erst mal für die Antwort.

Die Attribute beider Varianten sind identisch:

define FanStageCurrent_old DOIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] ) \
(setreading Mythz fanstage 0)\
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] )\
(setreading Mythz fanstage 1)\
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] )\
(setreading Mythz fanstage 2)\
DOELSE\
(setreading Mythz fanstage 3)
attr FanStageCurrent_old disable 1
attr FanStageCurrent_old do always
attr FanStageCurrent_old eventMap cmd_1:0 cmd_2:1 cmd_3:2 cmd_4:3


define FanStageCurrent DOIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 0)\
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 1)\
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 2)\
                 DOELSE (setreading Mythz fanstage 3)
attr FanStageCurrent disable 0
attr FanStageCurrent do always
attr FanStageCurrent eventMap cmd_1:0 cmd_2:1 cmd_3:2 cmd_4:3


Über disable 0/1 schalte ich zum testen zwischen beiden um.
Titel: Antw:DOIF Syntax
Beitrag von: Amenophis86 am 22 Januar 2017, 10:18:15
das ist ein Auszug aus der cfg und kein list des Device.

gib mal in der Kommandzeile folgendes ein "list FanStageCurrent_old" bzw "list FanStageCurrent" ein und poste das Ergebnis hier.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 19:43:27
Sorry, da habe ich wohl gegooft. Ich habe nun zuerst das eine "list ..." erstellt, dann das Device disabled und dafür das andere enabled, bevor ich auch dort das "list ..." erstellte. Damit ergeben sich vergleichbare Verhältnisse.

list FanStageCurrent_old:
Internals:
   DEF        ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 0)
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 1)
DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] )
(setreading Mythz fanstage 2)
DOELSE
(setreading Mythz fanstage 3)
   NAME       FanStageCurrent_old
   NR         557
   NTFY_ORDER 50-FanStageCurrent
   STATE      1
   TYPE       DOIF
   Readings:
     2017-01-22 19:34:33   Device          Mythz
     2017-01-22 19:34:33   cmd             2
     2017-01-22 19:34:33   cmd_event       Mythz
     2017-01-22 19:34:33   cmd_nr          2
     2017-01-22 19:34:33   e_Mythz_p40Fanstage1AirflowOutlet 63 m3/h
     2017-01-22 19:34:33   e_Mythz_p41Fanstage2AirflowOutlet 150 m3/h
     2017-01-22 19:34:33   e_Mythz_p42Fanstage3AirflowOutlet 300 m3/h
     2017-01-22 19:34:33   e_Mythz_sGlobal outsideTemp: -6.1 flowTemp: 31.9 returnTemp: 27.1 hotGasTemp: 88.6 dhwTemp: 46.6 flowTempHC2: -60 evaporatorTemp: -13 condenserTemp: 34.1 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 22 mainVentilatorSpeed: 19 outside_tempFiltered: -4.8 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.94 P_Hd: 13.31 actualPower_Qc: 3.405 actualPower_Pel: 1.064 collectorTemp: -60 insideTemp: 23.5
     2017-01-22 19:34:33   state           cmd_2
   Condition:
     0          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p40Fanstage1AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
     1          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p41Fanstage2AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
     2          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p42Fanstage3AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
   Devices:
     0           Mythz
     1           Mythz
     2           Mythz
     all         Mythz
   Do:
     0:
       0          setreading Mythz fanstage 0
     1:
       0          setreading Mythz fanstage 1
     2:
       0          setreading Mythz fanstage 2
     3:
       0          setreading Mythz fanstage 3
   Helper:
     event      sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2,inside_temp: 22.4
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Mythz
     timerevent sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2,inside_temp: 22.4
     triggerDev Mythz
     timerevents:
       sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2
       inside_temp: 22.4
       fanstage: 1
       inside_temp: 22.4
     timereventsState:
       sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2
       inside_temp: 22.4
       fanstage: 1
       inside_temp: 22.4
     triggerEvents:
       sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2
       inside_temp: 22.4
       fanstage: 1
       inside_temp: 22.4
     triggerEventsState:
       sHC1: outsideTemp: -6.2 x08: -2.8 returnTemp: 27.1 integralHeat: -62 flowTemp: 31.9 heatSetTemp: 28.5 heatTemp: 28.4 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.4 x72: 0 x76: 2.2 onHysteresisNo: 1 offHysteresisNo: 0 HCBoosterStage: 2
       inside_temp: 22.4
       fanstage: 1
       inside_temp: 22.4
   Internals:
   Itimer:
   Readings:
     0           Mythz:sGlobal Mythz:p40Fanstage1AirflowOutlet
     1           Mythz:sGlobal Mythz:p41Fanstage2AirflowOutlet
     2           Mythz:sGlobal Mythz:p42Fanstage3AirflowOutlet
     all         Mythz:sGlobal Mythz:p40Fanstage1AirflowOutlet Mythz:p41Fanstage2AirflowOutlet Mythz:p42Fanstage3AirflowOutlet
   Regexp:
     0:
     1:
     All:
   State:
   Trigger:
Attributes:
   disable    0
   do         always
   eventMap   cmd_1:0 cmd_2:1 cmd_3:2 cmd_4:3


list FanStageCurrent:
Internals:
   CFGFN
   DEF        ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p40Fanstage1AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 0)
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p41Fanstage2AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 1)
                 DOELSEIF ([Mythz:sGlobal:[outputVentilatorPower. (\d+)]] < [Mythz:p42Fanstage3AirflowOutlet:d:$1/3.5] ) (setreading Mythz fanstage 2)
                 DOELSE (setreading Mythz fanstage 3)
   NAME       FanStageCurrent
   NR         1076
   NTFY_ORDER 50-thzfanstageif
   STATE      1
   TYPE       DOIF
   Readings:
     2017-01-22 19:12:26   Device          Mythz
     2017-01-22 19:12:26   cmd             2
     2017-01-22 19:12:26   cmd_event       Mythz
     2017-01-22 19:12:26   cmd_nr          2
     2017-01-22 19:12:26   e_Mythz_p40Fanstage1AirflowOutlet 63 m3/h
     2017-01-22 19:12:26   e_Mythz_p41Fanstage2AirflowOutlet 150 m3/h
     2017-01-22 19:12:26   e_Mythz_p42Fanstage3AirflowOutlet 300 m3/h
     2017-01-22 19:12:26   e_Mythz_sGlobal outsideTemp: -5.8 flowTemp: 31.7 returnTemp: 26.9 hotGasTemp: 86.5 dhwTemp: 46.8 flowTempHC2: -60 evaporatorTemp: -13 condenserTemp: 33.9 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 23 mainVentilatorSpeed: 20 outside_tempFiltered: -4.2 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.94 P_Hd: 13.22 actualPower_Qc: 3.419 actualPower_Pel: 1.061 collectorTemp: -60 insideTemp: 23.6
     2017-01-22 19:12:26   state           cmd_2
   Condition:
     0          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p40Fanstage1AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
     1          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p41Fanstage2AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
     2          ReadingValDoIf($hash,'Mythz','sGlobal','','outputVentilatorPower. (\d+)') < ReadingValDoIf($hash,'Mythz','p42Fanstage3AirflowOutlet','','(-?\d+(\.\d+)?)','$1/3.5')
   Devices:
     0           Mythz
     1           Mythz
     2           Mythz
     all         Mythz
   Do:
     0:
       0          setreading Mythz fanstage 0
     1:
       0          setreading Mythz fanstage 1
     2:
       0          setreading Mythz fanstage 2
     3:
       0          setreading Mythz fanstage 3
   Helper:
     event      sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0,SwitchingProg: 1,Compressor: 1,HeatingHC: 1,HeatingDHW: 0,BoosterHC: 0,FilterBoth: 1,VentStage: 0,PumpHC: 1,Defrost: 0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Mythz
     timerevent sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0,SwitchingProg: 1,Compressor: 1,HeatingHC: 1,HeatingDHW: 0,BoosterHC: 0,FilterBoth: 1,VentStage: 0,PumpHC: 1,Defrost: 0
     triggerDev Mythz
     timerevents:
       sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
       fanstage: 1
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
     timereventsState:
       sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
       fanstage: 1
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
     triggerEvents:
       sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
       fanstage: 1
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
     triggerEventsState:
       sDisplay:  switchingProg: 1 compressor: 1 heatingHC: 1 heatingDHW: 0 boosterHC: 0 filterBoth: 1 ventStage: 0 pumpHC: 1 defrost: 0 filterUp: 0 filterDown: 0
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
       fanstage: 1
       SwitchingProg: 1
       Compressor: 1
       HeatingHC: 1
       HeatingDHW: 0
       BoosterHC: 0
       FilterBoth: 1
       VentStage: 0
       PumpHC: 1
       Defrost: 0
   Internals:
   Itimer:
   Readings:
     0           Mythz:sGlobal Mythz:p40Fanstage1AirflowOutlet
     1           Mythz:sGlobal Mythz:p41Fanstage2AirflowOutlet
     2           Mythz:sGlobal Mythz:p42Fanstage3AirflowOutlet
     all         Mythz:sGlobal Mythz:p40Fanstage1AirflowOutlet Mythz:p41Fanstage2AirflowOutlet Mythz:p42Fanstage3AirflowOutlet
   Regexp:
     0:
     1:
     2:
     All:
   State:
   Trigger:
Attributes:
   disable    0
   do         always
   eventMap   cmd_1:0 cmd_2:1 cmd_3:2 cmd_4:3


Es ergeben sich deutliche Unterschiede in den unter "Helper" gelisteten Events - wobei ich nach wie vor den Grund dafür nicht sehe.
Titel: Antw:DOIF Syntax
Beitrag von: Puschel74 am 22 Januar 2017, 20:14:39
Im Unterforum Automatisierung -> DOIF wäre deine Frage besser aufgehoben.
In den entsprechenden Unterforen lesen idR auch die Maintainer mit - was im Anfängerbereich nicht unbedingt sein muss.
Damian macht das zwar (Maintainer für DOIF) aber für Neu-Anfänger wäre es besser die Frage passend zu platzieren da im richtigen Forenbereich vermutlich schneller und effizienter geholfen werden kann.
Wenn man als Anfänger nachlesen will wo die Frage besser gestellt werden soll bietet sich doch glatt Rudis angepinnter Beitrag an In welcher Gruppe sollte ich meine Fragen stellen (http://in%20welcher%20gruppe%20sollte%20ich%20meine%20fragen%20stellen)
Edith: Verschieben kannst du übrigens selbst.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 20:24:01
ok, habs jetzt verschoben.
Titel: Antw:DOIF Syntax
Beitrag von: Damian am 22 Januar 2017, 21:44:57
Zitat von: willybauss am 22 Januar 2017, 20:24:01
ok, habs jetzt verschoben.

Ich sehe keine bedeutenden Unterschiede. Die Unterschiede unter helper haben keine Bedeutung für die Funktion, es sind Events die gerade mal im System ausgelöst wurden.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 21:49:04
Zitat von: Damian am 22 Januar 2017, 21:44:57
Ich sehe keine bedeutenden Unterschiede. Die Unterschiede unter helper haben keine Bedeutung für die Funktion, es sind Events die gerade mal im System ausgelöst wurden.
Eben das ist mein Problem.
Es ist reproduzierbar so, dass bei der ..._old Variante (also die mit der besser lesbaren Zeilentrennung) alle userReadings des Mythz Devices doppelt im Log erscheinen. Bei der anderen Variante nicht. Solange ich das nicht verstehe, besteht die Gefahr, aus Gründen der Lesbarkeit des Codes noch mehr solche Probleme einzubauen.
Titel: Antw:DOIF Syntax
Beitrag von: Damian am 22 Januar 2017, 21:58:35
Zitat von: willybauss am 22 Januar 2017, 21:49:04
Eben das ist mein Problem.
Es ist reproduzierbar so, dass bei der ..._old Variante (also die mit der besser lesbaren Zeilentrennung) alle userReadings des Mythz Devices doppelt im Log erscheinen. Bei der anderen Variante nicht. Solange ich das nicht verstehe, besteht die Gefahr, aus Gründen der Lesbarkeit des Codes noch mehr solche Probleme einzubauen.

Dann schneide mal die doppelten Events mit und poste sie hier mal.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 22:00:12
wie bereits oben geschrieben:

in beiden Fällen (Version 1 und 2) erscheint das notify, das die userReadings triggert, nur einmal in Eventmonitor. Woher kommt dann der zweite Eintrag im Log?
Ich kann's aber trotzdem nochmal monitoren und rein stellen. Dauert ein paar Minuten.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 22 Januar 2017, 23:05:33
EventMonitor, gefiltert auf .*sGlobal.*
2017-01-22 22:45:30 THZ Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.2 returnTemp: 28.4 hotGasTemp: 92.3 dhwTemp: 43.5 flowTempHC2: -60 evaporatorTemp: -16.2 condenserTemp: 34.2 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.6 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.65 P_Hd: 13.43 actualPower_Qc: 2.916 actualPower_Pel: 1.014 collectorTemp: -60 insideTemp: 23.1
2017-01-22 22:50:30 THZ Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.5 returnTemp: 28.5 hotGasTemp: 93 dhwTemp: 43.6 flowTempHC2: -60 evaporatorTemp: -15.7 condenserTemp: 34.5 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.7 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.7 P_Hd: 13.43 actualPower_Qc: 2.997 actualPower_Pel: 1.023 collectorTemp: -60 insideTemp: 23.1
2017-01-22 22:55:30 THZ Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.5 returnTemp: 28.7 hotGasTemp: 93.4 dhwTemp: 43.5 flowTempHC2: -60 evaporatorTemp: -16 condenserTemp: 34.5 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 13 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.8 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.7 P_Hd: 13.52 actualPower_Qc: 2.985 actualPower_Pel: 1.027 collectorTemp: -60 insideTemp: 23.1


Ergebnis im Log (Doppeleinträge bunt markiert):
Zitat2017-01-22_22:45:29 Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.2 returnTemp: 28.4 hotGasTemp: 92.3 dhwTemp: 43.5 flowTempHC2: -60 evaporatorTemp: -16.2 condenserTemp: 34.2 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.6 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.65 P_Hd: 13.43 actualPower_Qc: 2.916 actualPower_Pel: 1.014 collectorTemp: -60 insideTemp: 23.1
2017-01-22_22:45:29 Mythz Rel_humidity: 31.6
2017-01-22_22:45:29 Mythz flow_temp: 37.2
2017-01-22_22:45:29 Mythz return_temp: 28.4
2017-01-22_22:45:29 Mythz outside_temp: -9.5
2017-01-22_22:45:29 Mythz dhw_temp: 43.5
2017-01-22_22:45:29 Mythz Rel_humidity: 31.6
2017-01-22_22:45:29 Mythz flow_temp: 37.2
2017-01-22_22:45:29 Mythz return_temp: 28.4
2017-01-22_22:45:29 Mythz outside_temp: -9.5
2017-01-22_22:45:29 Mythz dhw_temp: 43.5
2017-01-22_22:46:24 Mythz sHC1: outsideTemp: -9.5 x08: 43.2 returnTemp: 28.5 integralHeat: 28 flowTemp: 37.3 heatSetTemp: 29.6 heatTemp: 31 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.2 x72: 0 x76: 2.2 onHysteresisNo: 2 offHysteresisNo: 0 HCBoosterStage: 3
2017-01-22_22:46:24 Mythz inside_temp: 22.2
2017-01-22_22:46:24 Mythz inside_temp: 22.2
2017-01-22_22:50:29 Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.5 returnTemp: 28.5 hotGasTemp: 93 dhwTemp: 43.6 flowTempHC2: -60 evaporatorTemp: -15.7 condenserTemp: 34.5 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 14 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.7 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.7 P_Hd: 13.43 actualPower_Qc: 2.997 actualPower_Pel: 1.023 collectorTemp: -60 insideTemp: 23.1
2017-01-22_22:50:29 Mythz Rel_humidity: 31.6
2017-01-22_22:50:29 Mythz flow_temp: 37.5
2017-01-22_22:50:29 Mythz return_temp: 28.5
2017-01-22_22:50:29 Mythz outside_temp: -9.5
2017-01-22_22:50:29 Mythz dhw_temp: 43.6
2017-01-22_22:50:29 Mythz Rel_humidity: 31.6
2017-01-22_22:50:29 Mythz flow_temp: 37.5
2017-01-22_22:50:29 Mythz return_temp: 28.5
2017-01-22_22:50:29 Mythz outside_temp: -9.5
2017-01-22_22:50:29 Mythz dhw_temp: 43.6
2017-01-22_22:51:24 Mythz sHC1: outsideTemp: -9.5 x08: 18.5 returnTemp: 28.6 integralHeat: 36 flowTemp: 37.4 heatSetTemp: 29.6 heatTemp: 31.2 seasonMode: winter integralSwitch: 200 opMode: setback roomSetTemp: 21.5 x60: 0 x64: 563.2 insideTempRC: 22.2 x72: 0 x76: 2.2 onHysteresisNo: 2 offHysteresisNo: 0 HCBoosterStage: 3
2017-01-22_22:51:24 Mythz inside_temp: 22.2
2017-01-22_22:51:24 Mythz inside_temp: 22.2
2017-01-22_22:54:58 Mythz sLast10errors: number_of_faults: 0 fault0CODE: n.a. fault0TIME: 00:00 fault0DATE: 00.00 fault1CODE: n.a. fault1TIME: 00:00 fault1DATE: 00.00 fault2CODE: n.a. fault2TIME: 00:00 fault2DATE: 00.00 fault3CODE: n.a. fault3TIME: 00:00 fault3DATE: 00.00
2017-01-22_22:55:29 Mythz sGlobal: outsideTemp: -9.5 flowTemp: 37.5 returnTemp: 28.7 hotGasTemp: 93.4 dhwTemp: 43.5 flowTempHC2: -60 evaporatorTemp: -16 condenserTemp: 34.5 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 1 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 1 outputVentilatorPower: 21 inputVentilatorPower: 17 mainVentilatorPower: 70 outputVentilatorSpeed: 13 inputVentilatorSpeed: 23 mainVentilatorSpeed: 19 outside_tempFiltered: -8.8 relHumidity: 20.1 dewPoint: 0 P_Nd: 2.7 P_Hd: 13.52 actualPower_Qc: 2.985 actualPower_Pel: 1.027 collectorTemp: -60 insideTemp: 23.1
2017-01-22_22:55:29 Mythz Rel_humidity: 31.6
2017-01-22_22:55:29 Mythz flow_temp: 37.5
2017-01-22_22:55:29 Mythz return_temp: 28.7
2017-01-22_22:55:29 Mythz outside_temp: -9.5
2017-01-22_22:55:29 Mythz dhw_temp: 43.5
2017-01-22_22:55:29 Mythz Rel_humidity: 31.6
2017-01-22_22:55:29 Mythz flow_temp: 37.5
2017-01-22_22:55:29 Mythz return_temp: 28.7
2017-01-22_22:55:29 Mythz outside_temp: -9.5
2017-01-22_22:55:29 Mythz dhw_temp: 43.5
Titel: Antw:DOIF Syntax
Beitrag von: Damian am 23 Januar 2017, 07:11:32
Also wenn, dann hat das nur mittelbar etwas mit den DOIF zu tun. Womöglich ein Userreading, welches irgendwo gesetzt ist und Events produziert. Events, die die DOIFs produzieren, können ja nur von "setreading Mythz fanstage" kommen und die müssten auch im Log vorkommen. Evtl. kannst du mit DOIFTools genauere Analysen vornehmen.
Titel: Antw:DOIF Syntax
Beitrag von: willybauss am 29 Januar 2017, 15:39:06
Ich bin inzwischen so weit, dass ich DOIF als Verursacher ausschließen kann. Ich bekomme doppelte Events aus den userReadings des Mythz Devices. Es ist mir allerdings rätselhaft, warum diese sich in unterschiedlichen Schreibweisen des DOIF Codes dann mal auswirken und mal nicht.

Ich habe jetzt mal den THZ Modulautor kontaktiert.
Titel: Antw:DOIF Syntax
Beitrag von: automatisierer am 29 Januar 2017, 18:35:53
nur zur Info:
doppelte Events bei UserReadings bekomme ich auch beim Sysmon.