Anleitung Polestar SoC mittels Bash in EVCC

Ich beschreibe mal wie ich die SoC Abfrage für die EVCC Integration gemacht habe.

  1. Tibber auf einem Smartphone installieren
  2. Tibber Account erstellen - ohne Vertrag (kostenlos)
  3. Polestar bei Tibber hinzufügen
  4. Mit SSH auf das System verbinden wo EVCC läuft.
  5. Im Ordern /etc das Script „PolestarSOC.sh“ mit folgendem Inhalt erstellen

#! /bin/bash

AUTH=(curl https://app.tibber.com/login.credentials -H "Content-Type: application/json" -d '{"email":"you@provider.com","password":"secret_pw"}')

TOKEN=(echo $AUTH | grep -o '"token":"[^"]*' | grep -o '[^"]*$')

SOCJSON=curl https://app.tibber.com/v4/gql -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{ "query": "{ me { homes { electricVehicles { lastSeen battery { percent } } } }}"}'

SOC=(echo $SOCJSON | grep -o '"percent":[[:digit:]]*' | grep -o '[[:digit:]]*')

echo $SOC

Am besten die Bash von hier kopieren - Tibber - Sensor for power consumption for electric car charging - #10 by habitoti - Feature Requests - Home Assistant Community


  1. Im Script you@provider.com und secret_pw die Tibber Logindaten eingeben
  2. Script ausführbar machen mit: chmod +x /etc/PolestarSOC.sh
  3. Script kann getestet werden, mit: sh PolestarSOC.sh (Die 44 am Schluss ist der SoC)

Ausgabe:


root@EVCC:/etc# sh PolestarSOC.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 314 100 256 100 58 937 212 --:–:-- --:–:-- --:–:-- 1150
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 204 100 121 100 83 84 57 0:00:01 0:00:01 --:–:-- 141
44


  1. Script evcc.yaml erweitern mit (Der Punkt vor name: Polestar 2 muss ein Bindestrich sein):

vehicles:

image

  1. Testen mit: evcc vehicle

Ausgabe:


Polestar 2

[script] DEBUG 2023/10/05 17:12:13 /bin/sh -c /etc/PolestarSOC.sh: 44
Soc: 44%
Capacity: 75.0kWh
Features: []


  1. Fertig, jetzt sollte es funktionieren. Wenn der Polestar an der Wallbox hängt muss man in EVCC-Webseite von Gastfahrzeug auf Polestar 2 stellen.
12 Likes

Prima, gut gemacht. :+1:
Ich frage mich nur warum du die tipper App benötigst? Kannst du Dir das nicht direkt aus der wallbox ziehen?
Ich hole das bei mir direkt über API aus der zappi, schiebe es in eine influx und zeige es im Grafana Dashboard an.

Tibber wird benötigt um an den SOC des Polestar zu kommen, wüsste nicht wie das sonst geht (bzw. geht es nicht mit meiner Wallbox).

2 Likes

Möchte mal nachfragen, die (Deine) Wallbox kennt den SoC des Polestar? Wundert mich, da der IEC-62196 Standard das gar nicht hergibt.

Meine Gebäudesteuerung holt sich die Werte übrigens auch via JSON aus der Tibber-API.

Im JSON Output meiner Box ist extrem viel drin und ich war bisher der Meinung, dass der SoC auch drin ist. Ich nutze aber nicht alles, sondern nur den Energiefluss PV, Haus und Auto, sowie geladene Energie aus PV Überschuss. Wenn Du sagst, dass der SoC auf Grund des IEC nicht drin sein kann, dann will ich das nicht in Frage stellen. Es ist schon fast 2 Jahre her als ich das in die Hauststeuerung implementiert habe und wie gesagt, ich nutze den SoC nicht direkt. Man kann aber einstellen, dass das Auto morgens immer mindestens eine einstellbare Kapazität im Akku hat. Von daher bin ich davon ausgegangen, es wurde über den SoC gesteuert.

1 Like

Hallo, super Anleitung!!
Ich habe das in iobroker gelöst.
https://forum.iobroker.net/topic/67947/bastell%C3%B6sung-polestar-ladezustand-via-tibber-app-api

Zusätzlich habe ich ein Script in JS, um mir auch die Reichweite anzeigen zu lassen.
Ist zwar nur eine Rechenformel und im Winter nicht genau aber für einen ungefähren Überblick sehr behilflich :blush:

Die Datenpunkte durch eigene ersetzen,
das script unter iobroker in JS:

Viele Grüße

(meinte eigentlich den Verfasser „Ast“, habe aber „itw2000“ geantwortet, nächstes mal klappt das besser… :innocent:

Hi,
könntest Du das Skript bzgl. der Reichweite einmal teilen? Das fehlt mir aktuell noch.

vielen Dank

Hi,
das Script steht doch schon als letztes in meinem Beitrag.
Brauchst das nur kopieren und als JS in iobroker ausführen/starten.
Die Datenpunkte durch deine ersetzen, das wars :grin:

Gruß freo

async function setValueUpdate() {

    let originalValue = getState('0_userdata.0.BatteryPercent').val;

    let newValue = originalValue / 100 * 457;

    setState('0_userdata.0.odometerps', newValue, true);

}

on({id: '0_userdata.0.BatteryPercent', change: 'ne'}, setValueUpdate);

Hallo,
Du hast vollkommen Recht. Wer lesen kann, ist klar im Vorteil. Geht jetzt bei mir auch.
Vielen liegen Dank.

VG
DerMarco

Hallo,

EVCC unterstützt ab heute Polestar auch nativ über API.

Grüße

Hallo,
gerade EVCC upgedated und ausprobiert → bei mir kommt Fehler.

[main ] ERROR 2023/12/22 18:31:21 creating vehicle Polestar failed: cannot create vehicle ‚template‘: cannot create vehicle ‚polestar‘: cannot find vehicle, got: []

Hat es schon jemand am laufen?

Moin,

Ja, ich. Du hast irgendwas falsch konfiguriert in deiner yaml. Kopier sie mal hier rein…

Vorher kritische personenbezogene Daten entfernen nicht vergessen …

Grüße

Ist nur der Polestar reingekommen, läuft es bei Dir?

evcc.yaml

vehicles:

  • name: Polestar
    type: template
    template: polestar
    title: Polestar
    user: *****
    password: *****

Das war ein großes Update. Man sollte sich definitiv in das Update einlesen. Die yaml muss nämlich angepasst werden. Es gab ein paar weitgreifende Änderungen die das nötig machen.

Was deine Polestar Konfiguration in der yaml angeht, die ist unvollständig. Schau dir am besten die Beispielkonfig unter Fahrzeuge | evcc - Sonne tanken ☀️🚘 an.

Achso und ja, es läuft problemlos bei mir.

Das Problem habe ich auch, bei mir liegt es daran, dass das Fahrzeug in der List, welche mit der API angerufen wird, nicht enthalten ist.

Vermutlich weil es ein Mietfahrzeug ist.

Ich versuche das erst mal mit dem Polestar Support zu klären.

Schade, scheint nicht mehr zu funktionieren- Umstellung auf 2FA? Das war dann ja nur ein kurzes Glück- (Fehler Error 400…)
Die Abfrage über Tibber funktioniert aber noch, die Änderung wurde wohl (hoffentlich? /nur?) nach dort kommuniziert :face_with_raised_eyebrow:
Wird auch in api-zum-auslesen-der-lade-verbrauchsdaten diskutiert…
Endlich mal wieder ein neues Ratespiel auf dass es nie langweilig wird…

Schau mal hier:

Tibber benutzt vermutlich auch eine ganz andere API. Diese ist ja eigentlich für die Website von Polestar vorgesehen. Dass sowas nicht kommuniziert wird, ist da wenig überraschend.

Edit: Sehe grade, du hast den entsprechenden Link selber im Beitrag :sweat_smile:

ja, das vermute ich natürlich auch- das müsste aber wohl direkt in evcc eingebaut werden, wenn denn die API klar ist…