Ladung bei x% pausieren.

Springtreffen am Samstag, den 22.06.2024

Es ist endlich so weit. Die Anmeldung für das diesjährige Springtreffen am Samstag, den 22.06.2024 hat begonnen.

--> Hier geht es zur Anmeldung! <--

Hallo,
habe mir mit NodeRed eine einfache Automation gebastelt, so dass bei einem voreingestellten Lade Status pausiert wird.
Hier noch der Flow wenn es jemand nachbauen will.
Bildschirmfoto 2022-10-04 um 15.51.15.png

Funktioniert seit 15 Ladungen super!

Grüße Matze



JSON:
[
    {
        "id": "6daf89b24cc1ae9e",
        "type": "tab",
        "label": "Spring pausieren",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "2b32a6d87e1bc75c",
        "type": "renault-ze",
        "z": "6daf89b24cc1ae9e",
        "name": "Dacia Spring",
        "x": 370,
        "y": 100,
        "wires": [
            [
                "bae29c02bf167f4c"
            ]
        ]
    },
    {
        "id": "50909a61150680b6",
        "type": "change",
        "z": "6daf89b24cc1ae9e",
        "name": "battery-status",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "battery-status",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 560,
        "y": 40,
        "wires": [
            [
                "2b32a6d87e1bc75c"
            ]
        ]
    },
    {
        "id": "ea8e309c632924f7",
        "type": "inject",
        "z": "6daf89b24cc1ae9e",
        "name": "15 Minuten interval",
        "props": [],
        "repeat": "900",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "x": 160,
        "y": 40,
        "wires": [
            [
                "50909a61150680b6"
            ]
        ]
    },
    {
        "id": "4f8d4d17f7dcec49",
        "type": "switch",
        "z": "6daf89b24cc1ae9e",
        "name": "90% Battery",
        "property": "payload.data.attributes.batteryLevel",
        "propertyType": "msg",
        "rules": [
            {
                "t": "btwn",
                "v": "90",
                "vt": "num",
                "v2": "99",
                "v2t": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 370,
        "y": 200,
        "wires": [
            [
                "1ebbdf6802337fea"
            ]
        ]
    },
    {
        "id": "1ebbdf6802337fea",
        "type": "change",
        "z": "6daf89b24cc1ae9e",
        "name": "Laden pausieren",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "set-charge-pause",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 570,
        "y": 200,
        "wires": [
            [
                "2b32a6d87e1bc75c"
            ]
        ]
    },
    {
        "id": "bae29c02bf167f4c",
        "type": "switch",
        "z": "6daf89b24cc1ae9e",
        "name": "chargingStatus",
        "property": "payload.data.attributes.chargingStatus",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": true,
        "outputs": 1,
        "x": 140,
        "y": 200,
        "wires": [
            [
                "4f8d4d17f7dcec49"
            ]
        ]
    }
]
 

Bully66

Supermoderator
Teammitglied
Ort
Hettenleidelheim
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
ComfortPlus, CCS, MY2021
So, ich hab das gestern auch mal erfolgreich getestet (Super - Danke für den Flow @matzzz !)

Für alle die nicht so firm sind:

Was braucht man dazu?

Einen Computer der, zumindest für die Zeit der Aufladung läuft und mit dem Internet verbunden ist. Bei mir ist das ein kleiner Raspberry Pi der bei mir als Server fungiert.

Darauf kann man dann Node-Red installieren (Anleitung wie das geht, steht unter dem Link von @JuppZupp ) Wer damit allerdings schon Probleme hat, sollte sich überlegen ob er das angehen möchte oder sich einlesen.

Danach den o. aufgeführten Flow einfügen und noch die node-red-contrib-renault-ze in Node Red installieren.
Mit einem Doppelklick auf den mittleren Node (Dacia Spring), kann man den Benutzernamen und das Passwort (mit dem man sich bei der App oder My-Dacia-Seite anmeldet) eintragen.

Mit dem Doppelklick auf den Node "90% Battery" kann man die gewünschten Prozentwerte einstellen. Ich habe dort z.B. bei min. 80 und bei max. 90% eingetragen. Bitte nicht zu vergessen zu deployen, sonst werden die Änderungen nicht übertragen.

Wie funktioniert das?

Man steckt den Spring in der Garage an den Strom (muss natürlich unter 80% sein) und lässt ihn am Strom nuckeln. Der Flow in Node Red läuft bereits oder muss gestartet werden.

Node Red frägt jetzt im Intervall von 15 Minuten ab, ob der Ladezustand der Batterie bereits den unteren eingestellten Wert erreicht hat, falls nicht passiert nichts und der Spring nuckelt gemütlich weiter.

Falls der Wert den unteren Wert erreicht oder überschritten hat (was bei 15 Minuten Intervall passieren kann), wird der Ladevorgang durch den Flow unterbrochen. Dabei wird über die API vom Dacia-Server das Signal zur Unterbrechung an den Spring gesendet, ganz so wie wenn man in der App auf "Ladevorgang pausieren" drückt.

Was man bedenken sollte!

Das funktioniert gut - sofern der Dacia/Renault Server auf funktioniert, der Wagen Funkempfang hat und nicht sonst irgendwas in den Systemen spinnt. Aus meiner Sicht kann man sich nicht 100% darauf verlassen, was aber nicht an Node-Red oder dem Flow liegt. Es ist ja bekannt, dass manchmal in der App nichts geht und das dies dann meist an den Servern des Herstellers liegt.

Auch noch wichtig, wenn das Script im Hintergrund läuft, man eine längere Reise unternehmen möchte und man sich wundert, warum der Spring nicht auf 100% lädt, sollte man sich an diesen Flow erinnern und Node Red stoppen oder den Flow anpassen! Kann leicht passieren.
 

Silencer800

eDacia-Begeisterter
@Bully66 deine Lösung ist gute Arbeit.

Für die jenigen, die sich vielleicht nicht so gut mit Computertechnik auskennen, ist vielleicht die Variante "Altes Android Gerät als Sever und die App Wallbox Steuerung" gut geeignet.

Funktioniert im Prinzip genauso.
 

Spring-high

Supermoderator
Teammitglied
Ort
Anstel
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
Dacia Spring Electric Comfort+
Dafür muss aber die WB unterstützt werden? Stimmt's? Ist die Zappi von my Energi dabei?
 

Bully66

Supermoderator
Teammitglied
Ort
Hettenleidelheim
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
ComfortPlus, CCS, MY2021
Ja und gestern gleich in die Falle getappt. :cool:

Daheim lief noch der Node-Red-Flow und ich wollte unterwegs (Wartezeit überbrücken) laden. Erst wunderte ich mich warum der bei - genau - 80% den Ladevorgang unterbricht. Gleich noch mal gestartet und in 15 Minuten (Abfrageintervall) bei 86% wieder..
Da erleuchtete dann über meinem Kopf die 💡!

Muss glaube ich zukünftig den Flow aktiv stoppen, wenn ich fertig bin. :cool:
 

VonTrier

eDacia-Fortgeschrittener
Mir schwebt eine Lösung mit einem Raspberry Pico W vor,
und zwar würde das nur bei einem bekannten Wlan gehen,
aber, er ist so klein dass man es zum funktionieren nur in eine
USB-Buchse stecken müsste, und zum Abschalten wieder
abziehen. Das wäre dann auch vom Fahrzeug aus möglich.
Eigentlich komisch dass die Dacia Helden zwar im Cockpit
anzeigen wo 80% und 100% liefen, dann aber das in der eigenen
App nicht gebacken bekommen.
 

matzzz

eDacia-Wohlwollend
Einfach die Funktion deaktivieren und schon kann man bis 100% laden!

1CCE9851-ED50-473E-BE77-A5A237D460A3.jpeg


Ja und gestern gleich in die Falle getappt. :cool:

Daheim lief noch der Node-Red-Flow und ich wollte unterwegs (Wartezeit überbrücken) laden. Erst wunderte ich mich warum der bei - genau - 80% den Ladevorgang unterbricht. Gleich noch mal gestartet und in 15 Minuten (Abfrageintervall) bei 86% wieder..
Da erleuchtete dann über meinem Kopf die 💡!

Muss glaube ich zukünftig den Flow aktiv stoppen, wenn ich fertig bin. :cool:
 

Bully66

Supermoderator
Teammitglied
Ort
Hettenleidelheim
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
ComfortPlus, CCS, MY2021
Sicher eine Möglichkeit und guter Tipp. Aber wie ich mich kenne vergesse ich dann wieder einzuschalten ;) Außerdem war ich nicht in der Nähe des Fahrzeugs, sondern hätte wieder hinlaufen müssen. Wäre es notwendig gewesen hätte ich den Ladevorgang ja noch mal über die App starten können. Dann wären sicher noch ein paar Prozent rein gegangen. War ja aber auch nicht notwendig.
Aber wenn man unterwegs ist und der Server zu Hause läuft noch - sicher eine gute Idee.
 

JuppZupp

eDacia-Wohlwollend
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2022
Details
C+/CCS/MFD 25.04.22/bk wo or
Fazit nach ~3 Monaten:
funktioniert sehr zuverlässig wenn der Renault-Server mitspielt(alle 5 Ausfälle gehen auf ihn zurück)
 

HolgerS

eDacia-Interessierter
Das klingt ja interessant.
Ich kenn mich da nicht aus, aber gibt es evtl die Möglichkeit, ein Geofencing einzubauen, damit nur zu Hause abgeschaltet wird? ?
Die letzte Position wird ja glaub ich an die Dacia App übermittelt.🤔
 

JuppZupp

eDacia-Wohlwollend
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2022
Details
C+/CCS/MFD 25.04.22/bk wo or
da habe ich leider keinen Badarf. . Wenn ich mal nicht nur bis 70% laden will mache ich einfach den Datenübertragungsschalter aus.
 

Dacia Dieter

eDacia-Erfahrener
Ich mag Vampire ;). Ich bin froh, dass meiner nicht ganz einschläft und was da an Strom verbraucht wird ist lächerlich (12 V) für ein Steuergerät. Ich lade fast nur über Nacht, wenn ich schlafe und programiere dass so, dass er genau die Ladung hat die ich dann brauche. Nur was das mit Intervall soll ist mir nicht ganz schlüssig. Wenn ich genügend Zeit habe, dann lade ich sogar mit nur 8 Ah und das freut
 

Bully66

Supermoderator
Teammitglied
Ort
Hettenleidelheim
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
ComfortPlus, CCS, MY2021
Bei mir bisher auch keine Probleme (außer der Renault-Server zickt).
Bin da sehr zufrieden mit, vor allem wenn ich jetzt im Winter mehr Fahrstrom brauche und mir dann nicht den Wecker für mitten in der Nacht stellen muss, um den Ladevorgang rechtzeitig zu beenden.
Wer sowieso einen Rechner rund um die Uhr laufen hat (z.B. ein SmartHome-System auf einem Raspberry Pi), der sollte das Script mal testen.
 
G

Gast1118

Guest
Ich möchte mich auch nochmal bei @matzzz für den Flow bedanken. Nutze ihn seit mehreren Monaten ohne Probleme. Danke dafür!
Allerdings mittlerweile mit einigen Modifikationen. Beispielsweise habe ich eine Schnittstelle zum Messenger Telegram integriert. (Von Telegram kann man aus vielen - sehr nachvollziehbaren - Gründen halten was man will. Für Programmierer ist er dank Bot-Integration und sehr gut dokumentierter Programmierschnittstellen gerade für solche Anwendungen aber echt ein Traum).
Jedenfalls möchte ich das hier gerne kurz mal vorstellen (auch damit @matzzz mitbekommt, was aus "seinem Baby" so alles gebastelt wird ;)).

Aber erstmal eins vornweg: Um die nachfolgend beschriebenen NodeRed-Flows einsatzfähig zu machen, muss man schon etwas tiefergehende Ahnung haben:
  • Erstellen eines Telegram-Bots sowie erhalt dessen API-Tokens (jeder braucht "seinen eigenen" Telegram-Bot dafür und muss diesen entsprechend in NodeRed konfigurieren)
  • Das Wissen, wie man sich in eine API-Dokumentationen einliest (hier die Telegram-API)
  • Wissen, wie man Chat-IDs/User-IDs aus Telegram ermittelt (wichtig, um nur bestimmten Usern - sich selbst und ggf. Familienmitgliedern - Zugriff auf seinen persönlichen DaciaSpring-Bot geben zu können)
  • Und natürlich steckt auch einiges an JavaScript-Code in den NodeRed-Flows, den man verstehen sollte.
Deshalb plane ich aktuell nicht, hier einen Export der NodeRed-Flows zu veröffentlichen. Ist ja doch ein Autoforum und kein Programmierforum. Sollte jemand trotzdem Interesse sowie entsprechende Vorkenntnis haben, kann man mich aber gerne per PN anschreiben und ich versuche natürlich zu unterstützen, wenn ich Zeit finde.

Aber nun zurück zum eigentlichen Thema:
Mir war es bei dem ursprünglichen Flow zum Beispiel nicht ganz wohl dabei, dass alle 15 Minuten der Batteriestatus von Dacia abgefragt wird, auch wenn nicht geladen wird. Nach einigem Überlegen habe ich deshalb die bereits angesprochene Schnittstelle zu Telegram integriert, um das zyklische Abfragen gezielt steuern zu können.

Dafür gibt es innerhalb des Bots beispielsweise die Befehle "/startPausePolling" sowie "/stopPausePolling". Optional kann mit dem Starten der Ladeüberwachung noch das Ladeziel angegeben werden - also beispielsweise "/startPausePolling 70", um auf 70% zu laden.
menü.jpeg


Ein Ladevorgang bei mir sieht beispielsweise so aus, dass ich nach dem Anstecken des Autos einmal in meinem Telegram-Bot auf den Button "/startPausePolling" klicke. Dies wird mir mit einem grünen Haken sowie dem aktuell eingestellten Ladeziel bestätigt.
Anschließend startet die viertelstündliche Abfrage des Ladestatus und gibt jeweils eine Textnachricht (stumm, ohne Benachrichtigungston) mit dem den aktuellen Ladestand, den noch zu ladenden Prozent sowie dem voraussichtlichen Ladeende (momentan hardcodiert für eine 11KW-Wallbox, also 1phasig mit 3,6kw) aus:
laden_01.jpeg

Wird erkannt, dass das Ladeziel erreicht ist, wird der Ladevorgang beendet, eine Nachricht (nicht stumm, also mit Benachrichtigungston) mit dem Text "battery is above XX%..." geschickt und die viertelstündliche Abfrage beendet.

Über die Telegram-Integration ist es auch möglich, den Fahrzeugstandort (Button "/location") sowie den aktuellen Ladestand (Button "/batterystate") abzufragen:
location.jpeg

batterystate.jpeg

⌚ <Aktualisierungszeitpunkt>
🔌 <ist angesteckt>
⚡ <wird geladen>
🔋 <aktueller Akkustand>
🚗 <aktuelle Restreichweite>

Der Vollständigkeit wegen noch eine Erklärung für die restlichen 3 Buttons des Bots:
  • "/help" zeigt eine kurze Erklärung zu den einzelnen Funktionen an
  • "/getVariables" zeigt an, ob und mit welchem Ladeziel gerade gerade geladen wird
  • "/triggerPausePoll" ist zum Testen gedacht - hier kann die viertelstündliche Ladestandabfrage einmalig außerhalb der Reihe gestartet werden.
restlicheFunktionen.jpeg



Hier noch Screenshots der NodeRed-Flows:
Flow 1 "SpringPausePoll":
flow1_springpausepoll.png


Flow 2 "TelegramCommands":
flow2_telegramCommands.png
 

Bully66

Supermoderator
Teammitglied
Ort
Hettenleidelheim
Version
Comfort+
Motor
45 PS (33 kW)
Baujahr
2021
Details
ComfortPlus, CCS, MY2021
Find ich cool. Hm, Telegram nutz ich nicht. Bin da auch noch am überlegen ob man das nicht mit einer Oberfläche auf dem kleinen Server machen kann, über den man sich per VPN einloggt. Das wäre meine Bevorzugte Lösung.
Aber die Idee von Dir ist auch Klasse!
 

notz

eDacia-Neuling
Hi ich habe den flow auf einem alten Linux Laptop installiert, unter Debian, dank der guten Erklärung scheint es zu gehen (obwol ich bestenfalls rudimentäre Programmierkenntnisse habe). Ich habe einfach den flow in mein Verzeichnis importiert....Danke @matzzz. Frage: Hat jemand eine Idee/ einen Baustein für eine Statusanzeige, wenn ich nicht über Telegramm gehen will, eher wie die Batterieanzeige in der Systemleiste vom laptop?
 
Oben