Smart #1 API / Smart Home Integration

  • bei mir funktioniert die Automation wie folgt. Den Token erstellst selbst, der Ali-Key ist frei verfügbar


    action: rest_command.abrp

    data:

    token: # generated for each car in ABRP app

    api_key: 32b2162f-9599-4647-8139-66e9f9528370 # https://community.home-assista…errouteplanner-com/307380

    utc: "{{ as_timestamp(states('sensor.smart_letztes_daten_update')) | int }}"

    soc: >-

    {{ states('sensor.smart_batterie', rounded=False, with_unit=False) |

    default('') }}

    soh: 100

    power: >

    {% if states('sensor.smart_ladeleistung', rounded=False, with_unit=False) |

    default(0) | float > 0 %}

    -{{ states('sensor.smart_ladeleistung', rounded=False, with_unit=False) | int / 1000 }}

    {% endif %}

    speed: ""

    lat: "{{ state_attr('device_tracker.smart_none', 'latitude') | default('') }}"

    lon: "{{ state_attr('device_tracker.smart_none', 'longitude') | default('') }}"

    elevation: >-

    {{ state_attr('device_tracker.smart_none', 'altitude').value | default('')

    }}

    is_charging: >

    {% if states('sensor.smart_ladezustand') == 'charging' or

    states('sensor.smart_ladezustand') == 'DC charging' %}

    1

    {% else %}

    0

    {% endif %}

    is_dcfc: |

    {% if states('sensor.smart_ladezustand') == 'DC charging' %}

    1

    {% else %}

    0

    {% endif %}

    is_parked: "{{ states('sensor.smart_electric_park_brake_status') | default(0) }}"

    ext_temp: >-

    {{ states('sensor.smart_aussentemperatur', rounded=False, with_unit=False) |

    default('') }}

    odometer: >-

    {{ states('sensor.smart_kilometerstand', rounded=False, with_unit=False) |

    default('') }}

    est_battery_range: >-

    {{ states('sensor.smart_reichweite', rounded=False, with_unit=False) |

    default('') }}

    09.2020 - 06.2023 > T-Roc Sport 1.5 DSG

    06.2023 - 09.2024 > Tesla Model 3

    09.2024 - 09.2026 > Smart#1 Brabus Laser Red / Bridgestone Turanza AllSeason 6 / SW 1.4.1 - 1.5

  • Bei ABRP kommt bei meiner Installation auch noch nichts an. Leider.


    Mit der Fehlermeldung, die beim Abarbeiten des Scripts bei mir auftritt, kann ich leider nichts anfangen.


    Gerade habe ich realisiert, daß norbgi ‘s Skript deutschsprachige Entitäten verwendet, bei mir sind es die englischsprachigen aus GitHub.


    Das dürfte die Ursache sein, warum es bei mir mit dem Senden der Daten an ABRP noch nicht funktioniert. :S


    Darum eben noch die englischen durch die deutschen Entitäten ersetzt, und schwupps, schon läuft die Automation ohne Fehler durch. :love:

    Danke an norbgi für das Posten deines Automationsscripts. :thumbup:


    Ob ABRP nun die Daten dauerhaft empfängt, werde ich morgen auf dem Weg in die Arbeit sehen.

    #1 Pulse 05/24-, 19tkm

    Corsa-e 11/20-, 19.8kWh/100km, 54tkm

    AMP+-ERA-e 02/18-05/24, 19.2kWh/100km, 197tkm

    Zoe Q210 08/16-02/18, 20.2kWh/100km, 54tkm

    5 Mal editiert, zuletzt von TomTomZoe ()

  • Interessanter Hinweis, dass dabei die Historie erhalten bleibt. Weißt du noch, ob du Home Assistant zwischen dem Löschen und neu hinzufügen der Smart-Integration neu gestartet hattest? Dann würde ich das auch mal probieren, um so die alten Entitäten los zu werden.

    Hallo, ich hab keinen Neustart von HA gemacht.

  • Darum eben noch die englischen durch die deutschen Entitäten ersetzt, und schwupps, schon läuft die Automation ohne Fehler durch. :love:

    Heute nach der ersten längeren Fahrt habe ich festgestellt, daß die HA Daten zwar jetzt regelmäßig an ABRP gesendet werden, ABRP diese aber nicht als eine einzige Gesamtstrecke, sondern sie in 0, 1 oder 2 Minuten langen Teilstrecken darstellt:


    IMG_7253.jpeg


    Woran könnte das liegen? :/


    Ich habe heute bewußt nicht gleichzeitig auch noch die Hello # App laufen lassen, damit die Daten für ABRP nur aus einer und nicht aus zwei unterschiedlichen Quellen kommen.

    #1 Pulse 05/24-, 19tkm

    Corsa-e 11/20-, 19.8kWh/100km, 54tkm

    AMP+-ERA-e 02/18-05/24, 19.2kWh/100km, 197tkm

    Zoe Q210 08/16-02/18, 20.2kWh/100km, 54tkm

  • Hi,


    ich habe die HA-Integration + Integration in ABRP soweit erfolgreich in Betrieb genommen. Leider gibt's ein paar Dinge, die einerseits nicht "ab Werk" funktioniert haben und eins, das überhaupt nicht funktioniert.


    Zuerst mal erstere:


    - Das YAML-File für die Aktion musste ich an die deutschen Bezeichnungen der Entitäten anpassen (wobei einige englisch bleiben). Beispiel: sensor.smart_battery -> sensor.smart_batterie

    - Die Ladeleistung wurde durch das Teilen durch 1000 falsch übertragen, ich habe dabei auch die Rundung ein- und das Datenformat auf float umgeschaltet:


    power: > {% if states('sensor.smart_ladeleistung', rounded=False, with_unit=False) | default(0) | float > 0 %}

    -{{ states('sensor.smart_ladeleistung', rounded=True, with_unit=False) | float }}
    {% endif %}


    Dann zeigt ABRP auch die korrekte Ladeleistung in kW auf eine Nachkommastelle genau an


    Nun das echte Problem: Wenn ich das Fahrzeug lade, läuft alles perfekt: ABRP kriegt alle 30 Sekunden die aktuelle Leistung und den aktuellen SOC usw..


    Aber: Nach Beenden des Ladens kriegt die Integration offensichtlich die Motten und macht gar nichts mehr, auch das Widget in HA bleibt im Ladezustand hängen:


    pasted-from-clipboard.png


    Abgesehen davon war die letzte Änderung vor 46 Minuten, nicht vor einer Stunde.

    Wenn ich dann in den Einstellungen der Integration beispielsweise das "Scan-Intervall" ändere und speichere, zieht sich's wieder gerade. Für unterwegs ist das leider kein schöner Workaround.

    Irgendwelche Ideen? Mach ich was falsch?

  • Ich habe das Gefrickel in HA beendet und verwende nur noch Pump. Die livedaten sind in der App schon vorhanden und die Ladeprognose auf 620 km von Köln nach Berlin weicht nur 2-3 % vom SoC ab, so dass keine Neuberechnung erfolgt. Um aber alle Möglichkeiten ausschöpfen zu können sollte man wie bei ABRP die Premium für 5€ mtl. nehmen. Die Daten des #1 in HA zu haben ist schon praktisch wegen der Historie.

    04.10.2023. Bestellung Premium black touch MB Köln

    05.12.2023 Zulassung durch MB Köln

    29.12.2023 Übergabe

    Carlinkit AI MAX erfolgreich mit Amaon Prime, Netflix, IPTV, Chrome usw. mit Smart#1

    EVCC Überschussladen dank marco79cgn mit go-e Gemini V4 und Home Assistant HA dank DasBasti

  • - Die Ladeleistung wurde durch das Teilen durch 1000 falsch übertragen, ich habe dabei auch die Rundung ein- und das Datenformat auf float umgeschaltet:

    Ich habe bei mir mal in der Historie geschaut: die Ladeleistung ist originär in W angegeben. Insofern ABRP also eine Angabe in kW erwartet, ist das Teilen durch 1000 entsprechend richtig und nötig. Hast du möglicherweise im Info-Dialog der Entität die Einheit von W auf kW geändert? Dann rechnet er in der UI es überall um und es würde mich nicht wundern, wenn dies dann auch im Template der Fall wäre - das würde dann erklären, weshalb bei dir die Umrechnung nicht nötig ist.

    Nun das echte Problem: Wenn ich das Fahrzeug lade, läuft alles perfekt: ABRP kriegt alle 30 Sekunden die aktuelle Leistung und den aktuellen SOC usw..


    Aber: Nach Beenden des Ladens kriegt die Integration offensichtlich die Motten und macht gar nichts mehr, auch das Widget in HA bleibt im Ladezustand hängen:


    Hier ist zunächst wichtig, herauszubekommen, wie häufig die Werte in Home Assistant aktualisiert werden. Der Trigger der die Automation auslöst, welche die Daten dann an ABRP sendet, ist laut Doku folgende Entität:


    • sensor.smart_last_update

    Allerdings gibt es diese bei mir gar nicht - bei mir lautet diese scheinbar:


    • sensor.smart_letztes_daten_update

    Offenbar eine Folge der unvollständigen Übersetzung. Ist nicht dramatisch, aber stellt natürlich eine zusätzliche Hürde dar, wie du selbst ja auch schon beschrieben hast.


    Schau daher zunächst mal, wie häufig sich der Wert dieser Entität aktualisiert. Und dann schau bitte auch mal, wie häufig sich die Entitäten aktualisieren, die an ABRP übermittelt werden. In Home Assistant gibt es nämlich eine Besonderheit: wird ein Wert empfangen, der identisch zum bisherigen ist, wird dieser üblicherweise ignoriert und löst keinen Zustandswechsel aus. Möglicherweise wäre es daher einen Versuch wert, statt der zentralen Update-Entität eine der Entitäten als Trigger zu verwenden, die auch als Wert an ABRP gesendet werden, insofern diese häufiger aktualisiert werden.


    Auch könnte man statt eines State-Triggers (Zustand der Update-Entität) einen zeitlichen Trigger verwenden, der einfach pauschal alle x Minuten die Werte an ABRP meldet. Nützt natürlich wenig, wenn die Entitäten schon nicht aktualisiert werden. Daher erstmal schauen, wie oben beschrieben.


    In meinem Fall scheint es so zu sein: wenn das Auto geladen wird, erhalte ich stündlich** ein Update über die API an Home-Assistant bei einem Standard Scan-Interval von 300 (vermutlich in Sekunden und entsprechend 5 Minuten). Wenn das Auto aber abgeschlossen einfach nur rumsteht, können das auch schon mal 13 Stunden oder mehr sein, seit dem letzten Daten-Update. Dann spielt es sicherlich eine Rolle, ob das Auto benutzt wird, ob Türen geöffnet werden usw. halt alles, was das Auto aus dem Tiefschlaf holt, hat potentiell Einfluss darauf, wie häufig die Werte über die API aktualisiert werden.


    Nun gibt es diverse Integrationen bei denen das Scan-Interval bereits schon wieder als obsolet gilt und es ist fraglich, ob es für die Smart-Integration überhaupt (noch) oder in dem erwarteten Maß funktioniert. Was du stattdessen machen kannst: eine Automation, die nach einem von dir festgelegten Intervall die Daten abruft, indem die update_entity-Aktion ausgelöst wird. In der kommenden Home-Assistant-Version ist dies bspw. für die Integration von Synology DSM der Fall und die Alternative (manuelles Polling per Automation) ist hier im ersten Beitrag verlinkt:


    Remove scan interval option from Synology DSM by mib1185 · Pull Request #138490 · home-assistant/core
    Breaking change The scan interval option has been removed and the default of 15 minutes is used. There is an integration independent and common way available…
    github.com


    Also auch das wäre ein Ansatz, den man versuchen könnte, aber auch der nützt natürlich nichts, wenn Smart die Daten nur sporadisch über die API bereitstellt. Sollte sich letzteres als Ursache herausstellen, wäre der Ansatz, den die alternativen Smartphone-Apps verfolgen, einen Versuch wert: zyklisch ein Aufwachsignal an das Auto senden, z.B. "Sitzheizung abschalten". Aber Vorsicht: beschwere dich dann nicht, wenn das Auto dann nicht mehr in den Tiefschlaf geht und die Batterie ständig leer ist oder der Popo friert ;) - also kein genereller Ansatz, aber gekoppelt an eine Bedingung, wie "Auto ist aufgeschlossen" oder "Motor ist an" oder "device_tracker is not at_home" oder dergleichen ggf. doch brauchbar.


    **edit: das ist nicht korrekt. Mein letztes Mal Laden des Autos ist länger als 7 Tage her und damit sehe ich in Home-Assistant nur die Daten aus der Long-Term-Statistik, die auf stündliche Granularität verdichtet. Wie häufig es also tatsächlich ist, kann ich aktuell gar nicht sagen - gut möglich dass es dann auch 5 Minuten wären.

    #3 BRABUS | Laser Red Metallic + Eclipse Black | Continental AllSeasonContact 2

    iOS und CarPlay-Nutzer, Wenigfahrer, Smarthome-Enthusiast

    3 Mal editiert, zuletzt von Kanecaine ()

  • Danke für die ausführliche Rückmeldung.


    Das Problem war wie gesagt nicht die ABRP-Integration, sondern die Smart-Integration.


    Denn bis zum Ladeende hat alles perfekt funktioniert.


    Jetzt habe ich HA mal komplett neu gestartet und das letzte Laden wurde einwandfrei beendet und HA und ABRP haben den korrekten Status.


    Muss ich mal weiter beobachten, ausgerechnet morgen fahre ich in den Urlaub und habe deshalb extra die HA-Cloud abonniert, damit ich im Zweifelsfall HA von der Ferne neustarten kann (VPN geht nicht, weil die Trottel von Vodafone vor Ewigkeiten eine fehlerhafte Software auf die FritzBox geschoben haben, wo das VPN nicht funktioniert und die korrigierte Version kriegt man vermutlich wie gehabt 3 Jahre später...).

  • Dann hab erstmal einen schönen Urlaub! 8)


    Ich muss sagen, dass mir die Update-Intervalle bisher nicht wichtig waren. Um den Kilometerstand und Reifendruck im Blick zu haben, reicht mir auch 1 mal täglich. Ist mit ABRP-Anbindung natürlich was anderes. Gut möglich, dass die API nach Ladeende seltener Daten sendet. Du hast das Abfrage-Intervall in Home-Assistant auf 30 Sekunden eingestellt?

    #3 BRABUS | Laser Red Metallic + Eclipse Black | Continental AllSeasonContact 2

    iOS und CarPlay-Nutzer, Wenigfahrer, Smarthome-Enthusiast

  • Wer sein Dashboard aufhübschen möchte, dem kann ich übrigens die https://ngocjohn.is-a.dev/vehicle-status-card/ wärmstens empfehlen.


    pasted-from-clipboard.png

    06.12.23: Bestellung #3 25th Anniversary
    01.03.24: Wunsch-Termin (Kunzmann Aschaffenburg)
    01.03.24: Abgeholt #3 💓(Video der Übergabe)
    13.03.24: Umweltbonus-PDF von Smart erhalten und abgeschickt
    30.04.24: 3.000 € erhalten🤑
    01.10.24: 10.000 km (15,2 kWh) 💪
    15.10.24: OTA 1.5.0
    01.03.25: OTA 1.5.2

    ☀️ 7,6 kWp PV - 🔋5 kWh Akku - 🚗 Wallbox (alles Huawei)