Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT : Befehle ausführen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    MQTT : Befehle ausführen

    Hallo zusammen,

    ich habe eine Miele Waschmaschine mit Miele@Home - Dafür benutze ich die Miele 3rd party API - Nun würde ich gerne die Maschine per MQTT an SHNG anbinden.


    Dies ist das MQTT der Miele

    Jedoch bekomme ich garnichts hin ..

    Code:
    curl -X GET "https://api.mcs3.miele.com/v1/devices/?language=de" -H "accept: application/json; charset=utf-8" -H "Authorization: Bearer XXXXXXXXX"
    damit erhalte ich folgende ausgabe :

    Code:
    
    { "000149834615": { "ident": { "type": { "key_localized": "Gerätetyp", "value_raw": 1, "value_localized": "Waschmaschine" }, "deviceName": "", "deviceIdentLabel": { "fabNumber": "xxxxx", "fabIndex": "11", "techType": "WWI660", "matNumber": "xxxxxx", "swids": [ "4418", "20456", "25213" ] }, "xkmIdentLabel": { "techType": "EK037", "releaseVersion": "03.65" } }, "state": { "ProgramID": { "value_raw": 1, "value_localized": "Baumwolle", "key_localized": "Programmbezeichnung" }, "status": { "value_raw": 9, "value_localized": "Abbruch", "key_localized": "Status" }, "programType": { "value_raw": 1, "value_localized": "Eigenes Programm", "key_localized": "Programmart" }, "programPhase": { "value_raw": 256, "value_localized": "", "key_localized": "Programmphase" }, "remainingTime": [ 0, 0 ], "startTime": [ 0, 0 ], "targetTemperature": [ { "value_raw": 6000, "value_localized": 60, "unit": "Celsius" }, { "value_raw": -32768, "value_localized": null, "unit": "Celsius" }, { "value_raw": -32768, "value_localized": null, "unit": "Celsius" } ], "temperature": [ { "value_raw": -32768, "value_localized": null, "unit": "Celsius" }, { "value_raw": -32768, "value_localized": null, "unit": "Celsius" }, { "value_raw": -32768, "value_localized": null, "unit": "Celsius" } ], "signalInfo": false, "signalFailure": false, "signalDoor": false, "remoteEnable": { "fullRemoteControl": true, "smartGrid": true }, "light": 0, "elapsedTime": [ 0, 0 ], "spinningSpeed": { "unit": "U/min", "value_raw": 1600, "value_localized": "1600", "key_localized": "Schleuderdrehzahl" }, "dryingStep": { "value_raw": null, "value_localized": "", "key_localized": "Trockenstufe" }, "ventilationStep": { "value_raw": null, "value_localized": "", "key_localized": "Lüfterstufe" }, "plateStep": [] } } }Response headers
    wie kann man dies nun sinnvoll in SHNG eibinden und Später dazu noch eine Logik für den sogeannten Smartstart erstellen wenn PV Überschuss vorhanden ist.
    Zuletzt geändert von jonny7792; 23.01.2020, 20:38.
    Gruss Oliver

    Projektleiter Technische Gebäudeausrüstung

    #2
    Nutze das MQTT Plugin
    Viele Grüße
    Martin

    Stay away from negative people. They have a problem for every solution.

    Kommentar


      #3
      Das verlinkte script, nutzt anscheinend den Miele REST Service und setzt diesen auf mqtt um.

      Kommentar


        #4
        Du kannst Du in einer Logik von der Webadresse die Du oben angegeben hast die Daten Abfragen. Das das JSON ist, kannst Du das eigentlich auch direkt in ein dict überführen und mit dem Inhalt des dicts dann Deine Items befüllen.

        Code:
        {
            "000149834615": {
                "ident": {
                    "type": {
                        "key_localized": "Gerätetyp",
                        "value_raw": 1,
                        "value_localized": "Waschmaschine"
                    },
                    "deviceName": "",
                    "deviceIdentLabel": {
                        "fabNumber": "xxxxx",
                        "fabIndex": "11",
                        "techType": "WWI660",
                        "matNumber": "xxxxxx",
                        "swids": [
                            "4418",
                            "20456",
                            "25213"
                        ]
                    },
                    "xkmIdentLabel": {
                        "techType": "EK037",
                        "releaseVersion": "03.65"
                    }
                },
                "state": {
                    "ProgramID": {
                        "value_raw": 1,
                        "value_localized": "Baumwolle",
                        "key_localized": "Programmbezeichnung"
                    },
                    "status": {
                        "value_raw": 9,
                        "value_localized": "Abbruch",
                        "key_localized": "Status"
                    },
                    "programType": {
                        "value_raw": 1,
                        "value_localized": "Eigenes Programm",
                        "key_localized": "Programmart"
                    },
                    "programPhase": {
                        "value_raw": 256,
                        "value_localized": "",
                        "key_localized": "Programmphase"
                    },
                    "remainingTime": [
                        0,
                        0
                    ],
                    "startTime": [
                        0,
                        0
                    ],
                    "targetTemperature": [
                        {
                            "value_raw": 6000,
                            "value_localized": 60,
                            "unit": "Celsius"
                        },
                        {
                            "value_raw": -32768,
                            "value_localized": null,
                            "unit": "Celsius"
                        },
                        {
                            "value_raw": -32768,
                            "value_localized": null,
                            "unit": "Celsius"
                        }
                    ],
                    "temperature": [
                        {
                            "value_raw": -32768,
                            "value_localized": null,
                            "unit": "Celsius"
                        },
                        {
                            "value_raw": -32768,
                            "value_localized": null,
                            "unit": "Celsius"
                        },
                        {
                            "value_raw": -32768,
                            "value_localized": null,
                            "unit": "Celsius"
                        }
                    ],
                    "signalInfo": false,
                    "signalFailure": false,
                    "signalDoor": false,
                    "remoteEnable": {
                        "fullRemoteControl": true,
                        "smartGrid": true
                    },
                    "light": 0,
                    "elapsedTime": [
                        0,
                        0
                    ],
                    "spinningSpeed": {
                        "unit": "U/min",
                        "value_raw": 1600,
                        "value_localized": "1600",
                        "key_localized": "Schleuderdrehzahl"
                    },
                    "dryingStep": {
                        "value_raw": null,
                        "value_localized": "",
                        "key_localized": "Trockenstufe"
                    },
                    "ventilationStep": {
                        "value_raw": null,
                        "value_localized": "",
                        "key_localized": "Lüfterstufe"
                    },
                    "plateStep": []
                }
            }
        }
        Mit dem Python Modul requests kannst Du den curl abbilden. Du hast jetzt nicht geschrieben, ob die Miele noch irgendeinen Parameter gesendet bekommen muß. In dem Fall findet sich hier lesenswertes.
        Um json dann in ein dict zu überführen hilft das Python Modul json. Auch hier hat Stackoverflow die Antworten.

        Kommentar


          #5
          Zitat von Bonze Beitrag anzeigen
          Das verlinkte script, nutzt anscheinend den Miele REST Service und setzt diesen auf mqtt um.
          Ja genau so ist es ,

          Mir sind vorallem Meldungen wie Waschmaschine Fertig sowie die Verbrauchswerte wichtig sodass ich diese visualisieren kann und die waMa aus der Logik raus starten kann

          Code:
          https://api.mcs3.miele.com/v1/devices/?language=de" -H "accept: application/json; charset=utf-8" -H "Authorization: Bearer CH_xyyyyyy""
          > ^
          > SyntaxError: invalid syntax
          Zuletzt geändert von jonny7792; 24.01.2020, 19:15.
          Gruss Oliver

          Projektleiter Technische Gebäudeausrüstung

          Kommentar


            #6
            Ach ja, mir fällt gerade auf, das das Plugin jsonread eigentlich genau für Dein Problem eine Lösung bieten sollte

            Kommentar


              #7
              Guten Morgen , ich schaue es mir mal an
              Gruss Oliver

              Projektleiter Technische Gebäudeausrüstung

              Kommentar


                #8
                Zitat von bmx Beitrag anzeigen
                Ach ja, mir fällt gerade auf, das das Plugin jsonread eigentlich genau für Dein Problem eine Lösung bieten sollte
                Ich hatte mal das Plugin probier leider ohne Erfolgt.

                Ich muss zur Autorisierung einen curl befehl absetzen dieser wie folgt aufgebaut ist:

                curl -X GET "https://api.mcs3.miele.com/v1/devices/?language=de" -H "accept: application/json; charset=utf-8" -H "Authorization: Bearer CH_41acccc32secretxxxxxxxx"



                alternativ kann ich diese datei aufrufen : miele-MQTT.php


                Code:
                php miele-MQTT.php
                Data for appliance: 000149834615
                Appliance type: Washing Machine
                Program status: Finished
                Program type: 1
                Program phase: Anti-crease
                Time left: 00:00
                Time elapsed: 00:00
                Angehängte Dateien
                Gruss Oliver

                Projektleiter Technische Gebäudeausrüstung

                Kommentar


                  #9
                  Ich kucke morgen Mal kurz danach, bin zwar auch kein pro, kann aber das Plugin Grundgerüst stellen
                  Zuletzt geändert von Bonze; 02.02.2020, 21:32.

                  Kommentar


                    #10
                    Super danke dir schonmal Bonze

                    Sofern du dann den genauen secret benötigst kannst du mich kontaktieren
                    Gruss Oliver

                    Projektleiter Technische Gebäudeausrüstung

                    Kommentar


                      #11
                      Ich hab irgendwie mit dem oauth2 Probleme,
                      hat da jemand zufällig Erfahrung mit requests_oauth? Oder sollte man lieber die requests abfragen von Hand zu Fuss zusammenbauen, wie bei dem Beispiel Script?

                      Ich bekomme beim oauth2 immer Fehler 503 , wenn ich wenigstens da den richtigen Ansatz hätte..

                      Kommentar

                      Lädt...
                      X