Tasmota ATHOM - Abschaltung bei Leistungsunterschreitung - Ladeschutz für Pedelec Akku

  • Hallo Zusammen,

    ich möchte gerne einen ATHOM Stecker so programmieren, daß er bei etwa 80% Ladekapazität eines PEDELEC Akkus abschaltet und so zur Verlängerung der Akku Lebensdauer beiträgt.

    Meine Überlegung wäre, daß bei Unterschreitung einer bestimmten Leistungsaufnahme (Übergang von CC zu CV) des Ladegeräts der Stecker abschaltet.

    Folgende Anforderungen sollte der Stecker realieren können:

    1. Nach jedem einstecken prüfen, welche Leistung aktuell bezogen wird

    2. Bei Leistung >185 Watt bzw. von Anfang an --> 'Schalter an'

    3. Bei Unterschreitung der Leistung von <175 Watt über 10 Sekunden --> 'Schalter aus'

    Da ich meistens auf die volle Akku Kapazität für die Pendelstrecke angewiesen bin wäre zusätzlich eine Regel notwendig, welche den Akku dann erst kurz vor der Fahrt auf >80% auflädt:

    4. erneutes Einschalten um 5.00 Uhr für die Dauer von 30 Minuten

    5. erneutes Einschalten um 15.00 Uhr für die Dauer von 30 Minuten

    6. diese zusätzliche Regel sollte aber nur optional aktiv geschaltet werden.

    (Frage: kann der Stecker auch Offline ohne WiFi betrieben werden oder gibt es dann Probleme mit der Uhrzeit? Im Büro habe ich leider keine WiFi Verbindung)

    Anmerkung: Ich bin bzgl. Smart Home Anwendungen bzw. Tasmota Programmierung ein ABSOLUTER Neuling, daher wären Antworten und Codes für Laien sehr wünschenswert.

    Könntet Ihr mir bitte helfen, dieses Projekt zu realisieren?


    Aktuell habe ich übergangsweise folgenden Code programmiert:

    Code
    Rule1 ON power1#state=1 DO Ruletimer1 10 ENDON ON Rules#Timer=1 DO Rule2 1 ENDON
    Rule1 1
    Rule2 ON Energy#Power<178 DO Backlog Power1 0; Rule2 0 ENDON

    Ich sag schon mal vielen Dank für Eueren Support.

  • benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Hallo,

    danke für den Tipp.

    Irgendwie komme ich mit der Erklärung nicht so recht weiter. Bis jetzt habe ich leider keinerlei Erfahrung mit der Programmierung von Tasmota.

    Es würde mir sehr weiterhelfen wenn mir Einer vielleicht einen kompletten Code für meine gewünschte Anwendung bereitstellen könnte, falls es nicht zu viel Aufwand ist.

    Wäre echt super und würde mich sehr freuen.

  • Hi.

    Dein Problem sind die Timer 5Uhr und 15 Uhr.

    Ohne WLAN keine Zeitsynchronisierung und damit keine Schaltzeiten.

    Man kann zwar Rules ohne WLAN und und Zeitsync zum laufen bekommen aber Schaltzeiten sind damit dann nicht zu realisieren.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • ... ach, das war mir nicht bekannt. Danke Dir für diese Info. Dachte die Stecker hätten vielleicht eine Pufferbatterie verbaut.

    Für den ersten Timer in der Früh um 5 Uhr wäre noch ein Wlan Signal verfügbar.

    Dann könnte zumindest dieser Timer realisiert werden.

  • Ne, Pufferbatterie haben die Dinger nicht.

    Wenn dann müsstest ne RTC anschließen:

    DS3231 Real Time Clock - Tasmota

    geht halt schlecht bei dem Plug. Eher bei nem Sonoff S20 oder so

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Mist das es mit der aktuellen Steckdose nicht klappt.

    Aber die morgentliche Einschalt Regel um 5 Uhr müßte klappen solange der Stecker Verbindung zum Wlan hat.

    Könnte mir vielleicht Jemand einen kompletten Code für meine Anwendung bereitstellen?

  • Hier mal eine Antwort von einem Laien an einen Laien.

    Hi.

    Dein Problem sind die Timer 5Uhr und 15 Uhr.

    Ohne WLAN keine Zeitsynchronisierung und damit keine Schaltzeiten.

    Man kann zwar Rules ohne WLAN und und Zeitsync zum laufen bekommen aber Schaltzeiten sind damit dann nicht zu realisieren.

    Haben die Tasmota-Dinger eine falsche Uhrzeit bei ausbleibendem Internetabgleich? z.B. 00:00:00 Uhr 1.1.19XX ?? Dann könnte man eine mechanische Zeitschaltuhr davor anbringen und bei Tasmota dann mit den falschen internen Zeiten arbeiten

  • .... ich habe jetzt die Steckdose nach folgender Anleitung programmiert:

    """""""

    Frage: kann die Steckdose auch offline ohne WLAN betrieben werden oder gibt es Probleme mit der Uhrzeit

    Tasmota soll per WLAN laufen

    Ohne WLAN ist das Verhalten unvorhersehbar, insbesondere alles, was mit der Zeit zusammenhängt.

    Für den 1. Teil sollte folgendes reichen:

    Rule1 on Energy#Power<178 do RuleTimer1 100 endon on Energy#Power>178 do RuleTimer1 0 endon Rule2 on Rules#Timer=1 do Power OFF endon Rule1 1 Rule1 5 Rule2 1

    Beachten Sie, dass die Regeln hier aus Gründen der Lesbarkeit in mehreren Zeilen geschrieben sind, aber in einer einzigen Zeile eingegeben werden müssen

    Es ist wichtig, dass Regel 1 auf den Einmal-Modus (Regel 1 5) eingestellt ist, damit der Timer startet, sobald die Leistung den Wert 178 überschreitet. Andernfalls wird der Timer ständig neu gestartet und er tut nicht das, was Sie wollen.

    Der Auslöser für den Timer befindet sich in einer anderen Regel, da er in einer Regel 1 aufgrund des Einmal-Modus Probleme hätte.

    Für den zweiten Teil besteht eine Möglichkeit darin, eine dritte Regel zu verwenden, die Sie jederzeit aktivieren können

    Rule3 on Time#Minute=300 do backlog Rule2 0; Power ON endon on Time#Minute=330 do backlog Rule2 1; Power OFF endon on Time#Minute=900 do backlog Rule2 0; Power ON endon on Time#Minute=930 do backlog Rule2 1; Endon ausschalten

    Sie müssen nur Rule3 mit Rule3 1 aktivieren, um diese Option zu aktivieren

    Eine andere Möglichkeit wäre, die Timer zu verwenden.

    Timer vom Typ "Regel" aktivieren:

    Timer 1 um 5:00 Uhr

    Timer 2 um 5:30 Uhr

    Timer 3 um 15:00 Uhr

    Timer 4 um 15:30 Uhr

    und benutze Rule3 als:

    Rule3 on Clock#Timer=1 do backlog Rule2 0; Power ON endon on Clock#Timer=2 do backlog Rule2 1; Power OFF endon on Clock#Timer=3 do backlog Rule2 0; Power ON endon on Clock#Timer=4 do backlog Rule2 1; Endon Regel 3 ausschalten 1

    Lassen Sie Rule3 immer aktiviert und steuern Sie, ob Sie die Option aktivieren möchten, indem Sie die Timer aktivieren oder nicht

    Es ist auch einfacher, die Zeit, zu der Sie ein-/ausschalten möchten, mithilfe von Timern zu ändern

    Beachten Sie, dass der Stecker nicht erkennen kann, wenn Sie den Akku zum Aufladen anschließen, da er standardmäßig ausgeschaltet ist

    Sobald Sie also den Akku angeschlossen haben, müssen Sie die Taste drücken oder das Einschalten von web/mqtt senden

    """""""

  • In Post #2 steht doch breites alles Wissenswert

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Ich habe heute mal die Idee von Da Huaba aufgegriffen und eine dynamische Umsetzung für alle Akku-Ladungssystem umgesetzt.

    mem1 - bestimmt den Abschaltpunkt (80% Ladung = 0.2 eingeben) auf Leistungsumsetzung nach 5 Minuten

    Zudem werden Daten an einen Tasmota-Server auf VAR7 zur Teleperiode gesendet.


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    Konsoleneingabe

    teleperiod 60

    Vorbelegunge per Console

    mem1 - Triggerleistunsende "Aus" %-Wert 0.2 (z.B. =80%) festlegen <<<<__________

    mem11 - Sendeminute im 10 Minutenfeld festlegen <<<<__ (nicht aktiv)

    mem15 - Zielspeicherserver 192.168.178.80 <<<<__________

    manuell - IP-Consolenlink Webbutton3 anpassen <<<<__________

    --------------------------------------

    - dynamische Variablen

    VAR1 = nicht benutzt

    VAR2 A = Datenabfrage

    VAR2 0 = alle Daten löschen

    VAR2 M = nur Max/Min Daten löschen

    VAR3 = Leistung aktuell (tele-Messintervall)

    VAR4 = Triggervergleich mit Momentanleistung

    VAR6 = Datenzusammenstellung f.Server

    VAR7 = Übergabedatenstring an Server

    VAR9 = Tigger zur Anzeigedatenaufbereitung

    VAR16 = Tigger zur Anzeigedatenaufbereitung

    ----------------------------------------

    -feste Variablen

    mem2 - min Leistung

    mem3 - max Leistung

    mem12 - min LeistungTimestamp

    mem13 - max LeistungTimestamp

    mem4 - Power aus - TriggerTimestamp

    mem5 - Power ein - TriggerTimestamp

    ------------------------------------------

    Timer:

    RuleTimer1 300; - Leistungsmessung nach 5 Minuten zur Basisstrombestimmung

    RuleTimer2 28800 - Abschaltung nach 8 Stunden generell

    mem1 * Leistungsmessung zur RuleTime1-Zeit = Ausschalttriggerleistung

    template {"NAME":"NOUS A1T","GPIO":[32,0,0,0,2720,2656,0,0,2624,320,224,225,226,0],"FLAG":0,"BASE":49}

    _______________________________________________________

    ######## 1. Einrichtung ###########

    Backlog NtpServer1 192.168.178.1; NtpServer2 2.de.pool.ntp.org; NtpServer3 3.de.pool.ntp.org; Wificonfig 4; Sleep 250;

    Backlog Latitude 51.7800; Longitude 14.4100; timezone 99

    Backlog WebButton1 Dose; Rule1 1; Rule2 1; Rule3 1; SetOption0 0

    Backlog WebButton1 Dose; Webbutton2 Akkuladung; Rule1 1; Rule2 1; Rule3 1; SetOption0 0

    backlog Webbutton3 <a href="http://192.168.178.120/cs?"style="color:black">Info</a>

    Info - Anzeige wenn Webbutton3 auf die eigene IP angepasst wurde

    Panel wenn der Vorgang beendet ist (Start mit Button am Gerät oder Webbutton1)


    ___________ Rule0____________

    '############ hüte dich vor Kommentaren in der Rule !!###############

    'prüfe ob die Daten übernommen wurde

    Rule1

    ON System#Init do Backlog WifiConfig 4; CalcRes 2; Power2 0; Power3 0 endon

    on Button1#state do Power1 2 endon

    ON Power1#state=1 do Backlog Power1 1; VAR2 M; RuleTimer1 300; RuleTimer2 28800; mem5 %timestamp% endon

    ON Power1#state=0 do Backlog Power1 0; RuleTimer0 0 endon

    ON Power2#state do Backlog VAR2 M; Power2 0 endon

    ON Power3#state do Backlog VAR2 A endon

    on Rules#Timer=1 do Backlog VAR4 %VAR3%; Mult4 %mem1% endon

    on Rules#Timer=2 do Backlog Power1 0; mem4 %timestamp% endon


    Rule2

    on tele-Energy#Power do Backlog VAR3 %value% endon

    on VAR3#State>0 do Backlog VAR16 %VAR3% endon

    on VAR3#State>%mem3% do Backlog mem3 %value%; mem13 %timestamp%; VAR9 1 endon

    on VAR16#State<%mem2% do Backlog mem2 %value%; mem12 %timestamp%; VAR9 1 endon

    on VAR3#State<%VAR4% do Backlog Power1 0; RuleTimer0 0; mem4 %timestamp% endon

    on VAR3#State do Backlog VAR6 %topic%,%mem1%,%VAR3% endon

    on VAR3#State do websend [%mem15%] script>VAR7="%VAR6%" endon


    Rule3

    on VAR2#state=A do Backlog ______________ endon

    on VAR2#state=A do Backlog Leistung max:%mem13%_%mem3%_W min:%mem12%_%mem2%_W endon

    on VAR2#state=A do Backlog Intervall Ein:%mem5%_%mem1%_%-Wert Aus:%mem4%_%VAR4%_W endon

    on VAR2#state=A do Backlog ______________ endon

    on VAR2#state=A do VAR2 1 endon

    on VAR9#State=1 do Backlog VAR9 0; Webbutton2 maxLeistung:%mem3%W <hr>minLeistung:%mem2%W endon

    on mem1#State do Devicename <input value=%mem1%_Faktor__TriggerOFF_noch_unklar > endon

    on VAR4#State do Devicename <input value=%mem1%_Faktor__TriggerOFF:_%VAR4%_W > endon

    on VAR2#State=0 do Backlog energytotal 0; energytoday 0; mem4 0; mem5 0; mem7 0; mem10 0; VAR4 0; VAR3 0; mem3 0; mem2 10000; mem13 0; mem12 0 VAR2 1 endon

    on VAR2#State=M do Backlog VAR2 1; mem3 0; mem2 10000; mem13 0; mem12 0 endon

    3 Mal editiert, zuletzt von karoCB (18. Februar 2023 um 19:26)

  • NOUS A5T - als selektiver Akkuschutz

    Vergessene Ladungsanschlüsse an Akkus nach Gebrauch haben über Tage und Wochen schon Auswirkungen auf die noch möglichen Ladezyklen.

    Ein Schutz könnte die Idee von Da Huaba sein die ich hier für den Mehrfachverteilung umgesetzt habe.

    --------

    >>Vorbelegunge per Console<<<

    teleperiod 60

    mem1 0.2 - Triggerleistunsende "Aus" %-Wert 0.2 festlegen (hier 80% Ladung) <<<<__________

    mem15 192.168.178.80 - Zielspeicherserver <<<<__________

    wenn keine Zielpeicherserver vorhanden dann nichts angeben.

    --------------------------------------

    - dynamische Variablen

    VAR1 = nicht benutzt

    VAR2 A = Datenabfrage

    VAR2 0 = alle Daten löschen

    VAR2 M = nur Max/Min Daten löschen

    VAR3 = Leistung aktuell (tele-Messintervall)

    VAR4 = Triggervergleich mit Momentanleistung

    VAR6 = Datenzusammenstellung f.Server

    VAR7 = Übergabedatenstring an Server

    VAR9 = Tigger zur Anzeigedatenaufbereitung

    VAR10 = Tigger zur UP

    VAR16 = Tigger zur Anzeigedatenaufbereitung

    ----------------------------------------

    -feste Variablen

    mem2 - min Leistung

    mem3 - max Leistung

    mem12 - min LeistungTimestamp

    mem13 - max LeistungTimestamp

    mem4 - Power aus - TriggerTimestamp

    mem5 - Power ein - TriggerTimestamp

    ------------------------------------------

    Timer:

    RuleTimer1 300; - Leistungsmessung nach 5 Minuten zur Basisstrombestimmung

    RuleTimer2 28800 - Abschaltung nach 8 Stunden generell

    mem1 * Leistungsmessung zur RuleTime1-Zeit = Ausschalttriggerleistung

    template {"NAME":"NOUS A5T","GPIO":[0,3072,544,3104,0,259,0,0,225,226,224,0,32,4704],"FLAG":0,"BASE":18}

    _______________________________________________________

    ######## 1. Einrichtung ###########

    Backlog NtpServer1 192.168.178.1; NtpServer2 2.de.pool.ntp.org; NtpServer3 3.de.pool.ntp.org; Wificonfig 4; Sleep 250;

    Backlog Latitude 51.7800; Longitude 14.4100; timezone 99

    Backlog WebButton1 Dose1; Webbutton2 Dose2 <hr> Info; Webbutton3 Dose3; Webbutton4 USB; Rule1 1; Rule2 1; Rule3 1; Rule2 4; SetOption0 0

    ___________ Rule0____________

    '############ hüte dich vor Kommentaren in der Rule !!###############

    'prüfe ob die Daten übernommen wurden

    Rule1

    ON System#Init do Backlog WifiConfig 4; CalcRes 2; Power2 0; Power3 0; VAR4 0 endon

    ON Power1#state=1 do VAR10 1 endon

    ON Power2#state=1 do VAR10 1 endon

    ON Power3#state=1 do VAR10 1 endon

    ON Power4#state=1 do VAR10 1 endon

    ON Power1#state=0 do RuleTimer0 0 endon

    ON Power2#state=0 do RuleTimer0 0 endon

    ON Power3#state=0 do RuleTimer0 0 endon

    ON Power4#state=0 do RuleTimer0 0 endon

    on Rules#Timer=1 do Backlog VAR4 %VAR3%; Mult4 %mem1% endon

    on Rules#Timer=2 do Backlog Power1 0; Power2 0; Power3 0; Power4 0; mem4 %timestamp% endon

    ON Button1#State DO Power4 2 ENDON

    ON Analog#A0div10<30 DO Power3 2 BREAK

    ON Analog#A0div10<60 DO Power2 2 BREAK

    ON Analog#A0div10<80 DO Power1 2 ENDON


    Rule2

    on tele-Energy#Power do Backlog VAR3 %value% endon

    on VAR3#State>0 do Backlog VAR16 %VAR3% endon

    on VAR3#State>%mem3% do Backlog mem3 %value%; mem13 %timestamp%; VAR9 1 endon

    on VAR16#State<%mem2% do Backlog mem2 %value%; mem12 %timestamp%; VAR9 1 endon

    on VAR3#State<%VAR4% do Backlog Power1 0; Power2 0; Power3 0; Power4 0; RuleTimer0 0; mem4 %timestamp% endon

    on VAR3#State do Backlog VAR6 %topic%,%mem1%,%VAR3% endon

    on VAR3#State do websend [%mem15%] script>VAR7="%VAR6%" endon

    on VAR10#State=1 do Backlog VAR4 0; RuleTimer1 300; RuleTimer2 28800; mem5 %timestamp%; VAR10 0 endon

    Rule3

    on VAR2#state=A do Backlog ______________ endon

    on VAR2#state=A do Backlog Leistung max:%mem13%_%mem3%_W min:%mem12%_%mem2%_W endon

    on VAR2#state=A do Backlog Intervall Ein:%mem5%_%mem1%_%-Wert Aus:%mem4%_%VAR4%_W endon

    on VAR2#state=A do Backlog ______________ endon

    on VAR2#state=A do VAR2 1 endon

    on VAR9#State=1 do Backlog VAR9 0; Webbutton2 Dose2 <hr>maxLeistung:%mem3%W <p>minLeistung:%mem2%W endon

    on mem1#State do Devicename <input value=%mem1%_Faktor_Trigger_unklar> endon

    on VAR4#State do Devicename <input value=%mem1%_Faktor_TriggerOFF:_%VAR4%_W > endon

    on VAR2#State=0 do Backlog energytotal 0; energytoday 0; mem4 0; mem5 0; mem7 0; mem10 0; VAR3 0; VAR4 0; mem3 0; mem2 10000; mem13 0; mem12 0 VAR2 1 endon

    on VAR2#State=M do Backlog VAR2 1; mem3 0; mem2 3666; mem13 0; mem12 0 endon


    ------------------- Bilder

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.