TeslaSolarCharger - PV-Überschussladen mit beliebiger Wallbox (Teil 1)

Jetzt muss ich ja HomeAssistant nachliefern :joy:.
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.box mü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.

4 „Gefällt mir“