Autor Thema: Option != Option  (Gelesen 312 mal)

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8552
Option != Option
« am: 11 September 2022, 17:52:33 »
Bei der Bearbeitung des Moduls zum komfortableren Setzen von Optionen bin ich über folgende Sache gestolpert.

1. Es gibt "Settings" und "Options"
2. Settings - wie z.B. ChildLock - können jederzeit geändert werden. Haben teilweise eigene Kacheln in der App
3. Options gibt es in zwei Geschmacksrichtungen.

Typ 1: Kann nur gesetzt werden, wenn ein Programm läuft. Beispiel: SilenceOnDemand beim Geschirrspüler. Ist in der App ausgegraut, wenn das Programm nicht läuft. Bei laufendem Programm wird das dann gesetzt mit url /api/homeappliances/<id>/programs/active/options/Dishcare.Dishwasher.Option.SilenceOnDemand 
und Daten {"data":{"key":"Dishcare.Dishwasher.Option.SilenceOnDemand","value":true}}

In der Ursprungsversion des Moduls 48_HomeConnect.pm ist das Setzen solcher Optionen auch nur erlaubt, wenn ein Programm läuft.

Typ 2: Kann nur gesetzt werden, wenn KEIN Programm läuft. Beispiel: VarioSpeedPlus. SO, und jetzt kommt das Problem:

- Setzt man diese Option in der App vor dem Programmstart, wird diese Einstellung an die Maschine übermittelt und ändert sich auch im FHEM-Status. Es gibt also einen Befehl an das API, der nur diese Option beeinflusst.

- Das geht aber NICHT mit url /api/homeappliances/<id>/programs/active/options/Dishcare.Dishwasher.Option.VarioSpeedPlus 
und Daten {"data":{"key":"Dishcare.Dishwasher.Option.VarioSpeedPlus","value":true}}

- Die Tatsache, dass dies nicht geht, steht so halb(!) im Widerspruch zur Api-Dokumentation https://api-docs.home-connect.com/programs-and-options?#dishwasher_variospeed-plus-option, denn dort ist nur vom GET-Befehl die Rede.

- Wenn man die Maschine startet, mit den Daten {"data":{"key":"Dishcare.Dishwasher.Program.Eco50","options":[{"key":"BSH.Common.Option.StartInRelative","value":0,"unit":"seconds"}...{"key":"Dishcare.Dishwasher.Option.VarioSpeedPlus","value":true}]}}

kann man das zwar mit der eingeschalteten VarioSpeedPlus-Option hinbekommen. Aber dann läuft die Maschine eben.

Also ist die Frage: Welche URL und welche Daten muss man übermitteln, damit VarioSpeedPlus eingeschaltet wird, OHNE dass die Maschine startet. Dass es gehen muss, sieht man bei der Bedienung der App.

Würde mich freuen, wenn darüber jemand Bescheid wüsste.

LG

pah

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8552
Antw:Option != Option
« Antwort #1 am: 11 September 2022, 18:23:27 »
Ich antworte mir selbst:

Es geht mit

url /api/homeappliances/<id>/programs/selected/options/Dishcare.Dishwasher.Option.VarioSpeedPlus
und Daten {"data":{"key":"Dishcare.Dishwasher.Option.VarioSpeedPlus","value":true}}

Nicht dokumentiert in der API.

Also ein kleiner Sieg über BSH...

LG