[BETA][Modul] Smartcar

Modul für Smartcar für IP-Symcon

Dieses Modul ermöglicht, Daten von Fahrzeugen über die Smartcar-Plattform abzufragen. Erstelle ein Profil und verbinde dein Fahrzeug oder ein Testfahrzeug (Smartcar · Car-API-Plattform für vernetzte Fahrzeugdaten) Smartcar unterstützt aktuell 43 Fahrzeugmarken. Prüfe hier welche Endpunkte dein Fahrezug unterstützt. (Kompatible Fahrzeuge · Produkt · Smartcar)

Wichtig zu wissen zur Konfiguration von Smartcar

Das Modul verbindet sich über OAuth 2.0 mit der Smartcar API. Daher ist es erforderlich, eine Redirect URI in der Smartcar-Konfiguration einzutragen. Die Redirect URI ist der Pfad zum Webhook, welchen das Modul automatisch anlegt. Dieser Pfad setzt sich aus deiner Connenct-Adresse und dem Pfad des Webhook zusammen. Der Pfad der Redirect-URI wird oben im Konfigurationsformular angezeigt. Diesen hinterlegst du dann in der Konfiguration von Smartcar unter ‚REDIRECT URIS‘ Dies sieht zB so aus: https://hruw8ehwWERUOwehrWWoiuh.ipmagic.de/hook/smartcar_15583 Wenn du im Konfigurationsformular die Scopes gewählt oder geändert hast, sind diese erneut über den Button ‚Smartcar verbinden‘ bei Smartcar zu registrieren.

Aktuell sind folgende Scopes (Endpunkte) durch das Modul unterstützt:

  • „Fahrzeuginformationen lesen (/)“
  • „VIN lesen (/vin)“
  • „Standort lesen (/location)“
  • „Reifendruck lesen (/tires/pressure)“
  • „Kilometerstand lesen (/odometer)“
  • „Batteriestlevel lesen (/battery)“
  • „Batterieststatus lesen (/battery/capacity)“
  • „Motoröl lesen (/oil)“
  • „Kraftstoffstand lesen (/fuel)“
  • „Sicherheitsstatus lesen (/security)“
  • „Ladelimit lesen (/charge/limit)“
  • „Ladestatus lesen (/charge)“

Aktuell sind folgende Ansteuerungen unterstützt

  • „Ladelimit setzen (/charge/limit)“
  • „Ladestatus setzen (/charge)“
  • „Zentralverriegelung setzen (/security)“ Modul für Smartcar für IP-Symcon

Dieses Modul ermöglicht, Daten von Fahrzeugen über die Smartcar-Plattform abzufragen. Erstelle ein Profil und verbinde dein Fahrzeug oder ein Testfahrzeug (Smartcar · Car-API-Plattform für vernetzte Fahrzeugdaten) Smartcar unterstützt aktuell 43 Fahrzeugmarken. Prüfe hier welche Endpunkte dein Fahrezug unterstützt. (Kompatible Fahrzeuge · Produkt · Smartcar)

Wichtig zu wissen zur Konfiguration von Smartcar

Das Modul verbindet sich über OAuth 2.0 mit der Smartcar API. Daher ist es erforderlich, eine Redirect URI in der Smartcar-Konfiguration einzutragen. Die Redirect URI ist der Pfad zum Webhook, welchen das Modul automatisch anlegt. Dieser Pfad setzt sich aus deiner Connenct-Adresse und dem Pfad des Webhook zusammen. Der Pfad der Redirect-URI wird oben im Konfigurationsformular angezeigt. Diesen hinterlegst du dann in der Konfiguration von Smartcar unter ‚REDIRECT URIS‘ Dies sieht zB so aus: https://hruw8ehwWERUOwehrWWoiuh.ipmagic.de/hook/smartcar_15583 Wenn du im Konfigurationsformular die Scopes gewählt oder geändert hast, sind diese erneut über den Button ‚Smartcar verbinden‘ bei Smartcar zu registrieren.

Aktuell sind folgende Scopes (Endpunkte) durch das Modul unterstützt:

  • „Fahrzeuginformationen lesen (/)“
  • „VIN lesen (/vin)“
  • „Standort lesen (/location)“
  • „Reifendruck lesen (/tires/pressure)“
  • „Kilometerstand lesen (/odometer)“
  • „Batteriestlevel lesen (/battery)“
  • „Batterieststatus lesen (/battery/capacity)“
  • „Motoröl lesen (/oil)“
  • „Kraftstoffstand lesen (/fuel)“
  • „Sicherheitsstatus lesen (/security)“
  • „Ladelimit lesen (/charge/limit)“
  • „Ladestatus lesen (/charge)“

Aktuell sind folgende Ansteuerungen unterstützt

  • „Ladelimit setzen (/charge/limit)“
  • „Ladestatus setzen (/charge)“
  • „Zentralverriegelung setzen (/security)“

Inhaltsverzeichnis

  1. Funktionsumfang
  2. Voraussetzungen
  3. Software-Installation
  4. Einrichten der Instanzen in IP-Symcon
  5. Statusvariablen und Profile
  6. WebFront
  7. PHP-Befehlsreferenz
  8. Versionen

1. Funktionsumfang

  • Abfrage der ausgewählterFahrzeugdaten und ausführen verschiedener Ansteuerung am Fahrzeug.
  • Die kostenlose Version unterstützt ein Fahrzeug mit 500 API-Calls pro Monat.
  • Es gibt eine Bezahlversion für 2.99$ mit 1000 API-Calls pro Monat
  • Die Testfahrzeuge der Smartcar-Plattform sind unterstützt. Zum testen sollten diese Verwendet werden, um den API-Verbrauch des Live-Fahrzeuges zu schonen.
  • Vorsicht: Frag nur Endpunkte ab, die du wirklich brauchst, sonst ist das Guthaben schnell aufgebraucht. Lies dazu weiter unten die PHP-Befehlsreferenz
  • In der aktuellen Version dieses Moduls ist ein Fahrzeug unterstützt, für mehrere Fahrzeuge/Profile ist das Modul mehrmals anzulegen.
  • Im Smartcar-Profil können mehrere Redirct-URI’s angelegt werden, womit auch mehrere Module mit Zugriff auf dasselbe Smartcar-Konto unterstützt sind.
  • Nicht unterstützt ist ein Benutzerprofil bei einem Fahrzeug-Hersteller, wo mehrere Fahrzeuge verknüpft sind. Dies ist aber nur ein Thema, wenn mehrere Fahrzeuge desselben Herstellers gehalten werden. Hier muss dann jedes Fahrzeug auf ein anderes Profil lauten.

2. Voraussetzungen

  • IP-Symcon ab Version 7.0
  • Smartcar Profil mit einem Test-Fahrzeug oder einem Live-Fahrezug.

3. Software-Installation

  • Über den Module Store kann das Modul noch nicht installiert werden da noch beta. Es muss im Store nach dem genauen Modulnamen gesucht werden.

4. Einrichten der Instanzen in IP-Symcon

  • Unter ‚Instanz hinzufügen‘ kann das ‚Smartcar‘-Modul mithilfe des Schnellfilters gefunden werden.
  • Weitere Informationen zum Hinzufügen von Instanzen in der Dokumentation der Instanzen

Konfigurationsseite:

Name Beschreibung
Redirect-URI Das ist der Pfad zum Webhook. Dieser Pfad gehört in die Konfiguration von Smartcar unter REDIRECT URIS.
Client ID Entnimm diesen in der Konfiguration von Smartcar unter OAuth
Client Secret Entnimm diesen in der Konfiguration von Smartcar unter OAuth
Verbindungsmodus Hier definierst du, ob es sich um ein Simmuliertes oder ein Live-Fahrzeug handelt. Die Fahrzeuge verwaltest du im Dashboard von Smartcar. Es kann auch zwischen simmulierem und Live-Fahrezug gewechstelt werden, jedoch muss danach ‚Smartcar verbinden‘ erneut gewählt werden.
Berchtigungen (Scopes) Hier sind die aktuell vom Modul unterstützen Scopes zur Auswahl. Wichtig ist, dass alle angewählt werden, die später abgefragt werden, sonst werden hier keine Werte geliefert. Im Zweifelsfalle vor der Abfrage alle aktivieren. Die Variablen werden automatisch erstellt und beim Deaktivieren wieder gelöscht. Die Berechtigungen bleiben aber.
Smartcar verbinden Es öffnet siche ein Browserfenster, wo du dich mit deinen Zugangsdaten vom Fahrzeughersteller anmeldest und die gewählten Berechtigungen bei Smartcar noch genemigst. Am Anschluss erscheint eine Erfolgsmeldung und die Zugriff-Token werden über die Redirect-URI an das Modul übertragen.
Fahrzeugdaten abrufen Hier rufst du alle aktivierten Scopes ab. Sei vorsichtig bei einem Live-Fahrzeug. Fünf aktivierte Scopes ergeben 5 API-Calls. Lies hier PHP-Befehlsreferenz wie du exklusiv die gewünschten Variablen aktualisierst.

5. Statusvariablen und Profile

Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.

Statusvariablen

Es werden Variablen/Typen je nach Wahl der Scopes erstellt. Es können pro Scope mehrere Variablen erstellt werden. Beim Deaktivieren des jeweiligen Scope werden die Variablen wieder gelöscht.

Profile

Name Typ
SMCAR.Odometer Float
SMCAR.Pressure Float
SMCAR.Progress Float
SMCAR.Status String
SMCAR.Charge String

6. WebFront

Die Variablen zur Steuerung der Fahrzeugfunktion können aus der Visualisierung heraus gesteuert werden.

7. PHP-Befehlsreferenz

Hier findest du die Info, wie geziehlt (zb über einen Ablaufplan) nur bestimmte Endpunkte (Scopes) abgefragt werden, um API-Calls zu sparen. Ein Scenario wäre, dass der SOC nur bei aktiviertem Ladevorgang alle 15min über einen Ablaufplan aktualisiert wird. Beachte, dass nur im Konfigurationsformuler (Berechtigungen) freigegebene Scopes abgefragt werden können. Falls über einen Ablaufplan mehere Scopes nacheinander abgerufen werden ist ein Abstand von ca 2 Minuten empfehlensert, da Smartcar bei häufigerer Abfragefrequnz diese blockiert.

Befehl Beschreibung
SMCAR_FetchBatteryCapacity(12345); Abfrage der Batteriekapazität
SMCAR_FetchBatteryLevel(12345); Abfrage des Batterieladestand (SOC) und der Reichweite Batterie
SMCAR_FetchChargeLimit(12345); Abfrage des Ladelimits
SMCAR_FetchChargeStatus(12345); Abfrage des Ladestatus
SMCAR_FetchEngineOil(12345); Abfrage der restliche Oellebensdauer
SMCAR_FetchFuel(12345); Abfrage des Tankvolumens und der Reichweite Tank
SMCAR_FetchLocation(12345); Abfragen der GPS-Koordinaten
SMCAR_FetchOdometer(12345); Abfragen des Kilometerstandes
SMCAR_FetchSecurity(12345); Abfrage des Verriegelungsstatus der Türen, Klappen und Fenster
SMCAR_FetchTires(12345); Abfrage des Reifendruckes
SMCAR_FetchVIN(12345); Abfrage der Fahrgestellnummer
SMCAR_FetchVehicleData(12345); Alle im Modul aktiverten Scopes abfragen. Vorsicht, es könnten sehr viele API-Calls verbraucht werden

8. Versionen

Version 2.0 (02.01.2025)

  • Code und Readme anepasst
  • Version um die Store-Kompatibilität zu erlangen

Version 1.3 (26.12.2024)

  • Timer für Token-Erneuerung auf 90 min fixiert.
  • Token wird nun zusätzlich bei jeder Konfigurationsänderung erneuert.
  • Abhandlung bei 401-Fehler (Authentication) wärend der Datenabfrage hinzugefügt, so dass der Access-Token erneuert und die Abfrage erneut ausgeführt wird.
  • Fehlerausgabe in Log aktiviert

Version 1.2 (22.12.2024)

  • Anpassungen einiger Variablennamen
  • Anpassung des Readme
  • Anpassung Modulname
  • Anpassung Konfigurationsformular
  • Einige Code Modifikationen
  • Variablenprofil für Zentralverriegelung geändert

Version 1.1 (17.12.2024)

  • Fehlermeldung BackLeftWindow und BackRightWindow behoben, Variablen hinzugefügt

Version 1.0 (15.12.2024)

  • Initiale Version
1 „Gefällt mir“

Bei meinem Spring hat es sofort funktioniert. Ich kann das Modul leider nicht verwenden. Das liegt aber nicht am Modul, sondern an einer Besonderheit. Der Spring schläft irgendwann ein und wenn z.b. in der Nacht geladen werden soll, dann ignoriert er den ankommenden Strom von der Wallbox. Er muss vorher aufgeweckt werden. Das mache ich, indem die Vorklimatisierung aktiviert wird. Ich verwende dazu das Renault Modul. Dort kann ich das. Bei Smartcar wird das leider nicht unterstützt. Ansonsten kommen alle Werte. Gratuliere.

1 „Gefällt mir“

Kannst du mal kurz erläutern, wie man ein Fahrzeug bei Smartcar einbindet?

Habs zum Laufen bekommen. Leider fehlen ausgerechnet die Batterieinformation beim Hyundai Kona.

Würde ja gerne helfen testen, aber wo ist der Modul Code?
Muss ich den über Module und Github einbinden. Falls ja, wie lautet die URL?

Du kannst im Symcon Store nach Smartcar suchen…

Wenn du einen Hybriden hast, dann ist dies tatsächlich nicht unterstützt. Elektrische sollte funktionieren…

Passt. Danke. Bin schon dran…

Hallo Stefan,

wie in dem anderen threat geschrieben, Wechsel ich hier hin.
Ich konnte alles super einrichten. Ich habe seit einer Woche einen BMW 530e und frage aktuell alles ab, wobei ich eine Meldung bekomme das der Status der einzelnen Fenster nicht geht, sowie das Motoröl kann wohl nicht abgefragt werden. Ansonsten ist für mich Tank, Batterie und Reichweiten interessant aber ich muss mir das genau anschauen, da ich auch gerne die Verbräuche und Kosten darstellen möchte.
Wenn du da Input wegen dem BMW haben möchtest sag mir gerne was du brauchst dann kann ich dir das gerne zur Verfügung stellen.
Viele Grüße
Dominik

Was meinst du damit?

Richtig, schau mal hier was alles gehen sollte oder nicht.
Kompatible Fahrzeuge · Produkt · Smartcar

Nach dem Einrichten hab ich im Debug folgendes:
TXT: 12/16/2024, 09:21:29 PM | GetVehicleID | Keine Fahrzeug-ID gefunden!
BMW ist aber im Smartcar Vehicles gelisted, login und alle Daten sind ok.
TXT: 12/16/2024, 09:21:29 PM | FetchVehicleData | Access Token oder Fahrzeug-ID fehlt!

Redirect -Uri bei Smartcar hinterlegt?

image
Das Fenster kommt hoch, wenn ich die Daten abrufe.

Sorry, das ich da so schwammig war :slight_smile: das hatte ich in der Tat auch in der Liste gesehen.

Danke für die Meldung.
Voll zwei Variablen vergessen :laughing:
Version 1.1 sollte das Problem beheben…
Würdest Du nochmals testen und Feedback geben.

Ja, hinterlegt und bei Smartcar verbinden komme ich ja auch auf die Freitagabe Seite. Am Schluss kommt ja dann auch die Webseite von IPS (Dein Heim ist gerade nicht erreichbar…).
Aber jetzt kommt eh nach dem Update „Undefined variable $redirectURI in…“?

Sorry, Tippfehler…
Mach mal ein Update

Das bedeutet dass was mit deiner redirectURI nicht stimmt.
Läuft dein Connect Dienst?
Wenn du im Konfigurationsfenster oben auf den Link klickst, musst du auf deinen Webhook kommen und diese Fehlermeldung im Browser erhalten .

Fehler: Kein Code erhalten.

Wenn das nicht der Fall ist, dann hast du keinen Connect Dienst oder der Hook wurde nicht angelegt…

Moin, funktioniert, es kommt keine Meldung mehr.
Vielen Dank Dir, wenn du noch was benötigst für das Modul dann gib gerne Bescheid, ich kann Dir nur leider für BMW Daten liefern :wink:
Viele Grüße
Dominik

Was muss man von Seiten des Autos machen?
Bei mir ein Mercedes V-Klasse.

Cross-Post, da es hier besser hingehört:

Habt ihr via SmartCar mal geschaut, wie aktuell die Daten von BMW über das BMW API (CarData) wirklich sind?
Hintergrund ist mein Gehversuch mit Tronity.

Es stellt sich heraus, das - wenn ich das Auto nachts lade - BMW nur alle 40 Minuten die Fahrzeugdaten wirklich aktualisiert. Tronity ruft zwar alle 2 Minuten die Daten von BMW ab (ich habe das Log), aber der SoC in der BMW API Response springt nur alle 40min. nach oben. Das taugt natürlich für eine Laderegelung nicht wirklich.

Es sieht grob so aus: BMW aktualisiert die Daten kontinuierlich, wenn das Fahrzeug sich bewegt. Aber wenn es steht und nur lädt, scheint BMW den SoC und die Ladezeiten in der App „prognostiziert“ anzuzeigen, also nicht wirklich vom Fahrzeug zu holen. Die BMW CarData API liefert aber wohl nur die zuletzt vom Fahrzeug empfangenen, ggf. somit veralteten, Daten.

Ist das bei Smartcar genauso? Basieren ja vermutlich auf derselben API…