Miele-MQTT => Loxberry MQTT
Einklappen
X
-
Kurz überlegen…
- cron.d/mielemqtt hab ich aufgeräumt und definiert mit
@reboot loxberry sleep 30 && php /opt/loxberry/webfrontend/legacy/miele/miele-MQTT.php
(hier war bei Jürgen Ticos Job mit minütlichem Start drin)
- Außerdem chmod 644 cron.d/mielemqtt
(das war bei Jürgen 755, was definitiv so nicht geht)
- Sicherheitshalber dos2unix Miele-MQTT.php
(hab ich nicht geprüft, hat aber imho vorher schon gepasst)
Natürlich dann einen Reboot ausgeführt, damit der Cron mit @reboot ausgeführt wird.
Beim Reboot startet das MQTT Gateway nicht sofort, also im Settings-Tab beobachtet, dass es nach Reboot wirklich running ist.
Dann die Incoming Overview beobachtet.
miele-MQTT.php pollt alle 30 Sekunden, dabei werden rechts auch die Timestamps aktualisiert.Zuletzt geändert von Christian Fenzl; 24.06.2021, 22:29.Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Ich kann auch nach mehreren Stunden, bewussten reboot's bestätigen, dass das Script stabil läuft und MQTT Broker Daten in 30 Sekunden empfängt. Ich werde ein paar Scrennshots (WIKI) von den wesentlichen Settings posten damit sich die nächsten nicht mit den gleichen Themen rumschlagen müssen und Christian nicht allen Anfängern wie mir Hilfe leisten muss -
Christian, ich habe heute ein neue Script "miele-MQTT.php" von oklona bekommen und hochgeladen. Jetzt habe ich wieder das gleiche Problem, dass das Script nur läuft, wenn ich es über puTTY starte und puTTY aktiv ist. Ich habe sonst nicht geändert. Kann es mit deiner Massnahme dos2unix zusammenhängen, die du damals auch ausgeführt hast? Wenn ja, wie muss ich das machen?
-
Nach einer Woche stabiler Verbindung möchte ich ein paar Erfahrungen oder auch Probleme / Fragen posten:
1. Sprache:
Ich habe die Konfiguration auf "de-DE" aber alle Werte kommen vom Miele Script in Englisch über das MQTT plugin. Es ist sehr unpraktikabel, da auf der Loxone App alles auf Englisch angezeigt wird (z.B. Programm Namen der Automatik Programme). Die alle mühsam im Statusbaustein (Loxone) zu mappen/übersetzen tue ich mir nicht an. Kann man das noch irgendwo einstellen?
2. Miele API Dokumentation
Die Miele API Dokumentation ist aus meiner Analyse an vielen Stellen falsch oder unvollständig. Beispiele: Status "Programm Type". Hier gibt Miele beim Raw Wert 3 an, dass es das Reinigungsprogram ist. In der Realität ist es aber das Automatikprogram.
Auch Light On und Light Enabled ist nicht beschrieben, was 0/1/2 bedeutet. Weiss jemand wie ich Miele hier direkt am besten kontaktieren kann?
3. Werte update in Loxone bei inaktiver MQTT variable
Ich habe die Statuswerte als Virtuelle Eingänge oder Virtuelle Texteingänge in Loxone angelegt. Soweit werden alle Werte empfangen. Was ich aber beobachte, dass gewisse Variablen komplett aus der Übertragung vom MQTT je nach Zustand des Miele Gerätes verschwinden. Beispiel "Door open". Dieses Signal wird nur verändert, wenn das Gerät auch in Betrieb ist. im MQTT ist die Variable dann verschwunden und wird deswegen auch im Loxone nicht mehr als Veränderung erkannt. Das gleich ist z.B. bei den Virtuellen Eingängen (als Digital" für "Remote enabled oder Mobile Start". Die bleiben dann immer auf 1. In diesem Bild ist z.B. die Door open Meldung nicht aktiv und somit wird die Statusmeldung in Loxone nicht verändert.
Meine Frage: muss ich die Variablen in Loxone anders anlegen, damit sie verändert werden, wenn im MQTT die Variable nicht mehr im Protokoll übertragen werden? Oder muss das im Miele Script oder Miele API verändert werden?
4, Aktuelle Laufzeit & Restlaufzeit anzeige
Die Zeiten habe ich auch über normale Virtuelle Eingänge eingelesen. Die Werte werden in Loxone nicht angezeigt (z.B. MQTT Wert zeigt 00:26 und in Loxone nur 0. Muss ich die Variable anders in Loxone anlegen?
5. Miele Gerät über Loxone steuern (z.B. Startzeit, Start, ...)
Wie lege ich die Variable in Loxone an um die Geräte aktiv zu schalten?
Würde mich über eure Expertise und Rückmeldungen freuen.
JürgenZuletzt geändert von JürgenW; 04.07.2021, 22:15.Kommentar
-
Servus Jürgen,
vorweg geb ich gleich wieder mit, dass ich keine Miele-Cloud Geräte habe. Meine Visualisierung beschränkt sich auf die Anzeige des Geschirrspüler-Displays ;-)
1.
In der Regel liefern viele APIs nur englische Texte aus (wenn sie denn überhaupt Texte statt Codes zurückliefern). Ich habe in der Miele keinen Call gesehen, der die Benutzer-Sprache berücksichtigen würde.
Wenn APIs Texte ausliefern, dann liefern sie in der Regel auch einen Status-Code mit.
z.B.
Code:"type": { "key_localized": "Devicetype", "value_raw": 1, "value_localized": "Washing Machine"
Gib in der Visu nicht den localized-String aus, sondern verwende den raw-Wert, und lass die Zahl von einem Status-Baustein in deine Texte übersetzen (du also definierst selbst die Strings).
2.
Miele schickt in der Dev-Doku voraus, dass es sich um eine generische API handelt. Die Doku und die dort angegebenen Daten sind beispielhaft. Was die einzelnen Geräte dann tatsächlich zurückliefern, hängt vom Gerät ab.
3.
Wenn ich dein Beispiel richtig verstehe:
- Du öffnest den Geschirrspüler (GS) --> open = 1
- Du schaltest den GS aus
- Du schließt den GS --> open bleibt 1
Wenn das so ist, sendet Miele vielleicht nichts mehr, wenn der GS ausgeschaltet ist. Dafür gibt es keinen allgemein gültigen Lösungsvorschlag.
4.
Erstelle dafür Virtuelle Text-Eingänge.
"00:46" ist keine gültige Zahl, damit kann kein normaler Virtueller Eingang befüllt werden.
Wenn du aus 00:46 die 46 auslesen möchtest, erstelle einen Virtuellen Text-Eingang, und verwende zwei Bausteine "Befehlserkennung", um die Stunden (\v) und Minuten (:\v) auszulesen.
5.
In der Doku von MieleMQTT steht
Send commands To send commands to your appliance, publish mqtt in the form of:
Topic: <Topic>/command/<deviceID>/<action>
Data: <data>
Was <action> ist, steht wahrscheinlich in der Miele API Doku.
lg, Christian
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Bezüglich Sprache habe ich nun doch was gesehen:
Code:curl -H "Accept:text/event-stream" -H "Accept-Language: {{de-DE||en-GB}}" -H "Authorization: Bearer {{access_token}}" https://api.mcs3.miele.com/v1/devices/all/events
Es gibt also grundsätzlich Sprachunterstützung der API.
Das Accept-Language müsste das MieleMQTT Script mitschicken, was bisher nicht im Code ist.
Probier mal, dort einen Issue aufzumachen:
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Miele-mqtt verwendet die gleiche MQTT Library wie ich in Stats4lox MQTT Live, wahrscheinlich hast du mit der Lib das gleiche Problem wie ich in MQTT Live.
Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Christian Fenzl ich hatte heut morgen kein Internet weil der Provider probleme hatte. das dürfte die 100% Auslastung verursacht haben. Vielleicht kann das script damit nicht optimal umgehen. Loxberry reboot lässt es seither schnurren wie ein kätzchen. Werd ich noch ein bisschen beobachten.Kommentar
-
Beobachtung führt zum Ergebnis wie im comment oberhalb beschrieben. muss den Prozess alle paar Tage neu starten damit es funktioniert. https://www.loxforum.com/forum/proje...018#post333018
-
Kommentar