Repeatsame Werte aus einem Dummy mit Slider

Begonnen von sash.sc, 15 Dezember 2017, 17:00:23

Vorheriges Thema - Nächstes Thema

sash.sc

Hallo zusammen.

Habe für einen Lichtwechsel ein DOIF schrieben.

Dies soll über repeatsame x mal wieerholt werden. Diesen Wert habe ich in einem Dummy mit Slider konfiguriert.
Wie ich es bis jetzt gemacht habe, funktioniert es nicht. Die Lampen werden um 3 Uhr morgens ausgeschaltet und nicht schon nach x wiederholungen.

DOIF


Internals:
   DEF        ([lichtsens:Indikator:d] < [lichtanteil] and [?16:00-03:00]) (set LS scene 01) (set LS scene 02)
DOELSE (set LS scene Off)
   NAME       LW1
   NR         167
   NTFY_ORDER 50-LW1
   STATE      cmd_1_1
   TYPE       DOIF
   READINGS:
     2017-12-15 16:43:09   Device          lichtsens
     2017-12-15 16:27:55   cmd             1.1
     2017-12-15 16:27:55   cmd_count       1
     2017-12-15 16:27:55   cmd_event       lichtsens
     2017-12-15 16:27:55   cmd_nr          1
     2017-12-15 16:27:55   cmd_seqnr       1
     2017-12-11 18:07:34   e_lichtanteil_STATE 13
     2017-12-15 16:43:09   e_lichtsens_Indikator 1
     2017-08-02 15:47:49   mode            enable
     2017-12-15 16:27:55   state           cmd_1_1
     2017-12-15 03:00:00   timer_01_c01    15.12.2017 16:00:00
     2017-12-15 03:00:00   timer_02_c01    16.12.2017 03:00:00
     2017-12-15 16:27:55   wait_timer      15.12.2017 17:27:55 cmd_1_2 lichtsens
   Regex:
   condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','d') < InternalDoIf($hash,'lichtanteil','STATE') and DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   do:
     0:
       0          set LS scene 01
       1          set LS scene 02
     1:
       0          set LS scene Off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Indikator: 1
     globalinit 1
     last_timer 2
     sleepdevice lichtsens
     sleepsubtimer 1
     sleeptimer 0
     timerdev   lichtsens
     timerevent Indikator: 1
     triggerDev lichtsens
     timerevents:
       Indikator: 1
     timereventsState:
       Indikator: 1
     triggerEvents:
       Indikator: 1
     triggerEventsState:
       Indikator: 1
   internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1513350000
     1          1513389600
   readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   realtime:
     0          16:00:00
     1          03:00:00
   time:
     0          16:00:00
     1          03:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
   trigger:
   triggertime:
     1513389600:
       localtime  1513389600
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   loglevel   2
   repeatsame [repeats:state]
   room       10_Draussen
   wait       30,3600,3600


Dummy



Internals:
   NAME       repeats
   NR         337
   STATE      2
   TYPE       dummy
   READINGS:
     2017-06-21 23:21:38   state           2
Attributes:
   room       10_Draussen
   setList    state:slider,1,1,5
   webCmd     state


Jemand eine Idee, wie man den Wert aus dem Slider Dummy in das repeatsame Attribut hinein bekommt ?!?!?

Gruß und Danke
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

sash.sc

Keiner eine Idee?

Gruß Sascha

Gesendet von meinem...... was auch immer
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

CoolTux

Auf Perlebene und dann ReadingsNum versuchen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

sash.sc

Sprich den Wert aus dem Slider auslesen und dann ob das Attribut Schreiben bzw. Die ganze Auslese Routine als Attribut hinterlegen!?

Gruß Sascha

Gesendet von meinem...... was auch immer

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Damian

Zitat von: sash.sc am 17 Dezember 2017, 10:55:03
Sprich den Wert aus dem Slider auslesen und dann ob das Attribut Schreiben bzw. Die ganze Auslese Routine als Attribut hinterlegen!?

Gruß Sascha

Gesendet von meinem...... was auch immer

Wahrscheinlich brauchst du für dein Vorhaben repeatcmd und nicht repeatsame.

Reading-Angaben in eckigen Klammern bei diesen Attributen werden immer aktuell ausgelesen, da muss man nichts ins Attribut schreiben.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sash.sc

Habe jetzt das repeatsame gelöscht und entsprechend das DOIF geändert.



Internals:
   DEF        ([lichtsens:Indikator:d] < [lichtanteil] and [?16:00-03:00]) (set LS scene 01) (set LS scene 02)
DOELSE (set LS scene Off)
   NAME       LW1
   NR         167
   NTFY_ORDER 50-LW1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-12-17 11:04:38   Device          lichtsens
     2017-12-17 03:07:14   cmd             2
     2017-12-17 03:07:14   cmd_event       lichtsens
     2017-12-17 03:07:14   cmd_nr          2
     2017-12-11 18:07:34   e_lichtanteil_STATE 13
     2017-12-17 11:04:38   e_lichtsens_Indikator 85
     2017-08-02 15:47:49   mode            enable
     2017-12-17 03:07:14   state           cmd_2
     2017-12-17 03:00:00   timer_01_c01    17.12.2017 16:00:00
     2017-12-17 03:00:00   timer_02_c01    18.12.2017 03:00:00
     2017-12-17 02:52:36   wait_timer      no timer
   Regex:
   condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','d') < InternalDoIf($hash,'lichtanteil','STATE') and DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   do:
     0:
       0          set LS scene 01
       1          set LS scene 02
     1:
       0          set LS scene Off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Indikator: 85
     globalinit 1
     last_timer 2
     sleepdevice lichtsens
     sleepsubtimer -1
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 85
     triggerDev lichtsens
     timerevents:
       Indikator: 85
     timereventsState:
       Indikator: 85
     triggerEvents:
       Indikator: 85
     triggerEventsState:
       Indikator: 85
   internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1513522800
     1          1513562400
   readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   realtime:
     0          16:00:00
     1          03:00:00
   time:
     0          16:00:00
     1          03:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
   trigger:
   triggertime:
     1513522800:
       localtime  1513522800
       hash:
     1513562400:
       localtime  1513562400
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   loglevel   2
   repeatcmd  [repeats]
   room       10_Draussen
   wait       30,3600,3600



Der Dummy repeats hatr sich nicht geandert !

@Damian
So meintest Du das ??

Gruß un Danke

Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Damian

Also für repeatsame wird das genommen, was in repeats drin steht. Egal wie es da reingekommen ist (slider oder sonst was).

repeatsame begrenzt nur Wiederholung, die Wiederholung kommt aber nicht von alleine, das wird über repeatcmd definiert.

hier ist es beschrieben: https://fhem.de/commandref_DE.html#DOIF_repeatcmd
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

sash.sc

Habe es jetzt mal so eingesetzt, in den Attributen.


Internals:
   DEF        ([lichtsens:Indikator:d] < [lichtanteil] and [?16:00-01:00]) (set LS scene 01) (set LS scene 02)
DOELSE (set LS scene Off)
   NAME       LW1
   NR         167
   NTFY_ORDER 50-LW1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2017-12-17 12:30:30   Device          lichtsens
     2017-12-17 12:30:30   cmd             2
     2017-12-17 12:30:30   cmd_event       lichtsens
     2017-12-17 12:30:30   cmd_nr          2
     2017-12-17 12:30:30   e_lichtsens_Indikator 73
     2017-12-17 12:30:30   state           cmd_2
     2017-12-17 12:28:53   timer_01_c01    17.12.2017 16:00:00
     2017-12-17 12:28:53   timer_02_c01    18.12.2017 01:00:00
   Regex:
   condition:
     0          ReadingValDoIf($hash,'lichtsens','Indikator','','d') < InternalDoIf($hash,'lichtanteil','STATE') and DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
     0           lichtsens lichtanteil
     all         lichtsens lichtanteil
   do:
     0:
       0          set LS scene 01
       1          set LS scene 02
     1:
       0          set LS scene Off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      Indikator: 73
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   lichtsens
     timerevent Indikator: 73
     triggerDev lichtsens
     timerevents:
       Indikator: 73
     timereventsState:
       Indikator: 73
     triggerEvents:
       Indikator: 73
     triggerEventsState:
       Indikator: 73
   internals:
     0           lichtanteil:STATE
     all         lichtanteil:STATE
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1513522800
     1          1513555200
   readings:
     0           lichtsens:Indikator
     all         lichtsens:Indikator
   realtime:
     0          16:00:00
     1          01:00:00
   time:
     0          16:00:00
     1          01:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   trigger:
   triggertime:
     1513522800:
       localtime  1513522800
       hash:
     1513555200:
       localtime  1513555200
       hash:
   uiState:
   uiTable:
Attributes:
   devStateIcon cmd_2:rc_2:disable disabled:general_aus@red:initialize initialize:general_an@lime:disable cmd_1_1:rc_1:disable cmd_1_2:rc_2:disable cmd_1_3:rc_3:disable cmd_1_4:rc_4:disable initialized:general_an@orange:initialize
   icon       light_light_dim_100@yellow
   loglevel   2
   repeatcmd  3600,3600
   repeatsame [repeats]
   room       10_Draussen
   wait       30,3600,3600


Mal schauen ob das so funktioniert !!!

Gruß und Danke
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Damian

Du musst dir noch mal genauer die Syntax zu wait, repeatcmd, repeatsame in der Commandref anschauen.

Diese Definition passt nicht zu deinem DOIF:

wait       30,3600,3600

auch das

repeatcmd  3600,3600

Tipp: Bedeutung von Komma und Doppelpunkt

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF