NEWS
Adapter für MG iSmart MG Motors Fahrzeuge
-
@c1olli Bei mir kommt demnächst der MG4 und ich bin daran interessiert diese Daten zwecks Automatisierung in ioBroker zu nutzen. Gibt es irgendwo eine Anleitung um das zu installieren und einzurichten, so dass ich die Datenpunkte in IOBroker habe? Mit Adapter bekomme ich so ziemlich alles hin, nur hier gibt es (noch) keine Adapter
VG
Andreas -
@ag21368
Hier gibt es genügend Lesestoff und Anleitungen.
Im Prinzip musst Du nur den Gateway zum Laufen bringen, dort wird auch die Adresse zum Mqtt Broker abgefragt und die Punkte dann auch automatisch angelegt, wenn die Verbindung steht. -
@c1olli said in Adapter für MG iSmart MG Motors Fahrzeuge:
ich den Gateway tagsüber per Cron stündlich neu.
Hi, ich besitze seit kurzem einen MG 4 Trophy Extended Range. Habe SAIC-JAVA-MQTT-GATEWAY als Docker Container installiert und über MQTT in ioBroker eingebunden. Hat erst mal funktioniert und die Datenpunkte mit Werten gefüllt.
Sie aktualisieren sich aber nicht mehr. Nur Events wie "Motor eingeschaltet" werden gesendet. Deshalb startest du wahrscheinlich das Gateway stündlich neu. Warum genau ist das so und warum nur 1x pro Stunde aktualisieren?
Kannst du bitte die Kommandos posten, wie der Cronjob eingerichtet wird? -
@oranggila
Cronjob einfach nach Anleitung z.B https://raspberry.tips/raspberrypi-einsteiger/cronjob-auf-dem-raspberry-pi-einrichtenBei mir stündlich zwischen 8 und 22 Uhr,
oder ganz anders
https://www.goingelectric.de/forum/viewtopic.php?f=612&t=81635&start=630 -
@c1olli Ich meinte nicht grundsätzlich, wie man Cronjobs einrichtet, sondern wie der Pfad zum Gateway Service im Docker heißt, den man im Crontab eintragen muss.
Zu "ganz anders" meinst du aus dem Beitrag, dass man "force" an das Topic refresh/mode/set sendet? Aber wenn das Gateway nicht aktiv ist, dann lauscht es doch auch nicht auf dieses Topic. Ich versteh die Hintergründe noch nicht ganz. -
-
@c1olli Das funktioniert. Docker Container startet stündlich neu. Trotzdem stoppt die Datenlieferung über MQTT immer wieder. Heute z.B. Laden gestartet 7:30 Uhr und Datenpunkte wurden im ioBroker wunderbar gefüllt bis 11:50. Dann habe ich über die iSMART App reingeschaut, um Werte zu vergleichen und mich von der App wieder abgemeldet. Seit dem kommen keine Daten mehr rein. Bin auch zwischendurch gefahren und lade jetzt wieder. SOC und alle anderen Werte zu drivetrain Topic werden aber nicht mehr aktualisiert , auch nach manuellem Neustart des Containers nicht.
Hab auch mit MQTT Explorer geprüft, da kommt auch nix mehr rein.Im Gateway Log steht:
2023-11-14 15:20:07:438 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got message for topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/mode/set: periodic 2023-11-14 15:20:07:475 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got message for topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/mode/set: periodic Exception in thread "Thread-5" java.lang.NullPointerException at net.heberling.ismart.mqtt.SaicMqttGateway$2.lambda$messageArrived$0(SaicMqttGateway.java:219) at java.base/java.lang.Thread.run(Unknown Source) Exception in thread "Thread-6" java.lang.NullPointerException at net.heberling.ismart.mqtt.SaicMqttGateway$2.lambda$messageArrived$0(SaicMqttGateway.java:219) at java.base/java.lang.Thread.run(Unknown Source) 2023-11-14 15:20:10:006 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got message for topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/mode/set: periodic Exception in thread "Thread-7" java.lang.NullPointerException at net.heberling.ismart.mqtt.SaicMqttGateway$2.lambda$messageArrived$0(SaicMqttGateway.java:219) at java.base/java.lang.Thread.run(Unknown Source) 2023-11-14 15:20:11:712 +0000 [main] INFO SaicMqttGateway - Registered for abnormal messages 2023-11-14 15:20:12:027 +0000 [main] INFO SaicMqttGateway - Registered for moving messages 2023-11-14 15:20:12:310 +0000 [main] INFO SaicMqttGateway - Registered for region messages 2023-11-14 15:20:12:589 +0000 [main] INFO SaicMqttGateway - Registered for engineStart messages 2023-11-14 15:20:12:837 +0000 [main] INFO SaicMqttGateway - Registered for startVehicleStatus messages 2023-11-14 15:20:13:060 +0000 [main] INFO SaicMqttGateway - Registered for offCar messages 2023-11-14 15:20:13:375 +0000 [main] INFO SaicMqttGateway - Registered for speeding messages 2023-11-14 15:20:13:723 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got retained config from topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/period/active: 30 2023-11-14 15:20:13:728 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got retained config from topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/period/inActive: 86400 2023-11-14 15:20:13:734 +0000 [MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got retained config from topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/period/inActiveGrace: 600
-
@oranggila
wenn Du Dich in die App einloggst, bricht die Datenübertragung ab, weil nur ein Nutzer zur Zeit angemeldet sein kann.
Normalerweise sollten dann beim Neustart des Containers wieder Daten kommen. -
@c1olli So hatte ich es auch verstanden. Das Gateway arbeitet ja auch wieder, aber bricht mit Fehler ab bei:
[MQTT Call: 784cbbc1-4bb1-43e4-8493-5b606f8c6981] INFO SaicMqttGateway - Got message for topic saic/xx@xxx.de/vehicles/xxxxxxxxx/refresh/mode/set: periodic Exception in thread "Thread-7" java.lang.NullPointerException at net.heberling.ismart.mqtt.SaicMqttGateway$2.lambda$messageArrived$0(SaicMqttGateway.java:219) at java.base/java.lang.Thread.run(Unknown Source)
Soll ich den Fehler über Github melden oder erst mal im GoingElectric Forum?
-
Ich habe mir die Situation mal angeschaut leider lässt sich kein Adapter für ioBroker erstellen. Da es keine Implementierung von ASN.1 PER für nodeJS gibt.
Man hat zur Zeit nur die Möglichkeit die python tools anzusteuern oder den mqtt im docker laufen zu lassen.
Bzw HomeAssistant zu verwenden. -
Moin,
ich habe das saic-python-mqtt-gateway bei mir als Docker laufen und mit dem MQTT Broker (Server/Broker) verbunden.
Es kommen auch sehr viele Werte rein...soweit so gut.Nun möchte ich aber eigentlich da drüber die Heizung anschalten.
Naiv wie ich bin, dachte ich mir das ich nur unter
mqtt.0.saic........climate.remoteClimateState den Wert auf "front" setze. Nur da tut sich nichts, der bleibt rot.
In der Doku wird von
/climate/remoteClimateState/set
gesprochen. Habe ich aber nicht und kann ich auch nicht anlegen. Irgendwie sehe ich den Wald vor lauter Bäumen nicht.Kann mir jemand sagen wie das geht und u.u. auch mal die Konfig seiner MQTT Instanz dafür zeigen?
Danke
-
@skydream Es muss untergeordnet unter dem Datenpunkt der gleiche Datenpunkt mit ../set angelegt werden. Diesen kann man beschreiben. Am besten den Datenpunkt über MQTT Explorer anlegen, indem du eine Nachricht an dieses Topic schickst. Dann wird in der MQTT Instanz im ioBroker auch dieses Topic als Datenpunkt angelegt.
Sollte dann ungefähr so aussehen:
-
@oranggila Hi, ich habe nun auch den MQTT Client am laufen, jedoch kann ich die AC nicht starten. Du hast da in deinem Beispiel "front" in
set
stehen, wie kommst du auf diesen Wert? habe mit "1", "on" und auch "front" probiert, kommt aber immer folgende Fehlermeldung.
Kann ich da wo gültige Werte bekommen, oder funkt das Einschalten der AC doch nicht.Jan 15 17:37:59 mqtt-saic java[1376]: 2024-01-15 17:37:59:781 +0000 [Thread-17] ERROR VehicleHandler - Command climate/remoteClimateState failed with on. Jan 15 17:37:59 mqtt-saic java[1376]: net.heberling.ismart.mqtt.MqttGatewayException: Message may not be retained Jan 15 17:37:59 mqtt-saic java[1376]: at net.heberling.ismart.mqtt.VehicleHandler.handleMQTTCommand(VehicleHandler.java:460) Jan 15 17:37:59 mqtt-saic java[1376]: at net.heberling.ismart.mqtt.SaicMqttGateway$2.lambda$messageArrived$0(SaicMqttGateway.java:219) Jan 15 17:37:59 mqtt-saic java[1376]: at java.base/java.lang.Thread.run(Thread.java:840)
-
@johgre Steht so in der Github Doku https://github.com/SAIC-iSmart-API/saic-python-mqtt-gateway:
Ich nutze bisher nur "on" zum Einschalten der Heizung und funktioniert:
Ich nutze python Gateway. Für java Gateway soll der Befehl laut Doku https://github.com/SAIC-iSmart-API/saic-java-client/tree/main/saic-java-mqtt-gateway so lauten:
climate/remoteClimateState {true|false} -
Hallo,
ich besitze auch ein MG4 und möchte gerne über iobroker daten abgreifen.Ich habe schon einiges gelesen wie es funktionieren soll.
Ich bin leider nicht so fit was Docker angeht. Ein mqtt broker habe ich am laufen.Kann mir einer eine Schritt für Schritt Anleitung schreiben wie ich den Docker Container zum laufen bringe ? (Proxmox Server ist vorhanden)
mfg Manuel
-
@manuel_k
Hier ist die Beschreibung dazu.
https://github.com/SAIC-iSmart-API/saic-python-mqtt-gateway -
@manuel_k Ich hatte da auch meine Schwierigkeiten, ohne Vorkenntnisse zu Docker Deployment. Habe es über Portainer gemacht. Hier die Schritte:
Beispiel:
Dann Container deployen:
zurück in die Container Liste, sollte der container als "running" erscheinen. Unter Quick Actions kann man das Log anschauen.
-
@oranggila Vielen Dank für die Info. Portainer habe ich am laufen. Ich probiere es die Tage aus.
Hat geklappt Danke
-
@oranggila Hallo, habe alles nach Anleitung gemacht. Containerstatus ist beim starten "running", springt aber sofort auf "exited" um. Kann mir jemand diesbezüglich helfen?
-
@vasilij-root bei quick aktions die Log datei anschauen. Bestimmt ein Eingabefehler bei den Env oder mqttserver läuft noch nicht.