Wird userreading im DOIF aktualisiert?

Begonnen von ToKa, 15 Mai 2017, 20:55:04

Vorheriges Thema - Nächstes Thema

ToKa

Hallo zusammen,

ich möchte meine Gartenbeleuchtung mit eine DOIF in Abhängigkeit vom Sonnenuntergang steuern. Dabei will ich nicht im DOIF noch einmal mit sunset arbeiten, sondern die im twilight Modul vorhandenen Readings nutzen.

Die Herausforderung liegt für mich darin, dass ich frühestens um 18:45 schalten will. Dazu habe ich mir ein userreading im DOIF gebaut. Jetzt bin ich aber unsicher, ob das Userreading bei einer Änderung von ss_civil im twilight Modul auch geändert wird?

Funktioniert das?

Beste Grüße
Torsten

Internals:
   DEF        ([[$SELF:startTime]])
## Wenn Sonnentuntergang zwischen 18:45 und 23:00 Uhr, dann Beleuchtung einschalten
(set GH.gt.SD.Gartenbeleuchtung on-till-overnight 00:15)
   NAME       di.01.GH.gt.SD.Gartenbeleuchtung
   NR         244
   NTFY_ORDER 50-di.01.GH.gt.SD.Gartenbeleuchtung
   STATE      Next: 15.05.2017 21:41:03
   TYPE       DOIF
   Readings:
     2017-05-15 20:44:35   cmd             2
     2017-05-15 20:44:35   cmd_event       set_cmd_2
     2017-05-15 20:44:35   cmd_nr          2
     2017-05-15 20:44:35   startTime       21:41:03
     2017-05-15 20:44:35   state           cmd_2
     2017-05-15 20:44:35   timer_01_c01    15.05.2017 21:41:03
   Condition:
     0          DOIF_time_once($hash,0,$wday)
   Days:
   Devices:
   Do:
     0:
       0          set GH.gt.SD.Gartenbeleuchtung on-till-overnight 00:15
     1:
   Helper:
     globalinit 1
     last_timer 1
     sleeptimer -1
   Itimer:
     all         di.01.GH.gt.SD.Gartenbeleuchtung
   Localtime:
     0          1494877263
   Realtime:
     0          21:41:03
   Regexp:
     All:
   State:
     State:
   Time:
     0          [di.01.GH.gt.SD.Gartenbeleuchtung:startTime]
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0
   Triggertime:
     1494877263:
       localtime  1494877263
       Hash:
Attributes:
   alias      Gartenbeleuchtung
   group      Zeitsteuerung Beleuchtung
   icon       socket_timer
   room       Garten,Zentrale Steuerung
   stateFormat Next: timer_01_c01
   userReadings startTime {strftime("%H:%M:%S",localtime(max(str2time(ReadingsVal("ZS.zs.UW.Astrodaten","ss_civil","18:45:00")),str2time("18:45:00"))))}
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Ellert

#1
Nein Userreadings werden nicht durch externe Events ausgelöst.

Das würde hiermit funktionieren https://forum.fhem.de/index.php/topic,71000.0.html

Warum benutzt Du nicht das Reading aus Twilight selbst?

([{max([ZS.zs.UW.Astrodaten:ss_civil], "18:45:00")}])

evtl auch "[ZS.zs.UW.Astrodaten:ss_civil]"


ggf. mit dem Attribut checkReadingEvent

ToKa

#2
Hi,

das mit den myReadings klingt gut. Bei Deinem ersten Vorschlag bin ich mir nicht sicher, ob max mit den Werten so funktioniert und außerdem hatte ich gelesen, dass perl Ausdrücke als Zeitangaben nicht triggern. Werde aber beides mal ausprobieren.

Danke und beste Grüße
Torsten

Edit: Mit ([{max("[ZS.zs.UW.Astrodaten:ss_civil]","18:45:00")}]) als Bedingung funktioniert auf jeden Fall schon mal die max Funktion und auch die Aktualisierung des DOIF bei geändertem ss_civil. Ein Timer wird auch eingerichtet also gehe ich mal davon aus, dass meine Gartenbeleuchtung heute Abend bei Sonnenuntergang eingeschaltet wird.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ToKa

Leider schaltet das DOIF nur beim ersten Mal. Der timer wird zwar aktualisiert, aber gestern Abend (zweiter Abend) wurde das DOIF nicht getriggert.

Liegt es jetzt daran, dass ein perl Ausdruck als Zeitangabe tatsächlich nicht triggert oder muss do always gesetzt sein?

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Ellert


ToKa

RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight