Jetzt muss ich ja HomeAssistant nachliefern
.
Ist aber nur ein Prototyp zum Testen und nur für carId=1 …
- Es werden dabei die bestehenden Werte aus TSC übernommen und nur der ChargeMode geändert.
- Es wird nicht kontrolliert, ob TSC gerade eine Ladung steuert!
- Für
raspberrypi.fritz.boxmüsstet ihr euren Rechnernamen eintragen, auf dem TSC läuft
In der configuration.yaml:
Jeweils das JSON-Datapaket zum de-/aktivieren alle 10s (oder wie gewünscht) erzeugen, um die aktuellen TSC-Werte zu übernehmen
rest:
- resource: http://raspberrypi.fritz.box:7190/api/Index/GetCarBaseSettingsOfEnabledCars
scan_interval: 10
# Chargemodes
# 0 MaxPower,
# 1 PvOnly,
# 2 PvAndMinSoc,
# 3 SpotPrice,
# 4 DoNothing,
sensor:
# TSC Car Base Settings (incl. ChargeMode)
- name: "TSC Car 1 Disabled"
unique_id: "tsc_car1_disabled"
value_template: >
{ "carId": 1, "chargeMode": 4, "minimumStateOfCharge": {{ value_json['1']['minimumStateOfCharge'] }},
"latestTimeToReachStateOfCharge": "{{ value_json['1']['latestTimeToReachStateOfCharge'] }}",
"ignoreLatestTimeToReachSocDate": "{{ value_json['1']['ignoreLatestTimeToReachSocDate'] }}" }
- name: "TSC Car 1 PVonly"
unique_id: "tsc_car1_PVonly"
value_template: >
{ "carId": 1, "chargeMode": 1, "minimumStateOfCharge": {{ value_json['1']['minimumStateOfCharge'] }},
"latestTimeToReachStateOfCharge": "{{ value_json['1']['latestTimeToReachStateOfCharge'] }}",
"ignoreLatestTimeToReachSocDate": "{{ value_json['1']['ignoreLatestTimeToReachSocDate'] }}" }
- Ließe sich so auch für die anderen Modi erweitern, aber dann vielleicht insgesamt etwas hübscher.
Dann den REST-Aufruf für `UpdateCarBaseSettings` für Disabled und PV-Only hinterlegen
rest_command:
tsc_disabled:
url: "http://raspberrypi.fritz.box:7190/api/Index/UpdateCarBaseSettings"
method: POST
payload: "{{ states('sensor.tsc_car_1_disabled') }}"
content_type: "application/json"
tsc_pvonly:
url: "http://raspberrypi.fritz.box:7190/api/Index/UpdateCarBaseSettings"
method: POST
payload: "{{ states('sensor.tsc_car_1_pvonly') }}"
content_type: "application/json"
Und dann in der UI:
Eine Automatisierung anlegen, die jeweils ungefähr zum Sonnenaufgang bzw. -untergang den Modus umschaltet
- YAML einkopieren, dann auf UI-Modus umschalten
alias: TSC ein- und ausschalten
description: Soll nur tagsüber laufen
trigger:
- platform: sun
event: sunrise
offset: "00:30"
id: PV aktiv
- platform: sun
event: sunset
offset: "00:30"
id: PV inaktiv
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- PV inaktiv
sequence:
- service: rest_command.tsc_disabled
data: {}
- conditions:
- condition: trigger
id:
- PV aktiv
sequence:
- service: rest_command.tsc_pvonly
data: {}
mode: single
Die Automatisierung kann man dann gemütlich in der UI an die eigenen Bedürfnisse anpassen. Aktuell ist der Offset bewusst nur in eine Richtung versetzt.
Prinzipiell sollte es so laufen und morgen sehe ich, ob es automatisch auch richtig läuft.