Basis - https://tasmota.github.io/docs/Rules/
Die Idee (Variante 1) - den Monat täglich um 0:01 Uhr zu lesen und zu setzen.
Wenn der Monat wechselt, läuft der täglich +1 gesetzte Tageszähler wieder mit 1 los.
--Variante1 ---------------------------------------------------------
mem10 Speicher Tag
mem9 Speicher Monat
mem8 Triggermonat
VAR10 dauerhaft benutzt
VAR9 nur kurz benutzt
erforderliche Einstellungen setzen
dobi = heutige Tageszahl einmalig
Backlog mem10 dobi, VAR10 0; Calcres 0
Rule2
on Time#Minute=1 do Backlog VAR10 %mem10%; ADD10 1; VAR9 %timestamp% endon
on System#Boot do Backlog VAR9 %timestamp% endon
on VAR9#State$|-01- do mem9 Jan endon
on VAR9#State$|-02- do mem9 Feb endon
on VAR9#State$|-03- do mem9 Mar endon
on VAR9#State$|-04- do mem9 Apr endon
on VAR9#State$|-05- do mem9 Mai endon
on VAR9#State$|-06- do mem9 Jun endon
on VAR9#State$|-07- do mem9 Jul endon
on VAR9#State$|-08- do mem9 Aug endon
on VAR9#State$|-09- do mem9 Sep endon
on VAR9#State$|-10- do mem9 Okt endon
on VAR9#State$|-11- do mem9 Nov endon
on VAR9#State$|-12- do mem9 Dez endon
on VAR10#State do mem10 %VAR10% endon
on mem9#State$!%mem8% do Backlog mem10 1; mem8 %mem9% endon
Variante2 --------------------------------------------- Selbssynchronisierung
Oft ist der Einsatz nur am Tage aktiv und in der Nacht die Systeme ausgeschalten, so ist eine manuelle Synchronisierung beim Start unschön.
Mit 2 Rules geht es automatisch.
Ein Tageszählerloop auf Rule3 läuft so lange mit +1, bis der Tageszähler mit dem Timestamp gleich steht.
VAR10 Tag (nach ca. 20 Sekunden)
VAR11 Monat
VAR9 Timestamp
VAR1 Zähler
VAR12 Vergleich
Rule2
on Time#Minute=1 do backlog rule3 1; VAR1 0 endon
on System#Boot do backlog rule3 1; VAR1 0 endon
on VAR9#state$|%VAR12% do Rule3 0 endon
on VAR9#State$|-01- do VAR11 Jan endon
on VAR9#State$|-02- do VAR11 Feb endon
on VAR9#State$|-03- do VAR11 Mar endon
on VAR9#State$|-04- do VAR11 Apr endon
on VAR9#State$|-05- do VAR11 Mai endon
on VAR9#State$|-06- do VAR11 Jun endon
on VAR9#State$|-07- do VAR11 Jul endon
on VAR9#State$|-08- do VAR11 Aug endon
on VAR9#State$|-09- do VAR11 Sep endon
on VAR9#State$|-10- do VAR11 Okt endon
on VAR9#State$|-11- do VAR11 Nov endon
on VAR9#State$|-12- do VAR11 Dez endon
on VAR9#state$^%VAR12% do ADD1 1 endon
Rule3
on VAR1#State<10 do Backlog VAR12 0%VAR1%T; VAR10 0%VAR1%; VAR9 %timestamp% endon
on VAR1#State>9 do Backlog VAR12 %VAR1%T; VAR10 %VAR1%; VAR9 %timestamp% endon