DOIF und mehrere and-Bedingungen und Dummy-Auswertung

Begonnen von heiko.ne, 31 Januar 2018, 19:07:52

Vorheriges Thema - Nächstes Thema

heiko.ne

Hallo zusammen,

ich habe eine Frage zu meinem DOIF, bei dem mehrere und-Bedingungen berücksichtigt werden sollen.
Ein Rolladen soll geschlossen werden (siehe DOELSEIF in untem gezeigtem DOIF), wenn eine über TWILIGHT Uhrzeit erreicht ist UND der Dummy "Urlaub" den Status "nein" hat UND der Temperatursensor weniger als 5°C ausgibt.

Das ganze funktionierte bisher ohne die Bedingung "and [Urlaub:"nein"]". Aber damit eben nicht mehr.

Anbei die umfängliche Definition des DOIF und den DUMMY:

Internals:
   DEF        ([({twilight("Tageslicht","sr_indoor","5:45","8:00")}+80)]) (set Kueche_Rolladen off)
DOELSEIF ([({twilight("Tageslicht","ss_indoor","19:00","22:00")}+50)] and [Urlaub:"nein"] and [TH_Sensor_1:temperature] < 5) (set Kueche_Rolladen on)
   NAME       DOIF_Kueche_Rolladen
   NR         208
   NTFY_ORDER 50-DOIF_Kueche_Rolladen
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-01-31 18:39:30   Device          TH_Sensor_1
     2018-01-31 10:01:40   cmd             0
     2018-01-31 18:39:30   e_TH_Sensor_1_events battery: ok,humidity: 90,T: 5.2 H: 90,temperature: 5.2,statTemperatureDayMin: 3.1,statTemperatureDayAvg: 7.1,statTemperatureDayMax: 9.2,statTemperatureMonthMin: 0.3,statTemperatureMonthAvg: 5.1,statTemperatureMonthMax: 13.7,statTemperatureYearMin: 0.3,statTemperatureYearAvg: 5.1,statTemperatureYearMax: 13.7,dewpoint: 3.7
     2018-01-31 18:39:30   e_TH_Sensor_1_temperature 5.2
     2018-01-31 10:01:40   mode            enabled
     2018-01-31 10:01:40   state           initialized
     2018-01-31 10:01:40   timer_01_c01    01.02.2018 07:57:15
     2018-01-31 10:01:40   timer_02_c02    31.01.2018 19:00:50
   Regex:
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          DOIF_time_once($hash,1,$wday) and EventDoIf('Urlaub',$hash,'nein',1) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 5
   days:
   devices:
     1           Urlaub TH_Sensor_1
     all         Urlaub TH_Sensor_1
   do:
     0:
       0          set Kueche_Rolladen off
     1:
       0          set Kueche_Rolladen on
     2:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      battery: ok,humidity: 90,T: 5.2 H: 90,temperature: 5.2,statTemperatureDayMin: 3.1,statTemperatureDayAvg: 7.1,statTemperatureDayMax: 9.2,statTemperatureMonthMin: 0.3,statTemperatureMonthAvg: 5.1,statTemperatureMonthMax: 13.7,statTemperatureYearMin: 0.3,statTemperatureYearAvg: 5.1,statTemperatureYearMax: 13.7,dewpoint: 3.7
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev TH_Sensor_1
     triggerEvents:
       battery: ok
       humidity: 90
       T: 5.2 H: 90
       temperature: 5.2
       statTemperatureDayMin: 3.1
       statTemperatureDayAvg: 7.1
       statTemperatureDayMax: 9.2
       statTemperatureMonthMin: 0.3
       statTemperatureMonthAvg: 5.1
       statTemperatureMonthMax: 13.7
       statTemperatureYearMin: 0.3
       statTemperatureYearAvg: 5.1
       statTemperatureYearMax: 13.7
       dewpoint: 3.7
     triggerEventsState:
       battery: ok
       humidity: 90
       state: T: 5.2 H: 90
       temperature: 5.2
       statTemperatureDayMin: 3.1
       statTemperatureDayAvg: 7.1
       statTemperatureDayMax: 9.2
       statTemperatureMonthMin: 0.3
       statTemperatureMonthAvg: 5.1
       statTemperatureMonthMax: 13.7
       statTemperatureYearMin: 0.3
       statTemperatureYearAvg: 5.1
       statTemperatureYearMax: 13.7
       dewpoint: 3.7
   internals:
   itimer:
   localtime:
     0          1517468235
     1          1517421650
   readings:
     1           TH_Sensor_1:temperature
     all         TH_Sensor_1:temperature
   realtime:
     0          07:57:15
     1          19:00:50
   time:
     0          ({twilight("Tageslicht","sr_indoor","5:45","8:00")}+80)
     1          ({twilight("Tageslicht","ss_indoor","19:00","22:00")}+50)
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   trigger:
     all         Urlaub
   triggertime:
     1517421650:
       localtime  1517421650
       hash:
     1517468235:
       localtime  1517468235
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Rolladen
   room       TEST
   verbose    5


Internals:
   NAME       Urlaub
   NR         213
   STATE      nein
   TYPE       dummy
   READINGS:
     2018-01-25 06:15:05   state           nein
Attributes:
   devStateIcon ja:control_building_empty nein:status_automatic nein:status_automatic nein:status_automatic
   group      Urlaubsschaltung
   room       TEST
   webCmd     ja:nein


Wer hat eine Idee und kann mir mit einem gezielten Hinweis helfen?

Gruß
Heiko

Amenophis86

Versuch mal aus [Urlaub:"nein"] folgendes zu machen: [Urlaub] eq "nein"
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...

KernSani

Du versuchst das event ,,nein" abzufangen, du möchtest aber state eq ,,nein"


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Amenophis86

Und eins drüber die Erklärung, welche ich nicht dazu geschrieben habe, weil vergessen. Danke Oli.
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...

heiko.ne

Danke für die schnellen Hinweise und Erklärungen!
Probiere ich gleich aus, aber sage schon mal Danke!

Gruß
Heiko

KernSani

Zitat von: Amenophis86 am 31 Januar 2018, 19:23:44
Und eins drüber die Erklärung, welche ich nicht dazu geschrieben habe, weil vergessen. Danke Oli.
Da waren wir wohl gleichzeitig am Werk ;-)


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...