-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ladestand der Tesla Powerwall 2 wird falsch angezeigt / Incorrect value of battery_level #2528
Comments
Wie kann die "Notreserve" ermittelt werden? Hart auf 5% zu setzen macht keinen Sinn. |
Ich bin leider noch nicht dahintergekommen, ob und wie die "Notreserve" ausgelesen werden kann, ein fixer Wert in der Berechnung macht natürlich keinen Sinn. |
Hi, sorry I only know English. I am currently using the below template sensor to get a more precise value. template:
- sensor:
- name: Powerwall Charge Actual
unique_id: powerwall_charge_actual
state_class: measurement
unit_of_measurement: '%'
device_class: battery
state: "{{ (((95 / 91) * (states('sensor.powerwall_charge') | float - 9)) + 5) | round }}" I don't know what `sensor.powerwall_backup_reserve` does either. The value stays at `24` for me. I presume it is taken from the below setting from the Tesla App: However, the value in the Tesla app shows |
Für den Ladestand (battery_level) der Tesla Powerwall 2 wird in openWB ein falscher Wert angezeigt, z. B. 9%, obwohldie Tesla-App 5% angibt.
Grund scheint die Notreserve in der Powerwall 2 zu sein, die für den battery_level nicht berücksichtigt wurde.
Problembeschreibung und Lösung unter home-assistant/core#82297.
Der korrigierte Wert für den battery_level_neu müsste demnach unter Berücksichtigung der Notreserve n wie folgt aus battery_level abgeleitet werden:
battery_level bei 100% Batteriespeicher sollte einen battery_level_neu von 100 ergeben;
battery_level bei Füllstand "Notreserve" sollte n ergeben (liegt aber Stand jetzt darüber).
Mit der Zwei-Punkte-Form für lineare Gleichungen ergibt sich folgende Funktion für den korrigierten battery_level f(x) in Abhängigkeit von dem (falschen) battery_level x:
Voraussetzung: Wir kennen den battery_level, der reported wird, wenn der Batteriespeicher einen Füllstand n hat.
Wir wissen, dass ein Füllstand von 100 korrekt reported wird.
P1 ( battery_level | n), P2 (100 | 100) ,
f(x) = (100 - n) / (100 - battery_level) * (x - battery_level) + n
Beispiel: beim Füllstand "Notreserve 5%" wird in der Tesla-App ein battery_level von 9 ausgegeben.
Dann ergibt folgende Funktion zur Herleitung des korrigierten battery_levels f(x):
f(x) = (100-5)/(100-9) * (x-9) + 5 = 95/91 * (x-9) + 5
Test:
für x=100:
f(x) = 95/91 * (100-9) + 5 = 100
für x=9:
f(x) = 95/91 * (9-9) + 5 = 5
battery_level
):lauten (der Term kann sicher noch vereinfacht werden):
battery_level = (100 * ((battery_level / 100.0) - (0.05))) / (0.95)
The text was updated successfully, but these errors were encountered: