Ach so, das hab ich nicht
Beiträge von topcaser
-
-
Hallo, ich kann ABRP nicht im Launcher-Settings von Android Auto finden. Ist denn ABRP nicht kompatibel mit Android Auto oder braucht man eine spezielle ABRP Version?
-
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:
Codesudo apt install software-properties-common sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppaAktualisiere 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:
Codemosquitto_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:
Codesudo apt install -y software-properties-common sudo apt install -y build-essential libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev zlib1g-devPython 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:
Codecd ~ git clone https://github.com/SAIC-iSmart-API/saic-python-mqtt-gateway.git cd saic-python-mqtt-gatewayErstelle 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:
Codepython3 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 30Nun 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
-
-
seitdem nicht mehr aufgetreten...
-
das ist klar. Die Frage ist aber nach dem mqtt user? Gleicher user, wie in der evcc.yaml Datei ist, oder bridge?
-
Was meinst Du mit "selben Account"? Selben MQTT-User, oder?
-
Hi, ich habe das Gateway nun am Laufen. Der mqtt-Benutzer ist saic. evcc kommuniziert aber unter dem mqtt-benutzer evcc mit dem iobroker. Nun habe ich mehrere Möglichkeiten:
1. ich lasse das Gateway unter dem Nutzer evcc laufen, wahrscheinlich die beste Option
2. ich richte eine mqtt bridge ein
3. ich setze die wichtigsten Nachrichten im iobroker auf den evcc account um
Wie macht ihr das? Was erwartet den eigentlich das mqtt template in evcc?
-
Ich habe das auch auf meinem Raspi installiert. Ich musste erstmal die Python Version auf 3.12 anheben. Nun muss ich mich quasi in die virtuelle Umgebung einloggen:
Und bekomme dann bei folgendem Aufruf eine Fehlermeldung:
Code
Alles anzeigen(venv) bernd@raspberrypi:~/saic-python-mqtt-gateway $ python3.12 mqtt_gateway.py usage: MQTT Gateway [-h] [-m MQTT_URI] [--mqtt-server-cert TLS_SERVER_CERT_PATH] [--mqtt-user MQTT_USER] [--mqtt-password MQTT_PASSWORD] [--mqtt-client-id MQTT_CLIENT_ID] [--mqtt-topic-prefix MQTT_TOPIC] [-s SAIC_REST_URI] -u SAIC_USER -p SAIC_PASSWORD [--saic-phone-country-code SAIC_PHONE_COUNTRY_CODE] [--saic-region SAIC_REGION] [--saic-tenant-id SAIC_TENANT_ID] [--battery-capacity-mapping BATTERY_CAPACITY_MAPPING] [--charging-stations-json CHARGING_STATIONS_FILE] [--saic-relogin-delay SAIC_RELOGIN_DELAY] [--ha-discovery HA_DISCOVERY_ENABLED] [--ha-discovery-prefix HA_DISCOVERY_PREFIX] [--ha-show-unavailable HA_SHOW_UNAVAILABLE] [--messages-request-interval MESSAGES_REQUEST_INTERVAL] [--charge-min-percentage CHARGE_DYNAMIC_POLLING_MIN_PERCENTAGE] [--publish-raw-api-data PUBLISH_RAW_API_DATA] [--abrp-api-key ABRP_API_KEY] [--abrp-user-token ABRP_USER_TOKEN] [--publish-raw-abrp-data PUBLISH_RAW_ABRP_DATA] [--osmand-server-uri OSMAND_SERVER_URI] [--osmand-device-id OSMAND_DEVICE_ID] [--publish-raw-osmand-data PUBLISH_RAW_OSMAND_DATA] MQTT Gateway: error: the following arguments are required: -u/--saic-user, -p/--saic-passwordStarte ich das ganze mit
Codepython3 mqtt_gateway.py -u my_user -p myPW -m tcp://192.168.178.19:1883 --mqtt-user saic --mqtt-password mqtt_pw --ha-discovery Falsedann funktioniert es und ich kann auch Werte im MQTT Explorer vom Auto sehen.
Was ich nicht verstehe: warum werden die Daten nicht aus der .env abgeholt - jeder einzelne Kommandozeilen-Parameter ist dort auch definiert.
Wie kriege ich das Ganze nun automatisiert hin, also dass das Python-Programm immer läuft?
-
Ich bin doch ein Honk. Ich habe die Email Adresse immer bei Name eingegeben und dazu unten meine Telefonnummer. Nun habe ich MQTT als Name gewählt und meine email-Adresse 2 unter Telefonnummer eingetragen. Dann ging es sofort. Wie blöd kann man sein.