AT mit anzahl der Wiederholungen aus einer Variable (Dumy)

Begonnen von dirk.k, 04 Juni 2022, 19:18:42

Vorheriges Thema - Nächstes Thema

Damian

Und hier ein Zweizeiler als Alternative:

defmod di_gartenwasser DOIF ([[$SELF:Zeitpunkt]]) (set Sonoff_basic_11 3600)
attr di_gartenwasser repeatsame [$SELF:Anzahl]


mit

setreading di_gartenwasser Zeitpunkt <Time>

wird der Zeitpunkt gesetzt und mit

setreading di_gartenwasser Anzahl <Anzahl>

wird die Anzahl der Wiederholungen gesetzt. Dabei wird automatisch intern der Counter zurückgesetzt, da muss man nichts mehr programmieren.

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

dirk.k

Danke für die vielen Vorschläge.
Ich probiere gerade verschiedenes durch.
Klarer Vavorit wäre der Einfachheit wegen die DoIf Variante.
Nur ein paar Fragen:
Setze ich repeatsame auf 0, wird nichts ausgeführt ... ok, war so erwartet.
Ich habe repeatsame auf 1 gesetzt und nach dem Auslösen wird trotzdem ein Timer für den nächsten Tag erstellt ... würde dieser dann einfach nicht "auslösen"? (siehe device-listing unten)
Gibt es eine Möglichkeit, die Zahl der offenen Ausführungen herauszubekommen (oder könnte für diese Information evtl. ein weiteres reading erstellt werden?)
Ich kann sonst leider nicht anzeigen, wenn die Bewässerung nicht mehr aktiv ist.

Internals:
   CFGFN     
   DEF        ([[$SELF:Zeitpunkt]]) (set Sonoff_basic_11 off)
   FUUID      629dc8ee-f33f-cdbc-8eff-73deebb68fa61806
   MODEL      FHEM
   NAME       di_gartenwasser
   NOTIFYDEV  di_gartenwasser,global
   NR         271218
   NTFY_ORDER 50-di_gartenwasser
   STATE      cmd_1
   TYPE       DOIF
   VERSION    26020 2022-05-03 16:28:02
   .attraggr:
   .attrminint:
   READINGS:
     2022-06-06 13:24:33   Anzahl          1
     2022-06-06 13:43:51   Zeitpunkt       13:44
     2022-06-06 13:44:01   cmd             1
     2022-06-06 13:44:01   cmd_count       1
     2022-06-06 13:44:01   cmd_event       timer_1
     2022-06-06 13:44:01   cmd_nr          1
     2022-06-06 13:37:30   mode            enabled
     2022-06-06 13:44:01   state           cmd_1
     2022-06-06 13:44:01   timer_01_c01    07.06.2022 13:44:00
   Regex:
     accu:
     collect:
     itimer:
       di_gartenwasser:
         itimer:
           Zeitpunkt  ^di_gartenwasser$:^Zeitpunkt:
   attr:
     cmdState:
     repeatsame:
       1
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday)
   days:
   do:
     0:
       0          set Sonoff_basic_11 off
     1:
   helper:
     NOTIFYDEV  di_gartenwasser,global
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     timerdev   
     timerevent timer_1
     triggerDev
     timerevents:
       timer_1
     timereventsState:
       timer_1
     triggerEvents:
       timer_1
     triggerEventsState:
       timer_1
   interval:
   intervalfunc:
   intervaltimer:
   localtime:
     0          1654602240
   realtime:
     0          13:44:00
   time:
     0          [di_gartenwasser:Zeitpunkt]
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1654602240:
       localtime  1654602240
       hash:
   uiState:
   uiTable:
Attributes:
   comment    attr di_gartenwasser repeatsame [$SELF:Anzahl]
   repeatsame 1
   room       2.1_Garten

dirk.k

#17
@MadMax-FHEM
Das würde ja nahe an meine bestehende Konfiguration drankommen.
Das Ganze aus FhemWeb funktioniert super ... incl. Counter für die offenen Vorgänge.
In FTUI bekomme ich Probleme wegen der ganzen Anführungszeichen und Hochkomma.
Wie bekomme ich den Zusammenbau der Zeichenkette ausgelagert?
Damit habe ich mich noch nie beschäftigt? 

PS: ich habe die benötigte Zeichenkette  *{06}05:15  jetzt als userreading. Allerdings akzeptiert das AT jetzt das ReadingsVal nicht mehr als Zeitangabe...
the function "ReadingsVal("dummy_gartenwasser","timespec","*{1}05:50:00")" must return a timespec and not *{06}05:30:00

Damian

Zitat von: dirk.k am 06 Juni 2022, 13:45:21
Danke für die vielen Vorschläge.
Ich probiere gerade verschiedenes durch.
Klarer Vavorit wäre der Einfachheit wegen die DoIf Variante.
Nur ein paar Fragen:
Setze ich repeatsame auf 0, wird nichts ausgeführt ... ok, war so erwartet.
Ich habe repeatsame auf 1 gesetzt und nach dem Auslösen wird trotzdem ein Timer für den nächsten Tag erstellt ... würde dieser dann einfach nicht "auslösen"? (siehe device-listing unten)
Gibt es eine Möglichkeit, die Zahl der offenen Ausführungen herauszubekommen (oder könnte für diese Information evtl. ein weiteres reading erstellt werden?)
Ich kann sonst leider nicht anzeigen, wenn die Bewässerung nicht mehr aktiv ist.

Der Timer ist immer aktiv, wenn die Anzahl erreicht ist, wird nichts mehr ausgeführt.

Im Reading cmd_count kannst du sehen, wie oft es bereits ausgeführt wurde, folglich kann man als Differenz von Anzahl-count, die noch ausstehenden darstellen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF