FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: tomspatz am 20 August 2016, 11:46:11

Titel: Frage zur Syntax
Beitrag von: tomspatz am 20 August 2016, 11:46:11
Habe folgendes DOIF:
define LueftungBuero DOIF ([FensterBuero] eq "offen" and [Heizungssteuerung] ne "aus" and [TemperaturFuehlerSchlafzimmerAussen:temperature] < 17.0) (set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00)
attr LueftungBuero group Fenster Lüften Steuerung
attr LueftungBuero wait 60


Das ist noch nicht wirklich getestet bzw. im Einsatz, aber m.E. habe ich einen Fehler beim Reading der "temperature"
Ein list ergibt:
Internals:
   DEF        ([FensterBuero] eq "offen" and [Heizungssteuerung] ne "aus" and [TemperaturFuehlerSchlafzimmerAussen:temperature] < 17.0) (set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00)
   NAME       LueftungBuero
   NR         322
   NTFY_ORDER 50-LueftungBuero
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-08-20 11:41:11   Device          FensterBuero
     2016-08-20 11:26:43   cmd             2
     2016-08-20 11:26:43   cmd_event       FensterBuero
     2016-08-20 11:26:43   cmd_nr          2
     2016-08-20 11:41:11   e_FensterBuero_STATE geschlossen
     2016-08-20 11:40:12   e_TemperaturFuehlerSchlafzimmerAussen_temperature 19.68 C
     2016-08-20 11:26:43   state           cmd_2
     2016-08-20 11:35:10   wait_timer      no timer
   Condition:
     0          InternalDoIf($hash,'FensterBuero','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "offen" and InternalDoIf($hash,'Heizungssteuerung','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "aus" and ReadingValDoIf($hash,'TemperaturFuehlerSchlafzimmerAussen','temperature','','',AttrVal($hash->{NAME},'notexist',undef)) < 17.0
   Devices:
     0           FensterBuero Heizungssteuerung TemperaturFuehlerSchlafzimmerAussen
     all         FensterBuero Heizungssteuerung TemperaturFuehlerSchlafzimmerAussen
   Do:
     0:
       0          set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00
     1:
   Helper:
     event      basicSet: 0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   FensterBuero
     timerevent basicSet: 0
     triggerDev FensterBuero
     timerevents:
       basicSet: 0
     timereventsState:
       basicSet: 0
     triggerEvents:
       basicSet: 0
     triggerEventsState:
       basicSet: 0
   Internals:
     0           FensterBuero:STATE Heizungssteuerung:STATE
     all         FensterBuero:STATE Heizungssteuerung:STATE
   Itimer:
   Readings:
     0           TemperaturFuehlerSchlafzimmerAussen:temperature
     all         TemperaturFuehlerSchlafzimmerAussen:temperature
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   group      Fenster Lüften Steuerung
   wait       60

Titel: Antw:Frage zur Syntax
Beitrag von: Brockmann am 24 August 2016, 14:39:04
Was genau ist die Frage/das Problem?
Mir fällt nur auf, dass Dein Temperatursensor "19.68 C" liefert, also mit Maßeinheit, was für einen numerischen Vergleich suboptimal ist.
Mit
[TemperaturFuehlerSchlafzimmerAussen:temperature:d] < 17.0
würdest Du nur die Dezimalzahl rausfiltern.