Hauptmenü

solved: DOIF -WARNUNG

Begonnen von Spartacus, 18 Dezember 2019, 12:58:22

Vorheriges Thema - Nächstes Thema

Spartacus

Hallo,
ich verzweifele gerade an diesem DOIF, was schon einige Jahre auf dem Buckel hat, mir aber bisher noch nicht aufgefallen war!
Ich verstehe die Fehlermeldung nicht. Sowohl Feuchte als auf Taupunkt sind bei beiden Sensoren nummerische Werte, oder was genau heißt diese Warnung?
Fskt ist, das DOIF arbeitet nicht.

defmod di.01.GH.ss.SA.Ventilator DOIF ([GH.in.1W.DS2438:Feuchte:d2] > 70 and ([GH.in.1W.DS2438:Taupunkt:d2]-1) > [GH.au.WS.DS2450:Taupunkt:d2] )\
  (set GH.ss.SA.Ventilator on)\
DOELSEIF ([GH.in.1W.DS2438:Feuchte:d2] <= 70 or ([GH.in.1W.DS2438:Taupunkt:d2]) <= [GH.au.WS.DS2450:Taupunkt:d2])\
(set GH.ss.SA.Ventilator off)
attr di.01.GH.ss.SA.Ventilator alias autom. Belüftung
attr di.01.GH.ss.SA.Ventilator cmdState on|off
attr di.01.GH.ss.SA.Ventilator devStateIcon .*on:general_an@lightgreen .*off:general_aus@red
attr di.01.GH.ss.SA.Ventilator group Scripte
attr di.01.GH.ss.SA.Ventilator icon vent_ventilation_level_automatic
attr di.01.GH.ss.SA.Ventilator room 05-Gartenhaus

setstate di.01.GH.ss.SA.Ventilator on
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:50:10 Device GH.in.1W.DS2438
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:49 cmd 1
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:49 cmd_event di.01.GH.ss.SA.Ventilator
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:49 cmd_nr 1
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:50:10 e_GH.in.1W.DS2438_Feuchte 90.33
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:50:10 e_GH.in.1W.DS2438_Taupunkt 7.3
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:14 mode enabled
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:49 state on
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:49:48 wait_timer no timer
setstate di.01.GH.ss.SA.Ventilator 2019-12-18 12:53:06 warning condition c01: Argument "" isn't numeric in numeric gt (>)\


Danke und Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

Hi,

ein Argument ist zum Zeitpunkt der Abfrage leer -> ""

Idee: weil Taupunkt berechnet wird und just in dem Moment erstmal gelöscht wurde bevor er neu schreibt? Eventuell mit kurzem wait arbeiten ...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spartacus

Hi Otto,
danke für die schnelle Antwort. Aber die Werte sind nicht leer!
defmod GH.in.1W.DS2438 OWMULTI DS2438 09DB84000003
attr GH.in.1W.DS2438 DbLogInclude temperature,Feuchte,Taupunkt,absFeuchte
attr GH.in.1W.DS2438 IODev 1Wire
attr GH.in.1W.DS2438 VFunction (161.29 * V / VDD - 25.8065)/(1.0546 - 0.00216 * T)
attr GH.in.1W.DS2438 VName Feuchte
attr GH.in.1W.DS2438 VUnit %
attr GH.in.1W.DS2438 alias DS2438
attr GH.in.1W.DS2438 comment Sensor: SHT35
attr GH.in.1W.DS2438 event-min-interval Feuchte:600,Temperatur:600,Taupunkt:600,absFeuchte:600
attr GH.in.1W.DS2438 group Sensoren
attr GH.in.1W.DS2438 icon temperature_humidity
attr GH.in.1W.DS2438 model DS2438
attr GH.in.1W.DS2438 room 98-1-Wire
attr GH.in.1W.DS2438 stateFormat {sprintf("T: %.2f°C, H: %.2f %%",ReadingsVal("$name","temperature",0),ReadingsVal("$name","Feuchte",0) )}

setstate GH.in.1W.DS2438 T: 8.80°C, H: 88.46 %
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 Feuchte 88.46
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 Taupunkt 7.0
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 VDD 5.00
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 absFeuchte 7.7
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 state Feuchte: 88.46 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 temperature 8.8
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 time 0
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 vsense 0
setstate GH.in.1W.DS2438 2019-12-18 13:40:47 vsense.t 0


Auch der andere Sensor hat Werte!
GRuß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Frank_Huber

poste doch bitte mal ein LIST anstatt der RAW DEF.....

Spartacus

Hi,
anbei die Lists und vielen Dank für den Support:
Christian.

DOIF:
Internals:
   CFGFN      Config/05-Gartenhaus.cfg
   DEF        ([GH.in.1W.DS2438:Feuchte:d2] > 70 and ([GH.in.1W.DS2438:Taupunkt:d2]-1) > [GH.au.WS.DS2450:Taupunkt:d2] )
  (set GH.ss.SA.Ventilator on)
DOELSEIF ([GH.in.1W.DS2438:Feuchte:d2] <= 70 or ([GH.in.1W.DS2438:Taupunkt:d2]) <= [GH.au.WS.DS2450:Taupunkt:d2])
(set GH.ss.SA.Ventilator off)
   DOIFDEV    ^global$|^GH.au.WS.DS2450$|^GH.in.1W.DS2438$
   FUUID      5c6003fa-f33f-48dd-8a13-278669cc49452ca9
   MODEL      FHEM
   NAME       di.01.GH.ss.SA.Ventilator
   NR         466
   NTFY_ORDER 50-di.01.GH.ss.SA.Ventilator
   STATE      on
   TYPE       DOIF
   VERSION    20744 2019-12-14 10:26:26
   READINGS:
     2019-12-18 14:06:51   Device          GH.in.1W.DS2438
     2019-12-18 13:10:10   cmd             1
     2019-12-18 13:10:10   cmd_event       GH.in.1W.DS2438
     2019-12-18 13:10:10   cmd_nr          1
     2019-12-18 14:06:51   e_GH.in.1W.DS2438_Feuchte 87.53
     2019-12-18 14:06:51   e_GH.in.1W.DS2438_Taupunkt 6.8
     2019-12-18 12:49:14   mode            enabled
     2019-12-18 13:10:10   state           on
     2019-12-18 14:06:51   warning         condition c01: Argument "" isn't numeric in numeric gt (>)

   Regex:
     accu:
     cond:
       GH.au.WS.DS2450:
         0:
           Taupunkt   ^GH.au.WS.DS2450$:^Taupunkt:
         1:
           Taupunkt   ^GH.au.WS.DS2450$:^Taupunkt:
       GH.in.1W.DS2438:
         0:
           Feuchte    ^GH.in.1W.DS2438$:^Feuchte:
           Taupunkt   ^GH.in.1W.DS2438$:^Taupunkt:
         1:
           Feuchte    ^GH.in.1W.DS2438$:^Feuchte:
           Taupunkt   ^GH.in.1W.DS2438$:^Taupunkt:
   attr:
     cmdState:
       0:
         on
       1:
         off
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'GH.in.1W.DS2438','Feuchte','','d2') > 70 and (::ReadingValDoIf($hash,'GH.in.1W.DS2438','Taupunkt','','d2')-1) > ::ReadingValDoIf($hash,'GH.au.WS.DS2450','Taupunkt','','d2')
     1          ::ReadingValDoIf($hash,'GH.in.1W.DS2438','Feuchte','','d2') <= 70 or (::ReadingValDoIf($hash,'GH.in.1W.DS2438','Taupunkt','','d2')) <= ::ReadingValDoIf($hash,'GH.au.WS.DS2450','Taupunkt','','d2')
   do:
     0:
       0          set GH.ss.SA.Ventilator on
     1:
       0          set GH.ss.SA.Ventilator off
     2:
   helper:
     DEVFILTER  ^global$|^GH.au.WS.DS2450$|^GH.in.1W.DS2438$
     NOTIFYDEV  global|GH.au.WS.DS2450|GH.in.1W.DS2438
     event      Feuchte: 87.53,vsense: 0,vsense.t: 0,time: 0,VDD: 5.00,temperature: 8.8,Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs),absFeuchte: 7.6,Taupunkt: 6.8
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   GH.in.1W.DS2438
     timerevent Feuchte: 87.53,vsense: 0,vsense.t: 0,time: 0,VDD: 5.00,temperature: 8.8,Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs),absFeuchte: 7.6,Taupunkt: 6.8
     triggerDev GH.in.1W.DS2438
     timerevents:
       Feuchte: 87.53
       vsense: 0
       vsense.t: 0
       time: 0
       VDD: 5.00
       temperature: 8.8
       Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
       absFeuchte: 7.6
       Taupunkt: 6.8
     timereventsState:
       Feuchte: 87.53
       vsense: 0
       vsense.t: 0
       time: 0
       VDD: 5.00
       temperature: 8.8
       state: Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
       absFeuchte: 7.6
       Taupunkt: 6.8
     triggerEvents:
       Feuchte: 87.53
       vsense: 0
       vsense.t: 0
       time: 0
       VDD: 5.00
       temperature: 8.8
       Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
       absFeuchte: 7.6
       Taupunkt: 6.8
     triggerEventsState:
       Feuchte: 87.53
       vsense: 0
       vsense.t: 0
       time: 0
       VDD: 5.00
       temperature: 8.8
       state: Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
       absFeuchte: 7.6
       Taupunkt: 6.8
   internals:
   perlblock:
   readings:
     all         GH.in.1W.DS2438:Feuchte GH.in.1W.DS2438:Taupunkt GH.au.WS.DS2450:Taupunkt
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      autom. Belüftung
   cmdState   on|off
   devStateIcon .*on:general_an@lightgreen .*off:general_aus@red
   group      Scripte
   icon       vent_ventilation_level_automatic
   room       05-Gartenhaus


DS2438:
Internals:
   CFGFN      Config/98-1-Wire.cfg
   DEF        DS2438 09DB84000003
   ERRCOUNT   0
   ERRSTATE   0
   FUUID      5df503ed-f33f-788a-2661-f28484a8c00af383
   INTERVAL   300
   IODev      1Wire
   NAME       GH.in.1W.DS2438
   NOTIFYDEV  global
   NR         789
   NTFY_ORDER 50-GH.in.1W.DS2438
   OW_FAMILY  26
   OW_ID      09DB84000003
   PRESENT    1
   ROM_ID     26.09DB84000003.EC
   STATE      T: 8.80°C, H: 87.53 %
   TYPE       OWMULTI
   offset     0
   Helper:
     DBLOG:
       Feuchte:
         logdb:
           TIME       1576674411.61059
           VALUE      87.53
       Taupunkt:
         logdb:
           TIME       1576674411.61059
           VALUE      6.8
       absFeuchte:
         logdb:
           TIME       1576674411.61059
           VALUE      7.6
       temperature:
         logdb:
           TIME       1576674411.61059
           VALUE      8.8
   READINGS:
     2019-12-18 14:06:51   Feuchte         87.53
     2019-12-18 14:06:51   Taupunkt        6.8
     2019-12-18 14:06:51   VDD             5.00
     2019-12-18 14:06:51   absFeuchte      7.6
     2019-12-18 14:06:51   state           Feuchte: 87.53 % (T:   8.8 °C vs:  0.00 V vs.t:  0.00 Vs)
     2019-12-18 14:06:51   temperature     8.8
     2019-12-18 14:06:51   time            0
     2019-12-18 14:06:51   vsense          0
     2019-12-18 14:06:51   vsense.t        0
   owg_val:
     8.828125
     5
     3.61
     0
     0
     0
     0
   tempf:
     factor     1
     offset     0
Attributes:
   DbLogInclude temperature,Feuchte,Taupunkt,absFeuchte
   IODev      1Wire
   VFunction  (161.29 * V / VDD - 25.8065)/(1.0546 - 0.00216 * T)
   VName      Feuchte
   VUnit      %
   alias      DS2438
   comment    Sensor: SHT35
   event-min-interval Feuchte:600,Temperatur:600,Taupunkt:600,absFeuchte:600
   group      Sensoren
   icon       temperature_humidity
   model      DS2438
   room       98-1-Wire
   stateFormat {sprintf("T: %.2f°C, H: %.2f %%",ReadingsVal("$name","temperature",0),ReadingsVal("$name","Feuchte",0) )}


DS2450
Internals:
   ALARM      0
   ASYNC      0
   CFGFN      Config/98-1-Wire.cfg
   DEF        DS2450 F9DA84000003
   ERRCOUNT   0
   ERRSTATE   0
   FUUID      5df503ed-f33f-788a-24b1-9b41fe1b11c77ad0
   INTERVAL   300
   IODev      1Wire
   NAME       GH.au.1W.DS2450
   NOTIFYDEV  global
   NR         783
   NTFY_ORDER 50-GH.au.1W.DS2450
   OW_FAMILY  20
   OW_ID      F9DA84000003
   PRESENT    1
   ROM_ID     20.F9DA84000003.DD
   STATE      T: 9.98°C, H: 77.82 %
   TYPE       OWAD
   Helper:
     DBLOG:
       Feuchte:
         logdb:
           TIME       1576674410.40717
           VALUE      77.82
       Helligkeit:
         logdb:
           TIME       1576674410.40717
           VALUE      197.63
       Luftdruck:
         logdb:
           TIME       1576674410.40717
           VALUE      1003
       Taupunkt:
         logdb:
           TIME       1576674410.40717
           VALUE      6.3
       Temperatur:
         logdb:
           TIME       1576674410.40717
           VALUE      9.98
       absFeuchte:
         logdb:
           TIME       1576674410.40717
           VALUE      7.3
   READINGS:
     2019-12-18 14:06:50   A               2.638
     2019-12-18 14:06:50   B               0.608
     2019-12-18 14:06:50   C               2.973
     2019-12-18 14:06:50   D               2.508
     2019-12-18 14:06:50   Feuchte         77.82
     2019-12-18 14:06:50   Helligkeit      197.63
     2019-12-18 14:06:50   Luftdruck       1003
     2019-12-18 14:06:50   Taupunkt        6.3
     2019-12-18 14:06:50   Temperatur      9.98
     2019-12-18 14:06:50   absFeuchte      7.3
     2019-12-18 14:06:50   state           A: 2.638 V B: 0.608 V C: 2.973 V D: 2.508 V
   owg_shigh:
     0
     0
     0
     0
   owg_slow:
     0
     0
     0
     0
   owg_val:
     2.638359375
     0.6075
     2.972734375
     2.508203125
   owg_vhigh:
     5.1
     5.1
     5.1
     5.1
   owg_vlow:
     0
     0
     0
     0
   tempf:
     A:
       function   VA
     B:
       function   VB
     C:
       function   VC
     D:
       function   VD
Attributes:
   AHigh      5.1
   ALow       0
   BHigh      5.1
   BLow       0
   CHigh      5.1
   CLow       0
   DHigh      5.1
   DLow       0
   DbLogInclude Temperatur,Feuchte,absFeuchte,Taupunkt,Helligkeit,Luftdruck
   IODev      1Wire
   alias      DS2450
   comment    Sensoren:Helligkeit: MAX44009 Feuchte/Temperatur: SHT 21 Luftdruck: BMP280
   event-min-interval Feuchte:600,Temperatur:600,Taupunkt:600,absFeuchte:600, Luftdruck:600, Helligkeit:600
   group      Sensoren
   icon       temperature_humidity
   model      DS2450
   room       98-1-Wire
   stateFormat {sprintf("T: %.2f°C, H: %.2f %%",ReadingsVal("$name","Temperatur",0),ReadingsVal("$name","Feuchte",0) )}
   userReadings Temperatur {sprintf("%0.2f",(ReadingsNum("$name","A",0)-2.56)*128)},
Feuchte {sprintf("%0.2f",ReadingsNum("$name","B",0)*128)},
Helligkeit {sprintf("%0.2f",exp((ReadingsNum("$name","C",0)-2.56)*12.8))} ,
Luftdruck {sprintf("%.d",ReadingsNum("$name","D",0)*400)}
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Frank_Huber

GH.au.1W.DS2450 ist NICHT GH.au.WS.DS2450

Spartacus

Hallo Frank,
super! Danke für Deine "Lesebrille"! Das habe ich komplett überlesen!

Jetzt ist der Fehler auch weg!

Spartacus!
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

Zitat von: Spartacus am 18 Dezember 2019, 13:46:24
danke für die schnelle Antwort. Aber die Werte sind nicht leer!
Meine Idee stimmte zwar nicht, aber Du hast sie auch nicht verstanden :)
Es geht nicht um den statischen Wert wenn Du ins Device schaust. Es ging mir darum, das z.B. userReadings aus anderen Readings/Werten berechnet werden und u.U. zum Zeitpunkt der Abfrage gerade nicht zur Verfügung stehen oder noch nicht den neuen Wert haben. So was kann vorkommen. ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spartacus

Hi Otto,
hm! Dann muss ich doch noch mal nachhaken.....

So wie ich Dich jetzt verstehe:
Zur Zeit meiner Abfrage, kann es vorkommen, dass die Werte gerade in der Berechnung sind und daher das Reading "leer" ist. Ist zwar unwahrscheinlich kann aber vorkommen. Halen dran!

Was m.E. aber nicht sein kann, dass dieser Zustand andauert. Wenn ich das DOIF mit Checkall neu trigger, dann sollte der Fehler doch spätestens beim 2,3 Mal weg sein, oder?
Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

Hallo Christian,

bei checkall wird es in deinem Fall gehen.
Nehmen wir folgendes an:
Du setzt ein Reading A
Du hast im gleichen Device vielleicht ein UserReading B=A*0.9
Du hast ein DOIF, notify oder was auch immer,
   das triggert auf eine Veränderung von A
   und fragt im Weiteren B ab
Dann könnte es sein B hat zu dieser Zeit den Wert noch nicht.

Vielleicht ist der Fall konstruiert, ich weiß aber das es ähnliche Fälle hier schon gab.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spartacus

Hi Otto,
dann passt das ja! Vielen Dank für Deinen Support.
Schönen Abend noch,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R