Miele-MQTT => Loxberry MQTT

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6289

    Christian Fenzl kannst Du denn sagen woran es lag?
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11201

      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-ukraine

      Kommentar


      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Ah ja

      • JürgenW
        JürgenW kommentierte
        Kommentar bearbeiten
        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

      • JürgenW
        JürgenW kommentierte
        Kommentar bearbeiten
        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?
    • JürgenW
      Smart Home'r
      • 19.06.2019
      • 89

      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.
      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 2021-07-03.png Ansichten: 0 Größe: 62,1 KB ID: 310839
      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.
      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 2021-07-03 (1).png Ansichten: 0 Größe: 180,5 KB ID: 310840
      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ürgen
      Zuletzt geändert von JürgenW; 04.07.2021, 22:15.

      Kommentar


      • smarthome999
        smarthome999 kommentierte
        Kommentar bearbeiten
        zum Punkt 5. kann ich melden, dass "START SUPERCOOLING" über mqtt so geklappt hat:
        publish miele/command/000000000000/processAction 6
    • Christian Fenzl
      Lebende Foren Legende
      • 31.08.2015
      • 11201

      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"
      Der value_raw:1 ist also eine Waschmaschine.

      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>
      Wie du einen MQTT-Command von Loxone an das MQTT-Gateway sendest, findest du hier: https://www.loxwiki.eu/pages/viewpag...ageId=39356011

      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-ukraine

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11201

        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
        (Quelle: https://www.miele.com/developer/eventing.html)

        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:
        A very simple script to read data from Miele@home cloud services, and publish using Mosquitto MQTT - oklona/Miele-MQTT
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar


        • JürgenW
          JürgenW kommentierte
          Kommentar bearbeiten
          Habe ein Issue aufgemacht und mal schauen, ob da was zurück kommt
      • McLossi
        Smart Home'r
        • 25.11.2016
        • 83

        Bezüglich dem miele-mqtt.php file. Ich hab auf meinen Raspberry mal mit htop draufgesehen und der prozess hat auf einem der 4 Kerne immer 100%. Ist das "normal"? Ich hab einen Pi 3B+ mit 1GB RAM. Hat jemand eine ähnliche auslastung?

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11201

          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-ukraine

          Kommentar


          • McLossi
            McLossi kommentierte
            Kommentar bearbeiten
            Meinst du die phpMQTT library von Bluerhinos?

          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            Jep.

          • McLossi
            McLossi kommentierte
            Kommentar bearbeiten
            Schade, dass das nicht stabiler läuft. Ich muss alle paar tage den Prozess killen und neu starten damit die Daten am mqtt gateway ankommen.
        • McLossi
          Smart Home'r
          • 25.11.2016
          • 83

          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

        Lädt...