Jetzt habe ich die API "bimmer_connected" gefunden: https://bimmer-connected.readthedocs...est/index.html
Mein Ziel ist die API unter Python3 auf dem Loxberry zu installieren und mit einem Python Skript die gewünschten Werte aus der API zum Miniserver zu schicken.
Leider habe ich nur sehr rudimentäre Python-Kenntnisse, kann hier jemand helfen, insbesondere
a) Einbinden und Zugriff auf die API mit Python
b) Senden der Werte zum Miniserver?
Bisher habe ich folgendes probiert bzw. überlegt:
1. Versuch unter Windows:
Python installiert und dann die API mit: pip install bimmer-connected
Mit der API wird eine ausführbare Datei (.EXE) mitinstalliert die man direkt aufrufen kann und die alle Infos anzeigt
(mit entsprechendem Parameter kann man darüber auch Befehle senden z.B. Klimatisierung, Türen u.a.).
Aufruf: bimmerconnected status <BmwConnectedLogin> <BmwConnectedPasswort> rest_of_world
Weitere Schritte
a) Quick and Dirty Lösung über .cmd
Die Ausgabe des Aufrufs oben wird in eine Datei geschrieben und dann über einen Webserver bereitgestellt (z.B. auf den Loxberry nach webfrontend kopieren) und dann vom MS aus mit einem virtuellen HTTP Eingang + Befehlserkennung ausgelesen.
Den Befehlsaufruf (start der .cmd) müsste dann noch automatisiert werden sodass dieser synchron zum Abfragezyklus des Virtuellen HTTP Eingangs (z.B. 1 Minute vorher) erfolgt.
Oder: Skript bei jedem öffnen des Garagentores oder beim einstecken in die Wallbox aufzurufen.
b) Python Skript holt gewünschte Daten aus API und schickt diese per UDP an Miniserver
Ablauf:
- Einbinden der API in das Python Skript
- Aufruf der gewünschten Daten und speichern in einer Variablen
- Senden der Variablen über UDP an einen virtuellen UDP-Eingang + Eingangsbefehl mit Befehlserkennung
- Das Skript muss dann noch automatisiert gestartet werden (zu bestimmten Zeiten oder bei bestimmten Ereignissen)
Leider fehlen mir die Programmierkenntnisse, um die API in das Skript einzubinden und daraus Werte abzurufen.
Weiterhin habe ich Probleme beim Senden per UDP (habe mich an mehreren Beiträgen hier orientiert):
Skript:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto("Test=123", ("192.168.11.20", 7000))
Fehler:
File "C:\Users\Marc\Desktop\test2miniserver.py", line 3, in <module>
sock.sendto("Test=123", ("192.168.11.20", 7000))
TypeError: a bytes-like object is required, not 'str'
c) API und das Skript analog zu b) auf dem Loxberry (weniger fehleranfällig)
Python3 ist ja vorhanden, die API konnte ich auch schon installierten mit pip3 install bimmer-connected
Auch hier wäre nun die Frage
a) wie die Einbindung / der Zugriff zur API aus dem Python-Skript erfolgt
b) wie die Werte aus dem Python-Skript zum Miniserver erfolgen (per UDP oder MQTT?)
Ich freue mich auf Eure Vorschläge!!
Kommentar