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

Hallo,

ich habe TeslaMate sowie TeslaSolarcharger gestern als Docker Container auf einer Synology NAS installiert.

Nach der Einrichtung habe ich den Tesla Token zuweisen lassen.

Leider kann ich aktuell noch immer nicht das Auto sehen, erhalte diese Anzeige:

Bei der Gegenprüfung unter TeslaMate sehe ich ebenfalls nur einen weißen Screen:

Habt Ihr einen Tip, was ich falsch mache bzw. vergessen habe?

Vielen Dank

@Mane123 Gibt es aktuell eigentlich schon eine (eingebaute) Option, dass der TSC zu bestimmten Zeiten inaktiv ist, z.B. nachts (bzw. zwischen z.B. Sonnenuntergang und Sonnenaufgang)? Oder ist vielleicht was in Planung? (Hab bei kurzer Suche weder hier noch bei den Issues · pkuehnel/TeslaSolarCharger · GitHub was gefunden).

Ich nutze Octopus Intelligent (nachts netzfreundlich laden und dafür einen Bonus bekommen) und wenn ich abends vergesse, den TSC zu deaktivieren, stoppt TSC die Ladevorgänge, die Octopus Intelligent initiiert.

Gerade aktuell bis zum Frühjahr wäre das aber interessant, weil Octopus Intelligent (netzfreundlich und für mich günstiger) den Wagen unabhängig vom Wetter auf einen bestimmten SoC bringt und der TSC ihn tagsüber bei ausreichend Sonnenschein noch etwas weiter vollladen könnte.

Wenn da nichts geplant ist, wäre ja noch eine De-/Aktivierung per z.B. HomeAssistant möglich.

1 „Gefällt mir“

Nutz die Steuerung per Spot-Preis + PV, was anderes macht Octopus ebenfalls nicht.
Mach den Haken bei „täglich“ rein und stell als Abfahrtsuhrzeit z.B. immer 7Uhr ein und als Ziel-SoC zu dem Zeitpunkt z.B. 80%.

Dann übernimmt TSC die Steuerung für dich und du musst Octopus kein API-Key geben.

2 „Gefällt mir“

Was macht Octopus anders als die Spot Preis Integration vom TSC?

Theoretisch nichts, aber die Steuerung muss über die Octopus App erfolgen, sonst gibt es keinen Bonus. Ohne Smartmeter sind es 10 Euro, mit 30 bei 5 Ladungen pro Monat.
Wenn TSC aktiv ist, wird die Ladung unterbrochen und Intelligent Octopus versucht es nur ein mal und gibt dann auf.
Ich habe mal stellvertretend geantwortet, denn ich bin auch ein „Betroffener“.

2 „Gefällt mir“

Das müsste man dann über Homeassistant abbilden. Sonst gibt’s aktuell keine Möglichkeit.

1 „Gefällt mir“

@twiederh hat es ja eben schon beschrieben: In der Konstellation fällt der Bonus weg, d.h. netzdienlich bleibt, aber es ist nicht günstiger.

So geht es mit Node Red:

Ich habe Node Red als Container installiert, indem ich in Portainer einen neuen Stack erstellt habe mit diesem Inhalt (Achtung: Pfad für das Verzeichnis anpassen):

################################################################################
# Node-RED Stack or Compose
################################################################################
# docker stack deploy node-red --compose-file docker-compose-node-red.yml
# docker-compose -f docker-compose-node-red.yml -p myNoderedProject up
################################################################################
version: "3.7"

services:
  node-red:
    image: nodered/node-red:latest
    environment:
      - TZ=Europe/Amsterdam
    ports:
      - "1880:1880"
    networks:
      - node-red-net
    volumes:
      - /volume1/docker/nodered:/data

volumes:
  node-red-data:

networks:
  node-red-net:

Man kann auch alternativ den Container zu Teslamate/Teslasolarcharger hinzufügen in der Konfigurationsdatei.

Dann bin ich auf die Webseite gegangen (Port 1880 auf der Maschine, auf der Node Red installiert ist), also zum Beispiel http://192.168.1.120:1880 im Browser.

Da ich das Ganze nach Sonnenstand gesteuert haben möchte, damit ich die Zeiten nicht einstellen muss, habe ich bei Einstellungen->Palette folgendes installiert: node-red-contrib-cb-suncron

Der angehangene Flow kann in Node Red importiert werden:
flows.json.zip (2,9 KB)

Angepasst werden müssen die Breiten- und Längengrade des eigenen Ortes und die IP-Adresse von TeslaSolarcharger:

Ich bin geflasht, wie einfach REST sein kann und wie mächtig.

@Mane123 Hast Du ggf. einen Tip?

Danke im Voraus.

Kann es sein, dass der teslamate die neue API noch gar nicht unterstützt?
So wie ich es verstanden habe, hat TSC bisher immer den Zugang zur Tesla API von Teslamate verwendet.
Ich glaube es gibt mittlerweile eine Beta-Einstellung, um den TSC ohne teslamate zu betreiben.
Wenn du einen neuen Tesla (ohne alte API) hast, funktioniert der Teslamate evtl gar nicht mehr…

Ich lasse mich aber gerne korrigieren, falls das nicht stimmt.

Sorry überlesen. Ist ein Bug bei TeslaMate aktuell, Neuinstallationen funktionieren wohl grade nicht, siehe

Leider kommt der TSC aktuell noch nicht ganz ohne TeslaMate aus, daher kann ich dir leider aktuell nicht helfen. Evtl mal im TeslaMate Thread nachfragen, was man bei neuen Installationen machen muss.

Edit: Falls es mit TeslaMate die nächsten zwei Wochen nicht funktioniert, werde ich es auf Prio 1 stellen ohne TeslaMate auszukommen, dann wird es funktionieren.

1 „Gefällt mir“

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“

Würde das die ganze Sache aus Anwendersicht nicht ohnehin deutlich erleichtern? Mindestens 90% der Bedenken, auf TSC zu setzen, resultierte zumindest bei mir auf der Sorge, ob ich das ganze Konstrukt (mit TeslaMate etc) aufgesetzt bekomme. Und nicht jeder hat die Chance, wegen der Einbindung eines neuen WR-Batterie-Produkts derart grandiosen Support von Dir zu erhalten wie ich.

Danke dafür! Ich war bisher zu bequem mich mit dem Thema selber zu beschäftigen. :wink:

1 „Gefällt mir“

Fluppt: Um 8:34:55 ist die Automatisierung gelaufen und hat auf PV-Only umgeschaltet.

Edit: Und um 17:40:37 wurde TSC disabled.

Vielen Dank für Deine mega Unterstützung, ich hake gern mal im anderen Thread nach.

@dmodel

weiß nicht ob Deine Frage noch aktuell ist aber bei mir läuft TSC in Verbindung mit Solaredge jetzt seit Mai ohne Probleme und ohne dass ich an irgendwelche Abfragegrenzen von der Solaredge API gestossen bin. Ich frage alle 20s die Solarleistung ab und alle 40s ist Car Power Adjustment Interval.
Das ist granular genug. Und wie gesagt das lief oft auch einen ganzen Tag durch, ohne Aussetzer. Aussetzer scheint es bei Solaredge gelegentlich in der App zu geben, die API funktionierte dann aber trotzdem.

1 „Gefällt mir“

Hallo Mane123,

Nach einem erfolgreichen Jahr mit dem TSC habe ich nun einen Wunsch/Frage zur Umsetzung.

Ich lade aktuell mit dem TSC an einem Standort und würde den TSC gerne für Tibber laden an einem anderen Standort verwenden. Geht das aktuell oder kann ich den TSC irgendwie zwei mal mit unterschiedlicher Konfiguration laufen lassen?

Danke im Voraus.

Ja kannst zwei instanzen laufen lassen, einfach nach dem ersten TSC in deiner docker-compose.yml

  teslasolarcharger2:
    image: pkuehnel/teslasolarcharger:latest
    container_name: teslasolarcharger2
    logging:
        driver: "json-file"
        options:
            max-file: "10"
            max-size: "100m"
    restart: always
    depends_on:
      - teslamateapi
    environment:
#      - Serilog__MinimumLevel__Default=Verbose #uncomment this line and recreate container with docker compose up -d for more detailed logs
      - TZ=Europe/Berlin ##You can change your Timezone here
    ports:
      - 7191:80
    volumes:
      - teslasolarcharger-configs2:/app/configs

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:
  teslasolarcharger-configs:
  teslasolarcharger-configs2:

Die gemachten Änderungen: Direkt in der ersten Zeile eine 2 dran, dann bei container_name eine zwei, beim Port die Änderunge auf 7191, beim volume die 2 und dann ganz am Ende bei den Volumes auch eins hinzufügen mit einer zwei, sodass du zwei teslasolarcharger-configs volumes hast.

1 „Gefällt mir“

Hallo,

nachdem ich bis letztes Jahr clever-pv.com fürs Überschussladen genutzt habe (kostet jetzt aber), Will ich mich jetzt an TeslaSolarCharger machen , und das in Docker auf meiner Synology NAS laufen lassen, die eh da ist.

ABER meine Hürde: WO fange ich da bei 3000 Beiträgen in diesem Thema an??
Bin IT-technisch nicht ganz fit, traue es mir aber zu, habe aber mit Docker auch noch nichts gemacht.

So eine richtige Anleitung habe ich noch nicht gefunden.
Und noch eine Frage: Habe ich in TSC auch die einfache Möglichkeit, spontan auf „BOOST“ zu schalten, aber das Überschussladen auszusetzen und einfach voll MAX zu laden?
Danke