Hallo, so bei mir läuft es nun endlich, das SAIC MQTT Gateway auf meinem Raspberry Pi. Das Gateway published als MQTT-User "evcc" topics, die mit dem Topic root saic beginnen. Abonniert hat das bei mir der ioBroker und eben auch evcc. Hier, was ich gemacht habe, vielleicht hilft es dem ein oder anderen. Ich hoffe, ich kriege das alles noch genau aus dem Kopf hin. Gerade die mosqitto Installation ist schon sehr lange her.
Mosqitto installieren
Als erstes bringen wir das System aktuell:
Füge nun das Mosquitto Repository dazu:
sudo apt install software-properties-common
sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa
Aktualisiere die Paketquellen erneut:
Installiere Mosquitto und die Mosquitto-Clients:
Starte den Mosquitto-Dienst und aktiviere ihn, damit er beim Booten automatisch startet:
Prüfe, ob der Dienst läuft:
Mosqitto Nutzer evcc erstellen
Erstelle die Konfigurationsdatei
Kopiere das in die Datei hinein:
listener hört also auf Port 1883 (der Standard Port für Mosqitto, allow_anonymous false bedeutet, dass man immer ein Passwort braucht und das Passwort file wird definiert mit der letzten Zeile.
Legt nun einen neuen Benutzer evcc an:
Ihr werdet nach einem Passwort gefragt. Wählt ein sicheres und merkt euch das. Am Besten verwendet ihr nur Zahlen, Gross- und Kleinbuchstaben und ein sehr langes Passwort.
Nun den Dienst nochmal neu starten:
Prüft, ob ihr ufw aktiv habt:
Wenn ja, achtet darauf, dass Port 1883 offen ist.
MQTT Explorer unter Windows installieren
Um zu prüfen, ob nun alles wie gewünscht läuft, installieren wir uns den MQTT-Explorer unter Windows:
- Gehe auf die Webpage: https://github.com/thomasnordquist/MQTT-Explorer/releases
- Lade dir die neueste stabile Version herunter, die ist auch gekennzeichnet mit "Latest".
- Klicke dort auf das kleine Assets-Pfeilchen und suche die Windows-Exe. Kann sein, dass du nochmal auf "Show all assets" klicken musst.
- Installiere die exe und öffne den MQTT Explorer.
- Klicke auf das gelbe Plus-Zeichen (Connections) und wähle unter Name einen Namen deiner Wahl.
- Protocol stelle mqtt ein.
- Als Host gibst du die Raspi-IP ein, die du in deiner Router-Konfiguration findest. Port ist der Standard port 1883.
- Als Username wählst du evcc und gebe dann dein gemerktes Passwort ein.
- Dann klicke auf Save und Connect
Verbindung testen
Du hast nun hoffentlich erfolgreich Mosqitto eingerichtet. Um das auch zu prüfen, gehe zurück in dein Raspi-Terminal und gib folgendes ein (ersetze dabei die IP unter -h mit der IP deines Raspis, die du auch schon oben rausgesucht hast und ersetze das Passwort mit deinem:
mosquitto_pub -h 192.168.178.19 -p 1883 -u evcc -P <Dein Passwort> -t test/topic -m "Test message"
Die Nachricht muss dann in dem Fenster vom MQTT Explorer rauskommen, ansonsten ist etwas schief gelaufen.
Python-Version prüfen und bei Bedarf updaten
Das SAIC MQTT Gateway läuft nur mit Pyhton Versionen grösser oder gleich 3.12. Ich hatte 3.11 drauf auf meinem Raspi und es wurde nicht automatisch angehoben. Deswegen musste ich 3.12.9 (war bei mir aktuell) manuell installieren.
Wenn also eine Version mit 3.11 angezeigt wird, dann musst du folgende Schritte ausführen, ansonsten diese überspringen:
Wieder Paketquellen aktualisieren:
Abhängigkeiten installieren:
sudo apt install -y software-properties-common
sudo apt install -y build-essential libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev zlib1g-dev
Python herunterladen
Archiv entpacken:
Python installieren (nach dem Absetzen der Kommandos kannst du entspannt Kaffee trinken, kann schon 30-45 Minuten dauern):
Prüfe auf Erfolg:
Nun solltest du noch den Python Paketmanager installieren:
Und auch prüfen:
Sehr gut, auch Python installiert. Als nächste Schritte folgen das SAIC Gateway.
Zweitaccount anlegen
- Nehmt ein zweites Handy oder öffnet ein zweites Profil auf eurem Handy. Installiert die MG App und legt einen weiteren Account an. Wählt dabei eine email-Adresse, z. B. zweitkonto@email.de und schliesst die App wieder ohne das Fahrzeug zu koppeln. Achtung beim Passwort: nur Zahlen, Gross- und Kleinbuchstaben.
- Öffnet die App von MG mit eurem Erstkonto, klickt das Icon ganz rechts unten und legt ein Zweitkonto an, indem ihr auf das kleine + rechts oben klickt. Wählt dauerhaft aus. Als Name wählt ihr z. B. mqtt und Konto die vorhin angelegte zweitkonto@email.de
- Wenn das geklappt hat, dann seht ihr das in der Übersicht im Menü Zweitkonto.
- Bei Bedarf kann die MG App auf dem zweiten Handy / Profil wieder deinstalliert werden.
SAIC Gateway installieren
Öffnet wieder ein Terminal auf eurem Raspi und bringt euer System auf den neuesten Stand:
Lade das SAIC MQTT Gateway herunter:
cd ~
git clone https://github.com/SAIC-iSmart-API/saic-python-mqtt-gateway.git
cd saic-python-mqtt-gateway
Erstelle eine virtuelle Umgebung, aber Achtung, nehme die Python-Version, die du oben installiert hast:
Aktiviere die virtuelle Umgebung:
Installiere Abhängigkeiten:
Nun sollte sich das ganze starten lassen - bitte beachte, dass immer noch ein (venv) am Anfang deiner Kommandozeile steht, wenn nicht, aktiviere mit source wie oben beschrieben die venv. Ersetze die Werte zweitkonto@email.de, das Passwort des Zweitaccounts, die IP-Adresse eures Raspis, und das mqtt-Passwort von evcc mit deinen Werten:
python3 mqtt_gateway.py -u zweitkonto@email.de -p <Passwort-des-zweitaccounts> -m tcp://192.168.178.19:1883 --mqtt-user evcc --mqtt-password <Passwort-vom-evcc-mqtt-Nutzer> --messages-request-interval 30
Nun prüft wieder die Ausgaben auf der Shell und auch den MQTT Explorer: Hier sollte nach kurzer Zeit Werte auftauchen von eurem Fahrzeug unter dem Topic saic. Wenn nicht, nochmal alles prüfen.
Den Rest gibt es später