"Herunterladbare Programme"

Begonnen von Prof. Dr. Peter Henning, 11 März 2024, 22:08:42

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich habe heute in der HomeConnect App gesehen, dass man neue Programme für Spülmaschinen herunterladen kann. Ausprobiert habe ich das mit "Intelligent" (wird via API angezeigt als "LearningDishwasher") und "Quick Wash and Dry" (im API angezeigt als "QuickD"). Insbesondere das in der deutschsprachigen App "Intelligent" genannte Programm scheint ganz interessant zu sein, weil es eine Optimierung des Spülvorgangs anbieten (soll).

Zu meinem Erstaunen kann man diese neuen Programme zwar in der App auswählen, aber die Maschine meldet sie nicht bei der Abfrage der verfügbaren Programme via API. Man kann sie auch nicht im API mit ..selected auswählen.

Die gute Frage ist also: Was überträgt die App via BSH Cloud an die Maschine, um eines der neuen Programme auszuwählen?
Nächste Frage: Wo sind die Abläufe der neuen Programme gespeichert: In der Maschine (warum sind sie dann nicht via API abrufbar), in der App (dafür würde "Download" sprechen) oder in der BSH-Cloud?

LG

pah

Shadow3561

Zitat von: Prof. Dr. Peter Henning am 11 März 2024, 22:08:42Die gute Frage ist also: Was überträgt die App via BSH Cloud an die Maschine, um eines der neuen Programme auszuwählen?
Nächste Frage: Wo sind die Abläufe der neuen Programme gespeichert: In der Maschine (warum sind sie dann nicht via API abrufbar), in der App (dafür würde "Download" sprechen) oder in der BSH-Cloud?

Moin,
Bei meiner Maschine ist das Intelligent-Programm fest integriert. Dafür gibt es einen Knopf bei den Spülprogrammen.
Die anderen Programme kann ich mit der App auf den Spüler übertragen, das dauert dann ein paar Minuten. Abrufen kann ich das runtergeladene Programm dan über die Taste "Favorit".
Habe ich "Vorspulen" heruntergeladen wird mit der "Favorit-Taste" vorgespült. Lade ich ein anderes Programm herunter ist dieses auf die "Favorit-Taste" gelegt und "Vorspulen" ist weg.


Bei meiner Maschine (SMV8YCX03E)
Zu 1
Das Programm wird auf den GS übertragen und ist dann entweder per Tastendruck oder in der App anwählbar.
Zu 2
In der Maschine. Jedenfalls ist bei mir "preRinse" von der API abrufbar (wird in den "programs" angezeigt), "Favorit" hingegen nicht. Dies war bis vor ein paar Tagen noch anders. Da war "Favorit.001" in den programs angelegt und auch mit dem Modul zu starten.
Ich kann mit deinem Modul jedenfalls das "preRinse" Programm starten und es wird alles richtig vom Modul interpretiert und angezeigt. Starte ich dagegen PreRinse über die Taste Favorit am GS dann wird ebenso das PreRinse-Programm gestartet, aber in der App das reading "BSH.Common.Program.Favorite.001"

Mit freundlichen Grüßen

Prof. Dr. Peter Henning

#2
Es gibt ein undokumentiertes (vorerst nur gelesenes) Attribut extraPrograms. Das muss man zunächst als userattr definieren, also
attr <device> userattr extraProgramsSetz das doch mal auf den Wert Favorite.001
attr <device> extraPrograms Favorite.001Danach get Programs ausführen, sonst wird es nicht an die Liste angehängt. Danach einen Seitenreload, damit es auch in der Liste auftaucht.

Und schreib bitte, ob Du dann in FHEM das neue Programm aufrufen kannst. Und natürlich, ob das dann PreRinse oder Intelligent ist.

LG

pah

Shadow3561

#3
Das wirft leider einen Fehler ins Log.
Das Programm wird nicht an den GS übergeben und lässt sich somit auch nicht starten.

LOG5 anbei

2024.03.18 18:31:47 4: SMV8YCX03E_new: request /api/homeappliances/xxxxxxxx/programs/selected
2024.03.18 18:31:47 4: SMV8YCX03E_new: no token refresh needed
2024.03.18 18:31:47 4: SMV8YCX03E_new: requestAfterToken https://api.home-connect.com/api/homeappliances/xxxxxxx/programs/selected
2024.03.18 18:31:47 4: SMV8YCX03E_new: response {
  "error": {
    "description": "Unknown program feature key: Dishcare.Dishwasher.Program.Favorite.001",
    "key": "SDK.Error.UnsupportedProgram"
  }
}

2024.03.18 18:24:34 1: [HomeConnect_HandleError] SMV8YCX03E_new: Error "Unknown program feature key: Dishcare.Dishwasher.Program.Favorite.001"

Prof. Dr. Peter Henning

Nene. Das wird schon richtig übergeben, die Fehlermeldung kommt vom BSH-Server.

LG

pah

Shadow3561

#5
Ich habe nicht behauptet, dass es ,,nicht" richtig übergeben wird.
Es kommt halt nur nicht beim GS an

Edit: Ich werde heute Abend mal schauen ob das ,,Favorit" Programm immer an der selben Stelle in den {programs} abgelegt wird.

Shadow3561

Die Programme zum runterladen werden an {programs} angehängt. Dies geschieht in der Reihenfolge wie sie auch in der App stehen.
Alle neuen Programme bleiben in {programs} hinterlegt.
Jetzt kann ich aber erst heute Abend testen was auf die Favorit-Taste gelegt wird und ob sich alle neuen Programme auch starten lassen.
Zur Info:
Beim GS kann man ,,get Settings" und ,,get Programs" auch ausführen wenn der GS ausgeschaltet (OperationState = ready und powerState = Off)und ,,RemoteStart = aus" ist. Bei deinem Modul wird die Abfrage verhindert.

Gruß
Daniel

Prof. Dr. Peter Henning

#7
Zitat von: Shadow3561 am 19 März 2024, 08:44:06Beim GS kann man ,,get Settings" und ,,get Programs" auch ausführen wenn der GS ausgeschaltet
Weiß ich. Allerdings wollte ich eben nicht das machen, was BSH offenbar toleriert: Sonderregeln für bestimmte Geräteklassen einführen.
Das könnte ich machen, wenn ich alle Geräteklassen testen könnte - so aber wäre es fatal.

ZitatDie Programme zum runterladen werden an {programs} angehängt. Dies geschieht in der Reihenfolge wie sie auch in der App stehen.
Bei mir eben nicht. "Intelligent" erscheint nicht in der vom GS zurückgelieferten Liste, lässt sich bisher auch nur in der App starten.

Betreffend "Favorite": der GS kennt ja nur einen Favoriten, vlt. mal versuchen mit "extraPrograms=Favorite" ohne .001.

ZitatIch habe nicht behauptet, dass es ,,nicht" richtig übergeben wird.
Es kommt halt nur nicht beim GS an
Na ja, weiter unten hattest du ja geschrieben, dass sich das aus FHEM starten ließ. An der Übergabe der Werte für SelctedProgram hat sich aber gar nichts geändert - also, gute Frage, warum ließ sich das zeitweise starten und wird jetzt vom Server abgelehnt?


LG

pah

Shadow3561

Habe gerade den Auftrag erteilt den GS an zu schalten und auf Favorit zu tippen. Es bleibt bei Vorspülen.
Das Programm der Taste kann man entweder in der App oder am Gerät direkt ändern.
Die heruntergeladenen Programme lassen sich nur über die App starten. Ob es mit FHEM funktioniert liefere ich heute Abend nach.

Zitatalso, gute Frage, warum ließ sich das zeitweise starten und wird jetzt vom Server abgelehnt?
Weil BSH mal wieder etwas geändert hat.

ZitatBetreffend "Favorite": der GS kennt ja nur einen Favoriten, vlt. mal versuchen mit "extraPrograms=Favorite" ohne .001.
Probiere ich auch heute Abend.


ZitatBei mir eben nicht. "Intelligent" erscheint nicht in der vom GS zurückgelieferten Liste, lässt sich bisher auch nur in der App starten.
Evtl. liegt es am Alter des GS. Mein Modell ist recht neu und hat auch eine Taste für das ,,Intelligent" Programm.
Dafür fehlt die Taste für ,,Vorspülen"

Prof. Dr. Peter Henning

ZitatEvtl. liegt es am Alter des GS.
Kann sein. Unsere Kiste ist zwar "neu" (Fertigungsdatum Juni 2022), wir haben uns aber wegen der extrem langen Programmlaufzeiten seinerzeit für eine ältere Modellreihe entschieden.

BSH ist für mich inzwischen mit der "Sirius Kybernetik Corporation" aus dem Anhalter zu übersetzen.

LG

pah

Shadow3561

Vielleicht ist dein GS ja. depressiv wie Marvin  :o

Shadow3561

Zitat von: Prof. Dr. Peter Henning am 19 März 2024, 08:54:44Betreffend "Favorite": der GS kennt ja nur einen Favoriten, vlt. mal versuchen mit "extraPrograms=Favorite" ohne .001.
Es funktioniert nicht. Weder Favorit.001, Favorit oder 001.

Des Weiteren lassen sich mit deinem Modul die heruntergeladenen Programme auswählen, im GS-Display steht dann App-Programm.
Nur leider lassen sich weder die heruntergeladenen noch die normalen Programme starten.

LOG5 anbei

Zitat2024.03.19 17:17:20 1: [HomeConnect_ReadEventChannel] SMV8YCX03E_new: SelectedProgram = Auto2
2024.03.19 17:17:20 1: [HomeConnect] SMV8YCX03E_new: set command: StartProgram
2024.03.19 17:17:20 1: [HomeConnect_startProgram] SMV8YCX03E_new: option StartInRelative has value
2024.03.19 17:17:20 1: [HomeConnect] SMV8YCX03E_new: start program Auto2 with uri /api/homeappliances/013080530166000676/programs/active and data {"data":{"key":"Dishcare.Dishwasher.Program.Auto2","options":[{"key":"BSH.Common.Option.StartInRelative","value":"Int."}]}}
2024.03.19 17:17:20 1: [HomeConnect_HandleError] SMV8YCX03E_new: Error "Key BSH.Common.Option.StartInRelative has unexpected type or value Int."
2024.03.19 17:17:46 5: [HomeConnect_ReadEventChannel] SMV8YCX03E_new: event channel searching for data, fileno:"8", nfound:"1", loopCounter:"1"

Hier noch ein Bild was das Modul ausgibt wenn man die Favorit-Taste am GS betätigt

Grüsse
Daniel


Prof. Dr. Peter Henning

#12
Ah, mal langsam.

Ich fange bei Favorite an: Der normale Präfix ist Dishcare.Dishwasher.Program. Es könnte durchaus sein, dass die Leute von der Sirius Kybernetik Corporation bei den Favoriten (weil "Favorit" zunächst einmal nicht gerätespezifisch ist ::) ) einen anderen Präfix verlangen, nämlich BSH.Common.Program. Hier angehängt ist eine Zwischenversion, in der ich nur diesen Präfix ändere, wenn das gewählte Programm mit "Favorite" anfängt. Also bitte mal ausprobieren, ob es mit "extraPrograms=Favorite.001" und dieser Modulversion geht.

Betreffend den Aufruf von Auto2: Hier gibt es eine Fehlermeldung, weil vorher der Wert von StartInRelative nicht gesetzt worden ist. Das heißt keineswegs, dass das Programm nicht bekannt ist.Bitte vorher einfach mal get ProgramOptions, dann set DelayRelative 00:01 ausführen, dann set startProgram ausführen  und eine Minute warten.

LG

pah

Shadow3561

#13
Zitat von: Prof. Dr. Peter Henning am 19 März 2024, 17:51:41Ah, mal langsam.

Ich fange bei Favorite an: Der normale Präfix ist Dishcare.Dishwasher.Program. Es könnte durchaus sein, dass die Leute von der Sirius Kybernetik Corporation bei den Favoriten (weil "Favorit" zunächst einmal nicht gerätespezifisch ist ::) ) einen anderen Präfix verlangen, nämlich BSH.Common.Program. Hier angehängt ist eine Zwischenversion, in der ich nur diesen Präfix ändere, wenn das gewählte Programm mit "Favorite" anfängt. Also bitte mal ausprobieren, ob es mit "extraPrograms=Favorite.001" und dieser Modulversion geht.

LG

pah

2024.03.19 17:56:13 1: [HomeConnect] SMV8YCX03E_new: set command: StartProgram
2024.03.19 17:56:13 1: [HomeConnect_startProgram] SMV8YCX03E_new: option StartInRelative has value 60 seconds
2024.03.19 17:56:13 1: [HomeConnect] SMV8YCX03E_new: start program Favorite.001 with uri /api/homeappliances/xxxxxx/programs/active and data {"data":{"key":"Dishcare.Dishwasher.Program.Favorite.001","options":[{"key":"BSH.Common.Option.StartInRelative","value":60,"unit":"seconds"}]}}
2024.03.19 17:56:13 4: SMV8YCX03E_new: request /api/homeappliances/xxxxxx/programs/active
2024.03.19 17:56:13 4: SMV8YCX03E_new: no token refresh needed
2024.03.19 17:56:13 4: SMV8YCX03E_new: requestAfterToken https://api.home-connect.com/api/homeappliances/xxxxxx/programs/active
2024.03.19 17:56:14 4: SMV8YCX03E_new: response {
  "error": {
    "description": "Unknown program feature key: Dishcare.Dishwasher.Program.Favorite.001",
    "key": "SDK.Error.UnsupportedProgram"
  }
}
2024.03.19 17:56:14 1: [HomeConnect_HandleError] SMV8YCX03E_new: Error "Unknown program feature key: Dishcare.Dishwasher.Program.Favorite.001"


Zitat von: Prof. Dr. Peter Henning am 19 März 2024, 17:51:41Betreffend den Aufruf von Auto2: Hier gibt es eine Fehlermeldung, weil vorher der Wert von StartInRelative nicht gesetzt worden ist. Das heißt keineswegs, dass das Programm nicht bekannt ist.Bitte vorher einfach mal get ProgramOptions, dann set DelayRelative 00:01 ausführen, dann set startProgram ausführen  und eine Minute warten.

LG

pah

Dann startet er alle Programme aus {programs} ausser Favorit

Darf ich fragen warum der Umweg über set DelayRelative 00:01?

Meine Frau schaltet den GS morgens ein und aktiviert Remote-Start.
Wenn genug PV_Überschuss vorhanden ist löst mein DOIF aus mit set GS startProgram.


Prof. Dr. Peter Henning

So, ich hab es bei mir auch noch einmal ausprobiert. Ich kann zwar "Favorite.001" mit einem Programm belegen, und das auch am Gerät oder in der App starten - aber nicht über das API, obwohl ich jetzt auch den Startbefehl sauber mit BSH.Common.Program.Favorite.001 absetze.

Wird nicht unterstützt. Trotzdem lasse ich das Feature erstmal drin.

Neue Version des Moduls im Haupt-Thread. Die behebt auch die unschöne Fehlermeldung, wenn man ohne Delay sofort starten will.

LG

pah