Wochentag aus Reading auslesen funktioniert nicht

Begonnen von ronny_b, 08 Dezember 2018, 14:42:10

Vorheriges Thema - Nächstes Thema

ronny_b

Hallo,

ich versuche gerade eine Timersteuerung für meinen Xiaomi Roborock zu basteln. Wochentag und Uhrzeit sollen aus einem Reading (t_day und t_time) ausgelesen werden. Dies klappt nur für die Uhrzeit, nicht für den Wochentag. Wo liegt mein Fehler?

fhem> list di_timer1_Sauger
Internals:
   DEF        ([$SELF:P_einaus,"ein"] eq "ein"
and
[?Sauger:newtimer_start] eq "0"
and
[[$SELF:t_time]|[$SELF:t_day]])
(setreading Sauger newtimer_start 1, set Fritzbox wlan on)
(set Sauger cleaning_mode [?$SELF:t_cleaning_mode],
set Sauger zone [?$SELF:t_zone])
DOELSEIF ([?Sauger:newtimer_start] eq "1"
and
[Sauger] eq "Docked")
(set Fritzbox wlan [Fritzbox:wlan_auto_state],setreading Sauger newtimer_start 0)
   MODEL      FHEM
   NAME       di_timer1_Sauger
   NR         402
   NTFY_ORDER 50-di_timer1_Sauger
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-12-08 14:33:56   Device          Sauger
     2018-12-08 14:29:39   P_einaus        ein
     2018-12-08 14:29:03   cmd             0
     2018-12-08 14:33:56   e_Sauger_STATE  Docked
     2018-12-08 14:29:39   e_di_timer1_Sauger_P_einaus ein
     2018-12-08 14:29:03   mode            enabled
     2018-12-08 14:29:03   state           initialized
     2018-12-07 12:58:59   t_cleaning_mode mop
     2018-12-08 14:27:18   t_day           Fr
     2018-12-08 12:23:42   t_time          09:00
     2018-12-05 19:30:17   t_zone          Mop_KuFlBuWz
     2018-12-08 14:29:03   timer_01_c01    09.12.2018 09:00:00|[di_timer1_Sauger:t_day]
   Regex:
   attr:
     wait:
       0:
         0
         60
       1:
         0
   condition:
     0          ::ReadingValDoIf($hash,'di_timer1_Sauger','P_einaus','"ein"') eq "ein" and ::ReadingValDoIf($hash,'Sauger','newtimer_start') eq "0" and ::DOIF_time_once($hash,0,$wday,"[di_timer1_Sauger:t_day]")
     1          ::ReadingValDoIf($hash,'Sauger','newtimer_start') eq "1" and ::InternalDoIf($hash,'Sauger','STATE') eq "Docked"
   days:
     0          [di_timer1_Sauger:t_day]
   devices:
     0           di_timer1_Sauger
     1           Sauger
     all         di_timer1_Sauger Sauger
   do:
     0:
       0          setreading Sauger newtimer_start 1, set Fritzbox wlan on
       1          set Sauger cleaning_mode [?di_timer1_Sauger:t_cleaning_mode], set Sauger zone [?di_timer1_Sauger:t_zone]
     1:
       0          set Fritzbox wlan [Fritzbox:wlan_auto_state],setreading Sauger newtimer_start 0
     2:
   helper:
     event      Docked,batteryPercent: 100,batteryState: ok,last_clean_time: 0.00,last_clean_area: 13.74,error_code: None,map_present: yes,in_cleaning: no,fan_power: 105,dnd: off,cleaning_mode: mop,last_clean_time_text: 0h m,total_clean_time_text: 15h 42m
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev Sauger
     triggerEvents:
       Docked
       batteryPercent: 100
       batteryState: ok
       last_clean_time: 0.00
       last_clean_area: 13.74
       error_code: None
       map_present: yes
       in_cleaning: no
       fan_power: 105
       dnd: off
       cleaning_mode: mop
       last_clean_time_text: 0h m
       total_clean_time_text: 15h 42m
     triggerEventsState:
       state: Docked
       batteryPercent: 100
       batteryState: ok
       last_clean_time: 0.00
       last_clean_area: 13.74
       error_code: None
       map_present: yes
       in_cleaning: no
       fan_power: 105
       dnd: off
       cleaning_mode: mop
       last_clean_time_text: 0h m
       total_clean_time_text: 15h 42m
   internals:
     1           Sauger:STATE
     all         Sauger:STATE
   intervalfunc:
   itimer:
     all         di_timer1_Sauger
   localtime:
     0          1544342400
   readings:
     0           di_timer1_Sauger:P_einaus
     all         di_timer1_Sauger:P_einaus
   realtime:
     0          09:00:00
   time:
     0          [di_timer1_Sauger:t_time]
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   trigger:
   triggertime:
     1544342400:
       localtime  1544342400
       hash:
   uiState:
   uiTable:
Attributes:
   group      Schalter
   icon       icoUhr
   readingList P_einaus
   room       Wohnung,timer
   verbose    4
   wait       0,60:0
   webCmd     P_einaus
   widgetOverride P_einaus:uzsuSelectRadio,ein,aus


Ronny

Damian

Das ist schon alles richtig so. Der Wochentag wird erst zum Tiggerzeitpunkt ausgewertet und nicht intern gespeichert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ronny_b

Ok, danke. Ich hatte mich nur über die Anzeige gewundert:
timer_01_c01
09.12.2018 09:00:00|[di_timer1_Sauger:t_date]


Ronny