Hauptmenü

DOIF Syntax

Begonnen von willybauss, 20 Januar 2017, 23:27:17

Vorheriges Thema - Nächstes Thema

willybauss

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)

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

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?
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Amenophis86

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.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

willybauss

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.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Amenophis86

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.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

willybauss

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.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Puschel74

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
Edith: Verschieben kannst du übrigens selbst.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

willybauss

ok, habs jetzt verschoben.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

willybauss

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.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

willybauss

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.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

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
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

willybauss

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.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS