Ankündigung

Einklappen
Keine Ankündigung bisher.

Miele @Home mit MQTT

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

  • manhartm
    antwortet
    Diese ganzen Felder sind leer:

    shm.jpg

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi manhartm,

    der Fehler taucht beim Aufbau des Streams für die Events auf. Das kann unterschiedliche Ursachen haben. Zur Eingrenzung wäre es gut zu wissen ob Du
    irgendwelche Informationen im Web-IF des Plugins erhälst.
    Sind plausible Werte für access-Token / refresh-Token im Web-IF vorhanden ? Sind "valid till" und "valid through" gefüllt ?
    Sind die Event-Infos gefüllt ?

    Viele Grüße
    Andre

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von Sipple Beitrag anzeigen
    Und wenn du das timeout mal nur testhalber auf 60 stellst? Immer noch?
    Falls ja, fürchte ich, kann ich dir nicht mehr weiter helfen, dann kann das nur noch Andre.
    Habe den Wert auf 60 geändert und nun taucht ein zusätzlicher Eintrag im Log auf:

    Code:
    2023-03-23  12:59:43 WARNING  plugins.mieleathome mieleathome - connection canceled - waiting 30sec - retry to get new Event-Connection -  reason : Expecting value: line 1 column 1 (char 0)
    2023-03-23  13:01:13 WARNING  plugins.mieleathome mieleathome - connection canceled - waiting 30sec - retry to get new Event-Connection -  reason : HTTPSConnectionPool(host='api.mcs3.miele.com', port=443): Read timed out. (read timeout=60.0)

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Und wenn du das timeout mal nur testhalber auf 60 stellst? Immer noch?
    Falls ja, fürchte ich, kann ich dir nicht mehr weiter helfen, dann kann das nur noch Andre.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von Sipple Beitrag anzeigen
    manhartm

    Was steht bei deiner Version des Plugins in der __init.py__ in Zeile 583?

    Code:
    self.response = requests.get(self.url,headers=myHeaders, stream=True,timeout=30.0)
    Steht da noch timeout=10.0, ändere es in 30 und die Kiste läuft.
    Bei mir stand noch timeout=10.0 drin. Habe es auf 30 geändert, aber das Timeout kommt weiterhin.

    Code:
    2023-03-23  12:06:08 WARNING  plugins.mieleathome mieleathome - connection canceled - waiting 30sec - retry to get new Event-Connection -  reason : HTTPSConnectionPool(host='api.mcs3.miele.com', port=443): Read timed out. (read timeout=30.0)
    Ich habe auf https://www.miele.com/developer/swag.../#/Information meine Daten eingetragen und dann den Befehl "GET /short/devices​" ausgeführt. Ich erhalte dieses Resultat:

    Code:
    [COLOR=unset][ { "fabNumber": "000127876311", "state": "Aus", "type": "Combi-Dampfgarer", "deviceName": "", "details": "https://api.mcs3.miele.com/v1/devices/000127876311" }, { "fabNumber": "007106053497", "state": "In Betrieb", "type": "Kühlschrank", "deviceName": "", "details": "https://api.mcs3.miele.com/v1/devices/007106053497" } ][/COLOR]​
    Wir haben einen Steamer und einen Kühlschrank von Miele und die werden beide korrekt angezeigt.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    manhartm

    Was steht bei deiner Version des Plugins in der __init.py__ in Zeile 583?

    Code:
    self.response = requests.get(self.url,headers=myHeaders, stream=True,timeout=30.0)
    Steht da noch timeout=10.0, ändere es in 30 und die Kiste läuft.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Ok.
    Jetzt noch ein paar Screenshots vom Webinterface:

    Header.png
    Geräte.png

    Events.png

    Wichtig ist vor allem mal der Header. Wenn da die Autorisierung schon nicht richtig geklappt hat, stimmt was mit deinen Daten nicht.
    Passt das soweit, liegt es wahrscheinlich an der Verbindung zum Miele Server.
    Wann immer ich die Timeout Meldung bekommen habe (sehr selten), lag es an denen.
    Wenn alles auf deiner Seite richtig aussieht, wäre der nächste Schritt bei Miele auf der Developer-Seite mit deinen Daten die API direkt testen.
    Klappt es da, aber nicht über das Plugin, müsste man tiefer einsteigen und evtl. mal den Loglevel höher setzen.
    Den Timeout Fehler hatten wir vor einiger Zeit mal, weil tatsächlich Miele die Antwortintervalle geändert hat. Das hat Andre in 5min geändert und seitdem läuft es wieder.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Hier die Konfiguration in plugin.yaml:

    Code:
    mieleathome:
        plugin_name: mieleathome
        class_path: plugins.mieleathome
        miele_cycle: 300
        miele_client_id: '****'
        miele_client_secret: '****'
        miele_client_country: 'de-DE'
        miele_user: '****'
        miele_pwd: ****'

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Poste mal deine komplette Konfiguration für das Plugin.

    Einen Kommentar schreiben:


  • manhartm
    antwortet
    Zitat von Sipple Beitrag anzeigen

    Das ist etwas untertrieben. Andre's Plugin läuft super stabil und für den Alltagsbetrieb geeignet.
    Ich habe versucht das Plugin zu starten, bekomme aber alle 30s diese Fehlermeldung:

    Code:
    2023-03-22  20:40:36 WARNING  plugins.mieleathome mieleathome - connection canceled - waiting 30sec - retry to get new Event-Connection -  reason : HTTPSConnectionPool(host='api.mcs3.miele.com', port=443): Read timed out. (read timeout=10.0)
    Die Aktivierung habe ich gemacht.

    Einen Kommentar schreiben:


  • Bear80
    antwortet
    Servus AndreK,

    super! Danke für die Info! Gerade mit meiner Python-Logik für meine Belange fertig geworden. Schau mir das Plugin gerne mal beim nächsten SH Upgrade an.
    Schaut aber auf jeden Fall schon mal sehr gut aus!

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Zitat von AndreK Beitrag anzeigen
    Hallo Bear80,

    noch nicht ganz fertig aber teilweise funktionsfähig
    Das ist etwas untertrieben. Andre's Plugin läuft super stabil und für den Alltagsbetrieb geeignet.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo Bear80,

    es gibt hierzu einen "proof of concept" für ein Plugin noch nicht ganz fertig aber teilweise funktionsfähig. Siehe hier.

    VG
    Andre

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    Hallo AndreK

    Da das php Script im Zusammenhang mit MQTT nicht zuverlässig arbeitet (was eher auf der MQTT Seite liegt), werde ich versuchen ein Plugin zu bauen.
    Ich habe mit deinem Beispiel schon etwas auf dem Python CLI gespielt. Zumindest was die Abfrage der Geräte angeht, wenn man schon ein Token hat. Das ist eigentlich keine Hexerei. Ein paar Fallstricke gibt's, z.B. mit deutschen Umlauten (UTF-8 Kodierung), aber das habe ich glaube ich im Griff.
    Ich experimentiere im nächsten Schritt mit dem Token-Refresh etc. Wenn das auch klappt, dann mache ich mich mal ans Werk. Das wird aber sicherlich länger dauern, bin halt kein Profi. Aber mit Hilfe von den Meistern sollte es klappen.

    Mir kommt die Authentifizierung fast schon zu simpel vor.

    Gruß, Martin

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    So habe ich das versucht, in allen Varianten, die mir eingefallen sind. Verschiedene Topics in verschiedenen Schreibweisen, mit und ohne Anführungszeichen, Zone variiert, usw. Mit dem MQTT Explorer. Kein Erfolg, es passiert schlicht gar nichts.
    Muss wohl mal den Entwickler anschreiben. Die Superfrostfunktion Ein/Aus ging sofort.

    Einen Kommentar schreiben:

Lädt...
X