[Neues Modul] Miele@Home

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

Vorheriges Thema - Nächstes Thema

tdyne

Hallo zusammen

Ich hatte auch das Problem, dass password und clientSecret nicht mehr in die uniqueID geschrieben wurden.
Nachdem ich aus lauter Verzweiflung meinen Developer Account bei Miele erneuert hatte, war der Weg die uniqueID aus dem Backup zu holen auch versperrt (ja, vorher Nachdenken hätte geholfen).

Also ein bisschen geforscht und gefunden, dass die Funktion encode_base64 an das Ende immer ein newline hängt.
Das war bis zum 05. Februar 2024 kein Problem, aber dann hat Rudi in der Subroutine setKeyValue eine zusätzliche Prüfung eingebaut und damit newline Zeichen verboten.
D.h. das newline Zeichen muss vor dem Aufruf von setKeyValue weg (in anderen Modulen wird das auch gemacht).
Also einfach nach dem Aufruf der Funktion encode_base64 in Zeile 2183, die folgende Zeile einfügen:

$value =~ s/\n$//g;

Modul neu laden und es läuft wieder wie vorher.
Allerdings nur bis zum nächsten Update, es sei denn das Modul wird vom Update ausgeschlossen.

@choenig
Könntest Du diese Korrektur noch einfügen?


Viele Grüße
Thomas

juemuc

Hallo Thomas,

da Christian nur noch sehr selten hier im Forum ist und dringend ein Nachfolger für das Miele-Modul gesucht wird, wäre es super wenn Du Dir das überlegen könntest  O:-) Ich habe leider nicht die Programmierkenntnisse, die dazu nötig wären.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

betateilchen

Zitat von: tdyne am 27 Mai 2024, 16:43:59D.h. das newline Zeichen muss vor dem Aufruf von setKeyValue weg (in anderen Modulen wird das auch gemacht).
Also einfach nach dem Aufruf der Funktion encode_base64 in Zeile 2183, die folgende Zeile einfügen:

Man könnte auch einfach den Aufruf von encode_base64 so gestalten, dass erst gar kein newline eingefügt wird.
Ein Blick in die Doku hilft weiter:

Zitatencode_base64($str, $eol);
Encode data by calling the encode_base64() function. The first argument is the string to encode. The second argument is the line-ending sequence to use. It is optional and defaults to "\n". The returned encoded string is broken into lines of no more than 76 characters each and it will end with $eol unless it is empty. Pass an empty string as second argument if you do not want the encoded string to be broken into lines.

Also die genannte Zeile 2183

$value = encode_base64($value) if ($MAH_hasMimeBase64);
ändern in

$value = encode_base64($value,'') if ($MAH_hasMimeBase64);
und der Spuk ist vorbei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: juemuc am 27 Mai 2024, 16:49:22da Christian nur noch sehr selten hier im Forum ist

Zuletzt aktiv am: 20 Mai 2024, 19:44:53
So lange ist das nicht her.
Vielleicht sollte ihn einfach mal jemand anschreiben und auf das Problem hinweisen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

juemuc

3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

betateilchen

#365
Solange das Modul noch in der offiziellen Verteilung von FHEM ist (und nicht nach ./contrib verschoben) und er keinen Nachfolger gefunden hat, steht der Modulautor in der Verantwortung, solche Fehler zu beheben.

Das ist auch der Grund, warum ich diese minimale Änderung zur Fehlerbehebung nicht einchecken werde.
Dazu gibt es klare Regeln hier.



Nachtrag:

In meinem ./contrib Bereich habe ich eine Modulversion abgelegt, in der die Änderung enthalten ist.
Die Datei kann man direkt vom SVN Server laden und in den Ordner ./FHEM kopieren.

http://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/betateilchen/48_MieleAtHome.pm

Betrachtet das einfach als kurzfristige Hilfe, nicht als dauerhafte Lösung.
Die Pflege des Moduls werde ich auf keinen Fall übernehmen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!