HomeAssistant Integration für Ladezustand, PV Charging, Überschussladung etc

Hi Martin,

kann alle Fragen mit ja beantworten, lediglich ist der Service für DuckDNS auch im HA installiert, nicht im Router.

Im Detail gelöst mit dem DuckDNS Add-On

Home Assistant Add-on: DuckDNS
Automatically update your Duck DNS IP address with integrated HTTPS support via Let's Encrypt.

Supports aarch64 Architecture Supports amd64 Architecture Supports armhf Architecture Supports armv7 Architecture Supports i386 Architecture

About
Duck DNS is a free service that points a DNS (sub-domains of duckdns.org) to an IP of your choice. This add-on includes support for Let’s Encrypt and automatically creates and renews your certificates. You need to sign up for a Duck DNS account before using this add-on.

… und wie du beschreibst ist damit ein HTTPS mit Zertifikat etabliert - Port Weiterleitung im Router aktivieren. Done.

BTW : falls CSV dem Feature Request auf MQTT Anbindung nachkommt, gibt es ggf einen universellen Weg für alle Systeme.

2 „Gefällt mir“

Danke für die Zusammenfassung!

Eine Anmerkung hierzu: Die known_devices.yaml wird in HA seit vielen Versionen nicht mehr wirklich unterstützt. Der offiziell unterstützte Weg wäre, die Daten aus CSV über einen MQTT Broker an HA zu senden, bspw. mit NodeRed - bis CSV das selbst integriert.

Man kann die known_devices.yaml offenbar auch einfach weglassen, die Automation erstellt selbstständig die entsprechende Entität.

1 „Gefällt mir“

Ich hab Respekt für den Aufwand, den Du hier betreibst, aber zwei Voraussetzungen für die Nutzung sind mir einfach zuviel:

  • Car Stats Viewer
  • die Öffnung der Home Assistant Installation ins Internet.

Polestar soll einfach eine API anbieten, die man pollen kann, analog zu Volvo On-Call oder BMW Connected Drive.

2 „Gefällt mir“

Da stimme ich bei der Forderung zum API seitens Polestar voll zu! Verstehe dein Statement komplett.

HTTPS habe ich schon länger aktiviert, egal ob über den HomeAssistant Cloud Service oder selbst mit DuckDNS.

Hintergrund - nur ein einziger (mein eigener) sicherer Zugang - kein Apple HomeKit, kein Google, kein Amazon oder andere Services mehr.

CSV war erst nur zum rein schnuppern in die Live Daten vom PS2; jetzt halt aufgebohrt.

ok, habe ich nicht beachtet. Hatte schonmal ein Tracker Objekt benutzt und war nicht sicher. Wenn es von der Automation selbst angelegt wird, umso besser!

BTW: selbst der zweite Teil meiner Implementierung ist offensichtlich auch „zu kompliziert“.
Siehe Edit oben; teste gerade die einfachere Implementierung.
Werde berichten - update oben eingepflegt - ist jetzt ok für mich.

Sieht zum Beispiel so aus … Map verkleinert wegen ihr wisst schon.

Irgend eine API muss es wohl geben, denn Tibber (Dein Stromvertrag für das digitale Zeitalter ⚡️ Tibber) kann sowohl den SoC als auch Infos über das Auto abrufen. Wie man dran kommt? Kein Plan…

Super Lösung, vielen Dank dafür.
Jetzt warte ich sehnsüchtig auf meine Einladung in einen Testtrack für CSV.

1 „Gefällt mir“

Wir könnten vielleicht jemanden bei Tibber oder Polestar einschleusen, der die API-Definitionen durchsteckt. Gibt es freiwillige Praktikanten?

Mit der webhookrelay-integration kann man die Daten relativ simpel über CSV in Node-Red empfangen.

Ich habe nun eher das Problem die Werte aus dem json zu extrahieren um z.B. in eine Datenbank zu schreiben. Kennt sich damit jemand aus?

EDIT: Nach anfänglicher Begeisterung muss ich soeben feststellen, dass die freie Lösung auf 150 Aufrufe pro Monat begrenzt ist. Somit ist das Limit leider schnell erreicht. Schade.

1 „Gefällt mir“

Ich hab das nun so gelöst, dass CSV die Daten an einen Home-Assistant-Webhook sendet (da der ohnehin schon exposed und SSL-gesichert ist). Der Webhook schickt die Daten dann per MQTT an NodeRed, da ich hier zentral meine MQTT-Geräte verwalte. Dort werden dann die relevanten Infos extrahiert und wieder als MQTT-Topic an HA gesendet.

Könntest du exemplarisch zeigen wie die extract Funktionen bei dir aussehen?

Die sind sehr einfach gehalten bisher.
Extract Location:

msg.payload = {
    "longitude": msg.payload.lon,
    "latitude": msg.payload.lat,
    "battery_level": msg.payload.stateOfCharge
}

return msg;

Extract state:

let status = "unavailable";

if (msg.payload.isParked) {
    status = "geparkt";
} else if (msg.payload.isCharging) {
    status = "lädt";
} else if (msg.payload.chargePortConnected) {
    status = "eingesteckt"
} else if (msg.payload.driveState !== 2) {
    status = "fährt";
}

msg.payload = status;

return msg;
1 „Gefällt mir“

Das heißt aber, du hast ports nach außen offen? Also incoming?

Ports sind im Router keine offen, ich verwende Cloudflared. Das ist die wohl sicherste Variante, eine HA-Instanz extern verfügbar zu machen, wenn man seine Blockregeln vernünftig einstellt.

1 „Gefällt mir“

Wie bestimmt Ihr wann die Ladung enden soll?
Beispiel:
Komme mit 30% SOC nach hause. Habe den Wert über CSV in Home Assistant.
Möchte gerne bis 70% laden.

Habt Ihr da eine Automation ?

Ich habe mir folgendes gedacht:

  • Einen Helper mit gewünschten SOC (A) nach ladung
  • SOC (B) von CSV bei starten der Ladung
    -100% = 78kWh Batterikapazitet

Müsst eine Formel erstellen die A-B errechent. Denn habe ich wieviel % ich laden muss.
Jeder Prozent laden entspricht 0,78kWh.
Somit könnte ich aus meiner Wallbox Commander die eingespeisten kWh auslesen und bei erreichen vom (A-B)*0,78 die Ladung Pausen/Abschalten.
Am besten noch ein bisschen mehr laden wegen ladeverlust etc.
Vieleicht (A-B)*0,85 dann bin ich auf der sicheren Seite.

Wie jedoch kann ich eine mathematische Funktion in Home Assistant machen die dies berechnet?
Eine Automation oder in Node Red?

Kan mir jemand weiterhelfen?

Ich rechne stumpf ganze 12 Prozentpunkte pro Stunde am 11kW Charger. Das kommt immer ganz gut hin bis ca 90% SOC. Drüber passt es natürlich nicht mehr als lineare Formel.

Danke für die Info.
Da ich von der Wallbox den Wert habe wie viele kWh ins Auto eingespeist wurden wollte ich den Wert nutzen, da mein Wallbox den Strom aufgrund der übrigen verbraucher im Haus regelt. Hier in Schweden haben wie leider nur 25A Sicherungen als Hauptsicherungen im Haus.
Mit dem Wert wie viele kWh geladen wurden kann ich unabhängih vom Ladestrom die Ladung überwachen.

Ich nehme mir einfach das letzte kommunizierte batteryLevel (in Wh) aus der JSON von CSV und speichere zeitgleich den aktuellen Zählerstand der Wallbox. Dann wird bei jeder Änderung des Zählerstands die seit dem Start der Ladesession geladene Energie in einer neuen Variable auf das initiale batteryLevel draufaddiert (muss natürlich evtl. umgerechnet werden).
Parallel wird bei jeder Änderung des batteryLevel der SoC neu berechnet (mithilfe des maxBatteryLevel) und beim gewünschten Ziel-SoC das Laden beendet.

Die meisten Wallboxen sollten einen Energiezähler für die aktuelle Ladesession haben, der sich meistens häufiger aktualisiert als der Gesamtzähler über die Lebenszeit der WB - dieser eignet sich dann natürlich besser.

Ich nehme die 75kWh, davon 10% ladeverlust und errechne mir so, die gewünschten % , die ich gerne im Akku reinladen möchte.

10% mehr akku: 75kWh * 0,1 / 0,9 = 8,3 kWh

Die KEBA kann gezielt energie laden und dann aufhören, das funktioniert ganz gut so.

Meine Frau fährt auch, hat aber kein CSV, somit könnte ich mich auf den SoC nicht verlassen…

Wärst du vielleicht so nett und könntest ein paar Screenshots von Tasker und Autoinput teilen, wie du das gemacht hast oder das kurz zusammenfassen? Ich habe Tasker und bin mit einem Profil im Wagen verbunden, habe aber von Tasker keine Ahnung und was ich so online finde ist eher verwirrend als helfend.

/Edit
Würde es nicht mit HA benutzen, aber die Daten in MQTT rein zu kriegen sollte irgendwie machbar sein. Aber wie Tasker an die Infos in der Polestar App kommt, wäre hilfreich.