[Neues Modul] Miele@Home

Begonnen von choenig, 14 Juni 2020, 11:08:17

Vorheriges Thema - Nächstes Thema

choenig

Guten Morgen,

ich habe gerade die Version 0.12.0 an den ersten Post gehängt. Ich habe jetzt erstmal IODev in IODevName umbenannt, damit es in Zukunft keine weitern Missverständnisse gibt ;). Da es kein echtes zweistufiges Modul ist, wollte ich da erstmal kein Risiko eingehen. Vielleicht bau' ich es irgendwann wieder zurück :).

Danke nochmal an @Florie und @amenomade und @Rudi für die Unterstützung, und @Rudi: Du bist auch überall unterwegs ;).

LG
Christian

t.b

Vielen Dank für das geniale Modul. Hat gleich auf Anhieb funktioniert. Ich habe eine Waschmaschine und Trockner eingebunden.

Hat schon jemand irgendwelche Notifies (Telegram, Pushover o.ä.) wegen "Waschmaschine fertig" oder devStateIcon hierzu erzeugt?
Cool wäre auch eine Ansage auf Sonos oder Alexa.

Cluni

Zitat von: t.b am 17 August 2020, 22:45:18
Hat schon jemand irgendwelche Notifies (Telegram, Pushover o.ä.) wegen "Waschmaschine fertig" oder devStateIcon hierzu erzeugt?
Cool wäre auch eine Ansage auf Sonos oder Alexa.

Jops, habe ich - hier das def meines notify:
Miele_Waschmaschine:statusRaw:.7 { fhem("set teleBot message Die Waschmaschine ist fertig - bitte umgehend ausräumen!;set Sonos_Sonos Speak 25 de |doorbell2| |Waschmaschine_fertig|");}

Die Sonos-Ausgabe habe ich als MP3 hinterlegt mit dem Namen "Waschmaschine_fertig". Vorher wird noch ein Gong abgespielt... 🙈 😂

zife

Hi in die Runde,

bin nun auch in die Nutzergemeinde des Moduls eingestiegen - und funktioniert bestens, danke für die Arbeit!

Aber eine Frage (mit der ich mich hoffentlich nicht blamiere  ;)): Ich wollte Password und clientSecret nicht im Klartext in der fhem.cfg ablegen (was gut und dauerhaft funktioniert), also hab ich sie über die Kommandozeile gesetzt. Aber nach jedem Edit des Config-Files muss ich Password und clientSecret neu setzen, er merkt es sich einfach nicht.

Wo stehe ich auf dem Schlauch?
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?

amenomade

#79
Zitat von: zife am 03 September 2020, 10:17:06

Wo stehe ich auf dem Schlauch?
Du glaubst, dass das Passwort und das clientSecret in fhem.cfg gespeichert werden, und das ist falsch.

Zitat von: DeviceSpecificHelpclientSecret <secret>
sets the clientSecret of your Miele@home-developer Account and stores it in a file (base64-encoded if you have MIME::Base64 installed).

password <pass>
set the password of your Miele@home Account and stores it in a file (base64-encoded if you have MIME::Base64 installed).

Die entspr. Datei ist die uniqueID Datei, siehe global attr keyFileName in CommandRef
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zife

Nee, das glaube ich nicht - genau das meine ich ja - WENN ich es über die fhem.cfg setze, funktionert alles. Aber wenn ich es nicht dort eintrage, sondern per Command Line die beiden SET-Befehle eingebe, wird offenbar nichts gespeichert. Bei anderen Modulen funzt es, doch bei MieleAtHome muss ich es bei jedem Edit der fhem.cfg wieder neu setzen.
Drück ich mich da verständlich aus?  :D
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?

amenomade

ZitatWENN ich es über die fhem.cfg setze,
Wie genau machst Du das?

Zitatwird offenbar nichts gespeichert
Und wie stellst Du das fest?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zife

#82
Also wenn ich in der fhem.cfg die Befehle "set [gateway] password" und "set [gateway] clientsecret" einsetze, dann habe ich jederzeit von allen Miele-Geräten den Status, ganz so, wie gewünscht.

Wenn ich diese Zeilen NICHT in die fhem.cfg eintrage, sondern sie über die CommandLine oder per Web-Interface eingebe, dann funktioniert es so lange, bis ich die fhem.cfg mal wieder neu speichere - dann muss ich sowohl Password als auch ClientSecret neu setzen. Das erkenne ich, weil ich keine Readings mehr erhalte und die ErrorMsg einen fehlenden Login beklagt.

Bei anderen Devices, die auch eine Passwort-Auth verlangen, bleibt dieses aber gespeichert. Deshalb bin ich gerade so irritiert - und/oder stehe auf der Leitung.

Oder anders: was muss ich tun, um Password und ClientSecret dauerhaft zu speichern, OHNE sie in die fhem.cfg einzutragen? Das setzen über Web-Interface oder CommandLine funktioniert jedenfalls nicht...

Edit: Ergänzung zum besseren Verständnis
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?

amenomade

#83
Dann hast Du ein anderes Problem, weil ein set [gateway] password "so" in fhem.cfg genauso verarbeitet wird, als ein set Befehl in der Kommando Zeile (unter einigen Bedingungen wenn in fhem.cfg, aber sollte hier nicht relevant sein)

In beiden Fällen wird es [bei dir] nicht ordentlich gespeichert. Nur natürlich, wenn die set Befehle in fhem.cfg sind, werden sie beim nächsten Start wieder ausgeführt, aber password und clientsecret werden immer noch nicht richtig gespeichert.

Das ist aber nicht normal. (So was kann aber passieren, wenn man in fhem.cfg rumfummelt...)

Mach mal auf dem Account-Device verbose >=3 und schau mal in der Log ob beim set eine Fehlermeldung kommt.

Dann guckst Du in deinem "global" Device, ob das Attribut keyFileName gesetzt ist.
Dann im Verzeichnis ./FHEM/FhemUtils, ob die entspr. Datei geändert wurde (wenn keyFileName nicht gesetzt, heisst die Datei "uniqueID", wenn gesetzt heisst es wie im Attribut).
Wenn ja guckst Du in der Datei den Wert mit MieleAtHome_<name>_password: am Anfang, z.B.
MieleAtHome_miele_clientSecret:PXRlc3Q=
MieleAtHome_miele_passwd:PXBhc3M=


Ist der Eintrag da oder nicht? Wenn ja, wäre es noch zu prüfen, ob diese Werte in uniqueID genau gleich sind bei einem set in der Kommandozeile oder bei einem set in fhem.cfg (das kann ein Sonderzeichenproblem sein, abhängig vom Editor)

Wenn es immer noch nicht geht, poste bitte:
- ein "list" von deinem MieleAccount Device (login bitte anonymisieren)
- ein "list" von deinem Miele Gerät Device
- ein "list" von deinem global Device (longitude, latitude und ggf Proxy Einstellungen ebenfalls anonymisieren)
- das Ergebnis von "ls -la /opt/fhem/FHEM/FhemUtils" auf System-Ebene

Und noch am Rand: fhem.cfg direkt zu editieren ist in meisten Fällen eine schlechte Idee. Und ein "set" Befehl gehört nicht zu fhem.cfg

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zife

#84
Danke für die Hilfestellung... nehme ich mir kurzfristig vor!
Das mit dem fhem.cfg-Editieren weiss ich eigentlich, aber ich habe jahrelang "klassisch" programmiert und bei mir herrscht eine Art Quellcode-Sortier- und Kommentierzwang  :D, das geht direkt im Code irgendwie am besten. Vielleicht kann ich mirs noch abgewöhnen...

EDIT:
Hab es durchgetestet. Also... kurz, bevor ich diverse lists & Co poste: Alles funktioniert, keine Fehlermeldungen, die Einträge in der "uniqueID" werden korrekt abgelegt.
Aber in dem Moment, in dem ich die fhem.cfg aus welchem Grund auch immer öffne und speichere, werden die MieleAtHome-Einträge aus der "uniqueID"-Datei gelöscht - alle anderen nicht.
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?

amenomade

Ich würde sagen, etwas in deiner Installation beschädigt die uniqueID Datei.
Vielleicht findest Du etwas interessantes hier: https://forum.fhem.de/index.php/topic,108512.msg1024962.html#msg1024962

Wie sieht die Struktur deiner uniqueID Datei? Sind da z.B. leere Zeilen?

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zife

Ach herrje, was für ne Pandora-Büchse mach ich da auf  :o  Ich muss zugeben, auf Anhieb versteh ich in dem verlinkten Fred nix...

Die Struktur der Datei ist simpel - Die auskommentierte Zeile mit dem Hinweis, man möge nichts ändern, dann eine Zeile "uniqueID", und dann 2 Zeilen mit abgelegten Passwörtern, die auch zuverlässig funktionieren.
Keine Leerzeilen, nix sonst.

Wenn ich im Miele Account Device ClientSecret und Passwort setze, wird die UniqueID ergänzt durch die Zeilen:

MieleAtHome_MieleConnection_clientSecret: (...)
MieleAtHome_MieleConnection_passwd: (...)
MieleAtHome_MieleConnection_OAUTH2_ACCESS_TOKEN: (...)
MieleAtHome_MieleConnection_OAUTH2_REFRESH_TOKEN: (...)
MieleAtHome_MieleConnection_OAUTH2_EXPIRES_IN: (...)
MieleAtHome_MieleConnection_OAUTH2_EXPIRES_AT (...)

Diese verschwinden dann wieder, wie oben beschrieben.
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?

amenomade

ZitatAch herrje, was für ne Pandora-Büchse mach ich da auf  :o  Ich muss zugeben, auf Anhieb versteh ich in dem verlinkten Fred nix...
Naja, irgendwie klar: wenn die Werte ordentlich in der Datei beim "set" geschrieben werden, dann muss man breiter suchen, was die Ursache sein kann.

Ok die Struktur sieht gut aus.
Und beim Start von Fhem, keine merkwürdige Nachrichten in der Log?

Vielleicht kannst Du für dein Problem ein neues Thread kreieren? Das hat jetzt immer weniger mit Miele@Home zu tun.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Nur ein Check: was sagt { MAH_loadClientSecret($defs{MieleConnection}) } in der Fhem Kommandozeile?
Ist das genau dein ClientSecret?

Das gleiche mit { MAH_loadPassword($defs{MieleConnection}) }?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

zife

Zitat von: amenomade am 04 September 2020, 22:52:52
Vielleicht kannst Du für dein Problem ein neues Thread kreieren? Das hat jetzt immer weniger mit Miele@Home zu tun.

Ja, sehe ich inzwischen auch so, zugegeben.

Dein Check ergibt das korrekte ClientSecret und Passwort, solange sie noch in der UniqueID stehen. Sobald ich die fhem.cfg öffne und speichere, ergibt der Check nichts, einfach nur nichts. Das hat für sich eine entwaffnende Logik...

Also scheint alles zu funktionieren, nur dass ein Speichern der fhem.cfg die letzten Einträge aus der UniqueID löscht (was selbst ein "shutdown restart" nicht tut - das überleben die Einträge in der UniqueID schadlos).
fhem mit EnOcean, Gardena, Vorwerk, Miele und Teufel/Raumfeld-Integration... nur meine Kinder wollen sich damit nicht anständig steuern lassen. Wer weiß Rat?