diff --git a/2_SML_Script_Chart_PV2.tas b/2_SML_Script_Chart_PV2.tas index f5b8371..7c98dc6 100644 --- a/2_SML_Script_Chart_PV2.tas +++ b/2_SML_Script_Chart_PV2.tas @@ -10,6 +10,10 @@ IP=192.168.178.132 ; DIESES SCRIPT IST NUR NOCH FÜR DEN ESP32 ; TASMOTA (ottelo) IMAGE ab v15.1.0 (07.12.2025) NOTWENDIG +; MODIFIKATION: Historie in history.csv +; Speichert je nach Einstellung: Stündlich/Täglich/Monatlich/Jährlich +; Detaillevel wählbar über Dropdown im Konfigurationsmenü +; 1=Aus, 2=Jährlich, 3=Monatlich, 4=Täglich, 5=Stündlich ; (1) Beschreibung: ; Skript Version ganz unten @@ -53,6 +57,13 @@ p:da=1 p:rxind=1 p:txind=1 p:sel=0 +; History Detail Level (1=Aus, 2=Jährlich, 3=Monatlich, 4=Täglich, 5=Stündlich) +p:hlvl=1 +; Letzter gespeicherter Tag/Monat/Jahr (um Doppelspeicherung zu vermeiden) +p:lhr=-1 +p:lday=0 +p:lmon=0 +p:lyear=0 ;p:vn=12000 optional um per Slider Y-Achse Werte zu begrenzen t:t1=5 t:t2=60 @@ -68,6 +79,7 @@ swesp=0 swespflg=0 power2=0 fr=0 +res=0 ; -- BOOT -- @@ -128,6 +140,16 @@ acp(dprod 0) acp(mcon 0) =#save +; History Eintrag schreiben +#loghist +fr=fo("history.csv" a) +if fr>=0 { + ; Format: Stunde;Tag;Monat;Jahr;Zählerstand_Bezug_kWh;Zählerstand_Einspeisung_kWh;Leistung_W + res=fw(s(0hours)+";"+s(0day)+";"+s(0month)+";"+s(0year)+";"+s(2sml[2])+";"+s(2sml[3])+";"+s(0sml[1])+"\n" fr) + fc(fr) + print History: %0hours%h %0day%.%0month%.%0year% (Level %0hlvl%) +} + ; Tagesverbrauch Tabelle #daysub if wm>0 { @@ -229,6 +251,11 @@ if ((chg[rxind]>0) or (chg[txind]>0)) { ->sensor53 r =#save } +; History Level geändert -> speichern +if (chg[hlvl]>1) { + svars + print History Level: %0hlvl% +} ; Warte auf Zähler if (sml[2]==0) { break @@ -288,6 +315,33 @@ if (t2==0) { t2=60 hr=hours + ; History speichern je nach Level + ; 1=Aus, 2=Jährlich, 3=Monatlich, 4=Täglich, 5=Stündlich + + ; Level 5: Stündlich (bei jedem Stundenwechsel) + if ((hlvl==5) and (hours!=lhr)) { + lhr=hours + =#loghist + } + + ; Level 4: Täglich (um Mitternacht) + if ((hlvl==4) and (hours==0) and (day!=lday)) { + lday=day + =#loghist + } + + ; Level 3: Monatlich (am 1. um Mitternacht) + if ((hlvl==3) and (day==1) and (hours==0) and (month!=lmon)) { + lmon=month + =#loghist + } + + ; Level 2: Jährlich (am 1.1. um Mitternacht) + if ((hlvl==2) and (day==1) and (month==1) and (hours==0) and (year!=lyear)) { + lyear=year + =#loghist + } + ; Tagesverbrauch [kWh] dcon[day]=sml[2]-dval ; Monatsverbrauch [kWh] @@ -411,43 +465,52 @@ $