Ergonomische Version von 48_HomeConnect.pm

Begonnen von Prof. Dr. Peter Henning, 11 September 2022, 09:28:52

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich habe mich über die vollkommen unergonomischen Set-Befehle geärgert.

Anbei eine - vollkommen inoffizielle und nicht autorisierte - Version von 48_HomeConnect.pm, in welcher diese Befehle (zumindest in fast allen Fällen der mir zur Verfügung stehenden BSH-Geräte) solche kryptischen Kommandos wie

set <device> BSH.Common.Setting.ChildLock true

ersetzt durch

set <device> childLock on

Es fehlen noch ein paar Dinge, wie etwa das komfortable Setzen von Alarm- oder Verzögerungszeiten und die Auswahl eines Programms, das kommt noch.

Bitte mal testen und Wünsche  für Erweiterungen der Kommandos (z.B. auch für Kaffeemaschinen) hier posten.

LG

pah

Edit: Ich habe die Version noch einmal aktualisiert - jetzt können sowohl die Optionen gesetzt werden, die nur während des Programmlaufs möglich sind, als auch diejenigen, die nur vor dem Programmstart wählbar sind.


Stonemuc

#2
Ich muss mal kurz was zu diesem ganzen unergonomischen Zeug über die BSH Api sagen....es nervt mich total.
Kann man da was bei der Waschmaschine vereinfachen?

Den Geschirrspüler kann ich z.B. mit:
set SX758X06TE startProgram
starten - der läuft dann auch in jeglicher vorher eingestellter Variation der Programme und Zusatzoptionen an.

Bei der Waschmaschine sieht das ganz anders aus, denn mit:
set WAYH2841 startProgram
kommt nur die Fehlermeldung, dass ich ein Program auswählen muss...
Also gebe ich dann:
set WAYH2841 startProgram Mix
ein und die Maschine läuft an. Aber nur wenn auch Mix eingestellt ist am "Handrad" der Maschine.

Wenn ich da etwas automatisieren möchte per DOIF, ist das ein riesen Mist, da man dann die Programmbezeichnung splitten muss und das Programm dann erst starten kann - wenn er es zuvor denn auch richtig abgerufen hat was eingestellt ist, denn die readings aktualisieren sich auch nicht immer.

Gut wäre wenn man die Waschmaschine so wie den Geschirrspüler starten könnte...
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Prof. Dr. Peter Henning

#3
Das ist auch bei meiner Waschmaschine das Ziel....

Ich denke, dass dieses dauernde Abfragen der Optionen, das immer wieder alle Auswahlmöglichkeiten durcheinander wirft, als nächstes herausgeworfen wird.

Das muss einmal geholt und dann dauerhaft als Attribut gespeichert werden.

LG

pah

Stonemuc

#4
Danke, dass du dich darum kümmerst. Ich werde deine Version mal testen.
Ich bin leider programmiertechnisch eine richtige Niete...hab ich schon damals gemerkt, als ich mal das Vordiplom in Elektrotechnik gemacht habe....
Nen fertigen Code kann ich teilweise umschreiben mit Mühe und viel Zeit, aber was neues implementieren geht nicht.

Ich löse das bei der Waschmaschine aktuell mit dem Splitten des Programms...

Was mir noch einfällt - die Waschmaschine zeigt immer eine Sekunde Restlaufzeit an - warum auch immer. Kann man das noch irgendwie beheben? Oder ist das ein Fehler bei BSH in der API?
FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

Prof. Dr. Peter Henning

#5
So, ich bin mal wieder etwas weiter. Programmauswahl und das Einstellen von Optionen etc. funktioniert bei der Spülmaschine schon ganz gut. Auch kann ich mit

set <Spülmaschine> selectProgram Quick45
set <Spülmaschine> delayType endtime
set <Spülmaschine> delayTime 06:00
set <Spülmaschine> startProgram

erreichen, dass die Spülmaschine mitten in der Nacht losläuft und um Punkt 06:00 in der Frühe fertig ist (andere Werte für delayType sind "relative" und "absolute". Da kann man raten, was die machen).

Beim Ofen funktioniert das Setzen des Alarms auf diese Weise schon ganz gut, auch progDuration geht zu setzen. Programmauswahl und Temperatur aber nicht :-((

Leider scheitern diese etwas komfortableren Befehle für den Ofen an "Insufficient scope" - also fehlenden Rechten von FHEM. Die 2017 mitgeteilten Ausreden von BSH, dass dieses vom Gesetzgeber nicht zugelassen sei, sind Unsinn - schließlich kann ich über die BSH  App den Ofen aus der Ferne starten.

Ich werde mich also als Nächstes der Waschmaschine widmen.

LG

pah

P.S.: Anbei die aktuelle Bastelversion des Moduls, sowie ein Icon für den verzögerten Start der Spülmaschine

EDIT: Ups, die zuerst angehängte Version hatte einen peinlichen Fehler drin, ist jetzt behoben.


Det20

Wie geil, gerade die Endzeit ist echt sinnvoll.
Danke dir!

Prof. Dr. Peter Henning

Ein wenig kryptiscch ist das immer noch, weil mir noch die zündende Idee fehlt, das mit den relativ begrenzten Mitteln der normalen Widgets zu realisieren.

Derzeit ist der Ablauf so:

- Zuerst delayType wählen (relative, absolute oder endtime) bzw. alarmType (relative oder absolute).
- Dann delayTime bzw. alarmTime eingeben. Nur Ziffern => Anzahl der Sekunden

-- bei delayTime hh:mm => Stunden und Minuten, sagen wir 6:00
        Wenn delayType = relative => Starte in 6 Stunden
        Wenn delayType = absolute => Starte um 6:00 in der Frühe
        Wenn delayType = endtime => Starte so, dass das gewählte Programm um 6:00 in der Frühe zu Ende ist

-- denn bei alarmTime hh:mm:ss => optional Stunden, Minuten und Sekunden, sagen wir 04:30
        Wenn alarmType = relative => Alarm in 4 Minuten 30 Sekunden
        Wenn alarmType = absolute => Alarm um 4 Minuten und 30 Sekunden nach Mitternacht - nicht um 4:30 in der Frühe, dazu müsste man 04:30:00 eingeben

LG

pah

   

Prof. Dr. Peter Henning

Die oben angehängte Version hatte noch einen neu eingebauten Fehler, den habe ich jetzt behoben.

LG

pah

Prof. Dr. Peter Henning

So, ich habe da jetzt noch etwas Arbeit hineingesteckt. Insbesondere hat sich im Betrieb herausgestellt, dass die Angabe "delaytype" und "delayTime" eben nicht sehr komfortabel ist. Stattdessen kann man jetzt eines der drei Kommandos "delayRelative", "delayStartTime", "delayEndTime" oder eines des beiden Kommandos "alarmRelative", "alarmEndTime" verwenden, um den verzögerten Start des Programms oder den Ablauf des Kurzzeitweckers _in_ einer relativen Zeitspanne oder _um_ eine bestimmte Zeit einzustellen.

Dazu gibt es jetzt eine schöns Sprachsteuerung. Meine Chefin muss also nur noch sagen:

"Lass die Spülmaschine bis um 6 Uhr laufen" - und bekommt einen verzögerten Start, der morgen früh um 6:00 abläuft.

LG

pah

P.S.: Waschmaschine ist als nächstes dran. Frage in die Runde: Hat irgendjemand einen Workaround gefunden, einen Backofen doch zu steuern?

Supadone

Danke erstmal für deine Mühen :)
Falls es dir etwas hilft kann ich dir leider nur weitere Infos zu Kaffeemaschine und Dunstabzug anbieten.

Grüße

Andy

Prof. Dr. Peter Henning

Die würde ich tatsächlich auch gerne "richtig" steuern mit diesem Modul.

Sehn wir mal. Aktuell bin ich durch eine fette Omikron-Infektion ziemlich geerdet.

LG

pah

Det20

#12
Hallo,

leider läuft diese neue Version noch nicht rund. Sobald ich meinen Geschirrspüler mit "set ... startProgram" anschalten will (Fernstart ist aktiv), stürzt FHEM ab. Als Meldung sehe ich im Log nur


2022.11.07 11:09:43 1: [HomeConnect] SN578S06TD: starting program Eco50
Can't use an undefined value as a HASH reference at ./FHEM/48_HomeConnect.pm line 614.


... Obwohl Debug auf 2, Verbose auf 5 ist. Soweit ich mich erinnere, lief das aber schonmal. Glaube ich zumindest.

Prof. Dr. Peter Henning

Öh, das tut mir leid - aber in meiner aktuell ganz gut laufenden Version ist in Zeile 614 ein Kommentar...

LG

pah

Det20


Det20

#15
Hat leider nicht funktioniert, habe aber den Fehler gefunden. Folgende Readings habe ich:


BSH.Common.Setting.PowerState - BSH.Common.EnumType.PowerState.Off
BSH.Common.Status.DoorState - BSH.Common.EnumType.DoorState.Closed
BSH.Common.Status.OperationState - BSH.Common.EnumType.OperationState.Ready


Das Modul ist der Meinung, dass "PowerState" off ist (obwohl er an und Ready ist). Nachdem ich die Zeilen 575/576 sowie 714/715 auskommentiert habe, bin ich mit "startProgram" schonmal weitergekommen, allerdings musste ich noch ein Program wählen (obwohl "selectProgram" korrekt gefüllt war). Nachdem ich das mit "set ... selectProgram" gewählt habe, konnte ich den Geschirrspüler mit "startProgram" korrekt starten und es wird auch vom Modul erkannt, dass er läuft.

Wieso das Gerät als "Off" erkannt wird, konnte ich leider nicht prüfen, war dann froh, dass er an ist (bin im Büro).

Prof. Dr. Peter Henning

OK, schau ich mir mit Priorität an.

LG

pah

Prof. Dr. Peter Henning

#17
Der Knackpunkt bei selectProgram ist, dass das Gerät das eingestellte Programm beim Abschalten vergisst - aber das Modul (noch nicht).

Einen Grund für den Crash habe ich nicht gefunden.

LG

pah

Edit: Kann es sein, dass das Modul bei Dir nicht in regelmäßigen Abständen beim Gerät anfragt? Attribut updateTimer hat welchen Wert?

Det20

Danke. Aber wieso wird das Gerät als 'Power off' erkannt, obwohl es ready ist und sich auch (nach aus kommentieren) starten lässt?

Prof. Dr. Peter Henning


Tomhri

Hallo,

zur info, hatte für die Waschmaschie in  48_HomeConnect.pm

my @HomeConnect_SettablePgmOptions = (
  "BSH.Common.Option.FinishInRelative", hinzugefügt. Erste Tests waren erfolgversprechend.

Beim Geschirspüler frage ich ab ob BSH.Common.Status.RemoteControlActive gesetzt ist dan mit BSH.Common.Option.StartInRelative 60 seconds starte ich ihn (wenn genug Strom vorhanden ist).

LG
Thomas

Prof. Dr. Peter Henning

#21
So, eine Sache läuft jetzt stabil und mit sehr hohem WAF: Spülmaschine mit einem Tastendruck oder einem Sprachbefehl komplex programmieren.

Erste Komponente: Die oben gepostete "inoffizielle" Version des 48_HomeConnect.pm.

Zweite Komponente: Ein Dummy "Geschirrspuelen" mit Attributen

   defaultProgram Eco50
   readingList active
   setList    EndTime:time StartTime:time RelativeTime:time Program
   userattr   defaultProgram


Dritte Komponente: Ein DOIF mit der Definition
([SNxxx:".*BSH.Common.EnumType.OperationState.Finished.*"])
({speak("TText yyy",":130:")},
{speak("Tab1.EG",":130:")},
setreading SNxxx msgAll derzeit nicht)
DOELSEIF
([Geschirrspuelen:".*Time.*"] and [SNxxx] ne "Ready")
(set SNxxx powerOn,
  {Log 1,"=======> Powering on SNxxx"},
  setreading Geschirrspuelen event $EVENT,
  setreading Geschirrspuelen active wait)
DOELSEIF
( ([Geschirrspuelen:event] =~ /RelativeTime.*/ and [SNxxx:".*Ready.*"]) or ([Geschirrspuelen:".*RelativeTime.*"] and [SNxxx] eq "Ready") )
(set SNxxx selectProgram Eco50,
  {Log 1,"=======> Selecting Eco50 on SNxxx"})
(set SNxxx requestProgramOptions,
  {Log 1,"=======> Requesting options from SNxxx"})
(set SNxxx delayRelative {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;Log 1,"=======> Setting SNxxxto relative delay $evt[1]";;return $evt[1])} )
(setreading Geschirrspuelen active start)
DOELSEIF
(([Geschirrspuelen:event] =~ /EndTime.*/ and [Sxxx:".*Ready.*"]) or ([Geschirrspuelen:".*EndTime.*"] and [SNxxx] eq "Ready"))
(set SNxxx selectProgram Eco50,
  {Log 1,"=======> Selecting Eco50 on SNxxx"})
(set SNxxx requestProgramOptions,
  {Log 1,"=======> Requesting options from SNxxx"})
(set SNxxx delayEndTime {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;Log 1,"=======> Setting SNxxx to endtime delay $evt[1]";;return $evt[1])} )
(setreading Geschirrspuelen active start)
DOELSEIF
(([Geschirrspuelen:event] =~ /StartTime.*/ and [SNxxx:".*Ready.*"]) or ([Geschirrspuelen:".*StartTime.*"] and [SNxxx] eq "Ready"))
(set SNxxx selectProgram Eco50,
  {Log 1,"=======> Selecting Eco50 on SNxxx"})
(set SNxxx requestProgramOptions,
  {Log 1,"=======> Requesting options from SNxxx"})
(set SNxxx delayStartTime {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;Log 1,"=======> Setting SNxxx to starttime delay $evt[1]";;return $evt[1])} )
(setreading Geschirrspuelen active start)
DOELSEIF
([Geschirrspuelen:active] eq "start" and [Sxxx:".*BSH.Common.Option.StartInRelative.*"] )
(set SNxxx startProgram,
{Log 1,"=======> Delayed start SNxxx"})
(setreading Geschirrspuelen event -,
  setreading Geschirrspuelen active no)


und Attributen
do         always
   wait       0:0:5,10,10,2:5,10,10,2:5,10,10,2:0


Mit diesen Komponenten läuft das schon so:

set Geschirrspuelen endTime 06:00 => Spülmaschine wird hochgefahren, Programm ausgewählt und die Startverzögerung so eingestellt, dass die Kiste um 6:00 in der Frühe fertig ist.

set Geschirrspuelen startTime 17:00 => Spülmaschine wird hochgefahren, Programm ausgewählt und die Startverzögerung so eingestellt, dass die Kiste um 17:00 startet

set Geschirrspuelen relativeTime 02:00 => Spülmaschine wird hochgefahren, Programm ausgewählt und die Startverzögerung so eingestellt, dass die Kiste in 2 Stunden startet.

Und sich danach mit einer Sprachausgabe meldet (:130: ist der Code für eine vor-aufgenommene Nachricht "Die Spülmaschine ist fertig"), die einmal über ein wandhängendes Tablet ausgegeben wird und zweitens meiner Chefin auch als Telegram-Nachricht gesendet wird. Der Start wird natürlich meiner Chefin auch in einem Telegram-Keyboard angeboten, so dass das mit _einem_ Knopf auf dem Handy geht.

Vierte Komponente: Ein Eintrag für den entsprechenden Dialog in meinem RiveScript-Chatbot (der Bestandteil des Moduls Babble ist):
//########################################################################################
//# Spülmaschine
//########################################################################################

+ (starte|schalte|mach) die spülmaschine um * uhr [an]
- OK, ich starte die Spülmaschine um <star2> Uhr 
^ <call>startdishwasher <star2></call>

+ (dass|lass|lasse) die spülmaschine laufen (bis|um) [um] * uhr
* <star2> == bis => OK, ich lasse die Spülmaschine laufen bis um <star3> 
^ <call>stopdishwasher <star3></call>
* <star2> != bis => OK, ich lasse die Spülmaschine laufen um <star3> 
^ <call>startdishwasher <star3></call>

+ (dass|lass|lasse) die spülmaschine [laufen] über nacht [laufen]
- OK, ich lasse die Spülmaschine laufen bis um 6 Uhr
^ <call>stopdishwasher 6:00</call>

+ (starte|schalte|mach) die spülmaschine (sofort|jetzt) [an]
- OK, ich starte die Spülmaschine sofort

//object for delayed start of dishwasher
> object startdishwasher perl
  my $rs = shift;
  my $st = join(" ",@_);
  $st =~ s/(\d?\d)\suhr\s(\d?\d)/$1\:$2/;
  $st =~ s/^(\d?\d)$/$1\:00/;
  main::Log 1,"[rive] startdishwasher $st";
  main::fhem("set Geschirrspuelen StartTime $st");
< object

//object for delayed stop of dishwasher
> object stopdishwasher perl
  my $rs = shift;
  my $st = join(" ",@_);
  $st =~ s/(\d?\d)\suhr\s(\d?\d)/$1\:$2/;
  $st =~ s/^(\d?\d)$/$1\:00/;
  main::Log 1,"[rive] stopdishwasher $st";
  main::fhem("set Geschirrspuelen EndTime $st");
< object


Et voilà: Mit den Sprachbefehlen
"Hallo Jeannie" <pling, Tablet wartet auf Spracheingabe>
"Lass die Spülmaschine über Nacht laufen" <Jeannie antwortet mit Sprachausgabe "OK, ich lasse die Spülmaschine laufen bis um 6 Uhr">

wird die Kiste so gestartet, dass sie um 6:00 fertig ist.

LG

pah

Prof. Dr. Peter Henning

#22
So, ich habe in das Modul jetzt eine Menge Arbeit investiert.

Ganz fertig ist das Ding noch nicht, aber immerhin ist es jetzt besser konform mit der API-Dokumentation von BSH.

Das Frontend ist jetzt mehrsprachig (Sprache wird durch die globale Spracheinstellung festgelegt), derzeit sind nur DE und EN implementiert.

All die unmöglichen Prefixes werden automatisch entfernt - es sei denn, dass man das Attribut includePrefixes auf 1 setzt.

- Spülmaschine: Voll bedienbar, alle Features möglich. Es fehlt noch: Im "Set" nur die Optionen anzubieten, die das gewählte Programm ermöglicht.
- Waschmaschine: Noch nicht fernstartbar, bei verzögertem Start mit der App werden zwar alle Daten korrekt angezeigt, mit dem Setzen hapert es aber noch
- Backofen: Wegen der Sperre des API durch BSH ist nur der Kurzzeitwecker ("Alarm") fernbedienbar, aber alle Anzeigen erfolgen korrekt.
- Kochfeld: Wegen generellen Sicherheitsstufe ist nur der Kurzzeitwecker ("Alarm") fernbedienbar, aber alle Anzeigen erfolgen korrekt.

Für alle anderen BSH-Hausgeräte ist das zumindest besser vorbereitet, als die Originalversion des Moduls.

Für jede Art von Feedback wäre ich dankbar.

LG

pah

P.S.: Und noch einmal die Warnung: Es handelt sich um eine vollkommen unoffizielle Alpha-Version des Moduls, nur für Testzwecke.

Prof. Dr. Peter Henning

#23
So, die wesentlichen Defizite sind behoben, auch eine Waschmaschine lässt sich jetzt damit wunderbar steuern :-)
Das Modul generiert immer noch eine Masse von Debug-Ausgaben im Log. Es wäre schöne, wenn jemand das mit anderen Geräten testen könnte:
FridgeFreezer, Coffeemaker.

Und zwar immer in der Sequenz (natürlich nur, sofern das Ding über Programme und/oder verzögerten Start verfügt):

- Get Settings
- Get Programs
- Set selectProgram <program>
- Get ProgramOptions
- Set delayEndTime 08:30
- Set startProgram

Nachdem das alles noch ein wenig versäubert wurde, werde ich mit ein wenig JavaScript dafür sorgen, dass die einstellbaren Optionen in der Detailansicht des Devices eingeblendet werden. So halb funktioniert das schon, siehe Bild

LG

pah

olbetec

Ich erhalte mit einem FridgeFreezer noch tr_DoorState mit dem Türstatus auf Deutsch, tr_State1, tr_State2 ohne Inhalt. Bei GetSettings werden die Readings alle noch einmal mit Präfix eingelesen, obwohl ich sie vorher gelöscht habe. (Ja, hatte das Device gelöscht und neu angelegt). Beim ersten Setzen eines Wertes legt er ein neues Reading ohne Präfix brav an. Momentan nimmt er kein set mehr an, weder mit noch ohne Suffix der Einheit, sowohl mit als auch ohne Präfix. Im Log steht nix außer der Updatemeldung bei getSettings.
Ich propiere weiter....
FB 7390 (6.03), CUL868 Ver3.4 (fw1.58), FHEM 5.5
7x FHT80b, 6x FHT80TF, 12x FHT8V, 3x FS20ST, FS20KSE, EMWC, EMGZ, 4x FS20PIRU, FS20DI20, FS20DI22, 3x HMS100T, 4xS300TH, 2xPID, FS20S8M mit diy 6-fach Relaiskarte zur Steuerung der Brennwerttherme (Außenfühler-Boost, Wasserladung, Tag/Nacht/Auto)

Supadone

#25
Vielen Dank für deine Mühe :)

Ein List eines Coffeemakers:
Internals:
   CFGFN     
   DEF        hcconn SIEMENS-TI909701HC-68A40E15C2B9
   FUUID      63fdcdfe-f33f-1d25-6da3-4a17987f502e7e5e
   NAME       TI909701HC
   NR         946
   STATE     
   TYPE       HomeConnect
   aliasname  Kaffeevollautomat
   brand      Siemens
   commandPrefix ConsumerProducts.CoffeeMaker.Program.
   eventChannelTimeout 1677659072.02661
   eventCount 390
   events     BeanContainerEmpty,WaterTankEmpty,DripTrayFull
   haId       SIEMENS-TI909701HC-68A40E15C2B9
   hcconn     hcconn
   prefix     ConsumerProducts.CoffeeMaker
   programs   Beverage.Ristretto,Beverage.EspressoDoppio,Beverage.Espresso,Beverage.EspressoMacchiato,Beverage.Coffee,Beverage.Cappuccino,Beverage.LatteMacchiato,Beverage.CaffeLatte,Beverage.MilkFroth,Beverage.WarmMilk,CoffeeWorld.KleinerBrauner,CoffeeWorld.GrosserBrauner,CoffeeWorld.Verlaengerter,CoffeeWorld.VerlaengerterBraun,CoffeeWorld.WienerMelange,CoffeeWorld.FlatWhite,CoffeeWorld.Cortado,CoffeeWorld.CafeCortado,CoffeeWorld.CafeConLeche,CoffeeWorld.CafeAuLait,CoffeeWorld.Kaapi,CoffeeWorld.KoffieVerkeerd,CoffeeWorld.Galao,CoffeeWorld.Garoto,CoffeeWorld.Americano,CoffeeWorld.RedEye,CoffeeWorld.BlackEye,CoffeeWorld.DeadEye
   retrycounter 0
   settings   PowerState,ChildLock,ConsumerProducts.CoffeeMaker.Setting.CupWarmer
   type       CoffeeMaker
   vib        TI909701HC
   READINGS:
     2023-03-01 08:46:56   BSH.Common.Option.ProgramProgress 0 %
     2023-03-01 08:46:51   BSH.Common.Root.ActiveProgram -
     2023-03-01 08:46:51   BSH.Common.Root.SelectedProgram Beverage.Cappuccino
     2023-02-28 17:48:05   BSH.Common.Setting.PowerState BSH.Common.EnumType.PowerState.Standby
     2023-03-01 08:31:32   BSH.Common.Status.DoorState BSH.Common.EnumType.DoorState.Closed
     2023-03-01 08:45:20   BSH.Common.Status.LocalControlActive 0
     2023-03-01 08:46:51   BSH.Common.Status.OperationState BSH.Common.EnumType.OperationState.Ready
     2023-03-01 08:31:32   BSH.Common.Status.RemoteControlStartAllowed 1
     2023-03-01 09:14:33   BeanAmount      ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
     2023-03-01 09:14:33   BeanContainerSelection ConsumerProducts.CoffeeMaker.EnumType.BeanContainerSelection.Right
     2023-03-01 09:09:19   ChildLock       0
     2023-02-28 13:06:26   ConsumerProducts.CoffeeMaker.Event.DripTrayFull BSH.Common.EnumType.EventPresentState.Off
     2023-03-01 08:31:59   ConsumerProducts.CoffeeMaker.Option.BeanAmount ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrongPlus
     2023-03-01 08:31:59   ConsumerProducts.CoffeeMaker.Option.BeanContainerSelection ConsumerProducts.CoffeeMaker.EnumType.BeanContainerSelection.Left
     2023-03-01 08:31:59   ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.94C
     2023-03-01 08:31:59   ConsumerProducts.CoffeeMaker.Option.FillQuantity 160 ml
     2023-03-01 08:31:59   ConsumerProducts.CoffeeMaker.Option.FlowRate ConsumerProducts.CoffeeMaker.EnumType.FlowRate.Intense
     2023-03-01 09:09:19   ConsumerProducts.CoffeeMaker.Setting.CupWarmer 0
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffee 1724
     2023-03-01 08:46:56   ConsumerProducts.CoffeeMaker.Status.BeverageCounterCoffeeAndMilk 2058
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterFrothyMilk 103
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterHotMilk 83
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterHotWater 45214 ml
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterPowderCoffee 0
     2023-03-01 08:31:32   ConsumerProducts.CoffeeMaker.Status.BeverageCounterRistrettoEspresso 72
     2023-03-01 09:14:33   FillQuantity    120 ml
     2023-03-01 09:14:33   FlowRate        ConsumerProducts.CoffeeMaker.EnumType.FlowRate.Normal
     2023-03-01 09:09:19   PowerState      On
     2023-03-01 09:14:33   SelectedProgram Beverage.Coffee
     2023-03-01 09:14:33   state           
     2023-03-01 09:14:33   tr_State1       
     2023-03-01 09:14:33   tr_State2       
   helper:
     bm:
       HomeConnect_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        28.02. 10:48:46
         max        5.60283660888672e-05
         tot        5.60283660888672e-05
         mAr:
           HASH(0x559a4cf260)
           TI909701HC HomeConnect hcconn SIEMENS-TI909701HC-68A40E15C2B9
       HomeConnect_Get:
         cnt        14
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 09:12:53
         max        0.00340008735656738
         tot        0.00759792327880859
         mAr:
           HASH(0x559a4cf260)
           TI909701HC
           Programs
       HomeConnect_Set:
         cnt        51
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 09:14:31
         max        0.00254201889038086
         tot        0.0154819488525391
         mAr:
           HASH(0x559a4cf260)
           TI909701HC
           selectProgram
           Beverage.Coffee


Und hier die Logausgaben:

Get Settings:

2023.03.01 09:09:19.700 1: [HomeConnect_ResponseGetSettings] TI909701HC: get settings response {
  "data": {
    "settings": [{
      "key": "BSH.Common.Setting.ChildLock",
      "value": false
    }, {
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.On"
    }, {
      "key": "ConsumerProducts.CoffeeMaker.Setting.CupWarmer",
      "value": false
    }]
  }
}
2023.03.01 09:09:19.702 1: [HomeConnect_ResponseGetSettings] TI909701HC: updating setting PowerState to On
2023.03.01 09:09:19.702 1: [HomeConnect_ResponseGetSettings] TI909701HC: updating setting ChildLock to 0
2023.03.01 09:09:19.703 1: [HomeConnect_ResponseGetSettings] TI909701HC: updating setting ConsumerProducts.CoffeeMaker.Setting.CupWarmer to 0


Get Programs:
2023.03.01 09:12:53.169 1: [HomeConnect_ResponseGetPrograms] TI909701HC: get programs response {
  "data": {
    "programs": [{
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoDoppio"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.MilkFroth"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.WarmMilk"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KleinerBrauner"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.GrosserBrauner"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Verlaengerter"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.VerlaengerterBraun"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.WienerMelange"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.FlatWhite"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Cortado"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeCortado"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeConLeche"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeAuLait"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Kaapi"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KoffieVerkeerd"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Galao"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Garoto"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Americano"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.RedEye"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.BlackEye"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.DeadEye"
    }]
  }
}


Set selectProgram Beverage.Coffee
2023.03.01 09:14:31.370 3: [HomeConnect] TI909701HC: set command: selectProgram
2023.03.01 09:14:31.370 1: [HomeConnect] command to select program Beverage.Coffee
2023.03.01 09:14:33.884 1: [HomeConnect_ReadEventChannel] TI909701HC: SelectedProgram = Beverage.Coffee
2023.03.01 09:14:33.899 1: [HomeConnect_ReadEventChannel] TI909701HC: BeanAmount = ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
2023.03.01 09:14:33.899 1: [HomeConnect_ReadEventChannel] TI909701HC: FillQuantity = 120
2023.03.01 09:14:33.900 1: [HomeConnect_ReadEventChannel] TI909701HC: FlowRate = ConsumerProducts.CoffeeMaker.EnumType.FlowRate.Normal
2023.03.01 09:14:33.900 1: [HomeConnect_ReadEventChannel] TI909701HC: BeanContainerSelection = ConsumerProducts.CoffeeMaker.EnumType.BeanContainerSelection.Right


GetProgrammOptions
2023.03.01 09:16:37.955 1: [HomeConnect_ResponseGetPrograms] TI909701HC: get programs response {
  "data": {
    "programs": [{
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoDoppio"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.MilkFroth"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.Beverage.WarmMilk"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KleinerBrauner"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.GrosserBrauner"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Verlaengerter"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.VerlaengerterBraun"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.WienerMelange"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.FlatWhite"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Cortado"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeCortado"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeConLeche"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeAuLait"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Kaapi"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KoffieVerkeerd"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Galao"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Garoto"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Americano"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.RedEye"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.BlackEye"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.DeadEye"
    }]
  }
}


Was ich jedoch vermisse ist ein Set startProgram. So ist es momentan leider noch nicht möglich über das Modul einen Kaffeebezug nicht nur auszuwählen sondern auch wirklich zu starten.

Grüße

Andy

Prof. Dr. Peter Henning

@Supadone: Prima, das hilft weiter. Ich habe heute noch etwas Zeit, das sollte also bis heute abend behoben sein.

LG

pah

Supadone

Eine Dunstabzugshaube habe ich auch noch im Angebot:

List:
Internals:
   CFGFN     
   DEF        hcconn SIEMENS-LC97FMR60-68A40E083938
   FUUID      63fdcdfe-f33f-1d25-0a70-dd0171c1c6c57cef
   NAME       LC97FMR60
   NR         947
   STATE      Idle
   TYPE       HomeConnect
   aliasname  Dunstabzugshaube
   brand      Siemens
   commandPrefix Cooking.Common.Program.Hood.
   eventChannelTimeout 1677659518.03777
   eventCount 31
   events     GreaseFilterMaxSaturationNearlyReached,GreaseFilterMaxSaturationReached
   haId       SIEMENS-LC97FMR60-68A40E083938
   hcconn     hcconn
   prefix     Cooking.Hob
   programs   Cooking.Common.Program.Hood.Automatic,Cooking.Common.Program.Hood.Venting,Cooking.Common.Program.Hood.DelayedShutOff
   retrycounter 0
   settings   Cooking.Common.Setting.LightingBrightness,PowerState,Cooking.Common.Setting.Lighting
   type       Hood
   vib        LC97FMR60
   READINGS:
     2023-02-28 20:04:23   BSH.Common.Status.LocalControlActive 0
     2023-02-28 10:50:42   BSH.Common.Status.OperationState BSH.Common.EnumType.OperationState.Inactive
     2023-02-28 10:50:42   BSH.Common.Status.RemoteControlActive 1
     2023-02-28 10:50:42   BSH.Common.Status.RemoteControlStartAllowed 1
     2023-03-01 09:29:02   Cooking.Common.Setting.Lighting 0
     2023-03-01 09:29:02   Cooking.Common.Setting.LightingBrightness 10 %
     2023-03-01 09:29:02   PowerState      Off
     2023-02-28 14:07:49   state           Idle
   helper:
     bm:
       HomeConnect_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        28.02. 10:48:46
         max        3.29017639160156e-05
         tot        3.29017639160156e-05
         mAr:
           HASH(0x559bac2300)
           LC97FMR60 HomeConnect hcconn SIEMENS-LC97FMR60-68A40E083938
       HomeConnect_Get:
         cnt        23
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 09:29:02
         max        0.00422811508178711
         tot        0.00843715667724609
         mAr:
           HASH(0x559bac2300)
           LC97FMR60
           Settings
       HomeConnect_Set:
         cnt        70
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 09:31:53
         max        0.00573182106018066
         tot        0.0372574329376221
         mAr:
           HASH(0x559bac2300)
           LC97FMR60
           PowerState
           On


Get Programs:
2023.03.01 09:27:58.484 1: [HomeConnect_ResponseGetPrograms] LC97FMR60: get programs response {
  "data": {
    "programs": [{
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Automatic"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Venting"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.DelayedShutOff"
    }]
  }
}


get settings
2023.03.01 09:29:02.749 1: [HomeConnect_ResponseGetSettings] LC97FMR60: get settings response {
  "data": {
    "settings": [{
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }, {
      "key": "Cooking.Common.Setting.Lighting",
      "value": false
    }, {
      "key": "Cooking.Common.Setting.LightingBrightness",
      "value": 10,
      "unit": "%"
    }]
  }
}
2023.03.01 09:29:02.750 1: [HomeConnect_ResponseGetSettings] LC97FMR60: new prefix found in Cooking.Common.Setting.LightingBrightness
2023.03.01 09:29:02.750 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting Cooking.Common.Setting.LightingBrightness to 10 %
2023.03.01 09:29:02.750 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting PowerState to Off
2023.03.01 09:29:02.750 1: [HomeConnect_ResponseGetSettings] LC97FMR60: new prefix found in Cooking.Common.Setting.Lighting
2023.03.01 09:29:02.750 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting Cooking.Common.Setting.Lighting to 0


Sämtliche set Befehle haben aktuell leider keine Funktion

Prof. Dr. Peter Henning

@olbetec:

Mit diesen verbalen Beschreibungen kann ich leider gar nichts anfangen. Bitte so posten, wie Supadone.

LG

pah

Prof. Dr. Peter Henning

@Supadone:

ZitatSämtliche set Befehle haben aktuell leider keine Funktion
Wundert mich etwas. Mindestens set childLock on/off sollte bei der Kaffeemaschine funktionieren.

LG

pah

Supadone

Hab die Dunstabzugshaube gelöscht und nochmal neu anlegen lassen, es waren auch ein paar Readings leer. Jetzt sieht alles gleich besser aus:

init:
2023.03.01 15:27:02.188 1: [HomeConnect_ResponseInit] LC97FMR60: defined as HomeConnect Hood Siemens LC97FMR60
2023.03.01 15:27:02.316 1: [HomeConnect_ResponseGetPrograms] LC97FMR60: get programs response {
  "data": {
    "programs": [{
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Automatic"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Venting"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.DelayedShutOff"
    }]
  }
}
2023.03.01 15:27:02.323 1: [HomeConnect_ResponseUpdateStatus] LC97FMR60: status response {
  "data": {
    "status": [{
      "key": "BSH.Common.Status.LocalControlActive",
      "value": false
    }, {
      "key": "BSH.Common.Status.OperationState",
      "value": "BSH.Common.EnumType.OperationState.Inactive"
    }, {
      "key": "BSH.Common.Status.RemoteControlActive",
      "value": true
    }, {
      "key": "BSH.Common.Status.RemoteControlStartAllowed",
      "value": true
    }]
  }
}
2023.03.01 15:27:02.324 1: [HomeConnect_ResponseUpdateStatus] LC97FMR60: updating reading LocalControlActive to 0
2023.03.01 15:27:02.324 1: [HomeConnect_ResponseUpdateStatus] LC97FMR60: updating reading RemoteControlStartAllowed to 1
2023.03.01 15:27:02.324 1: [HomeConnect_ResponseUpdateStatus] LC97FMR60: updating reading RemoteControlActive to 1
2023.03.01 15:27:02.324 1: [HomeConnect_ResponseUpdateStatus] LC97FMR60: updating reading OperationState to Inactive


get settings:
2023.03.01 15:27:15.623 1: [HomeConnect_ResponseGetSettings] LC97FMR60: get settings response {
  "data": {
    "settings": [{
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }, {
      "key": "Cooking.Common.Setting.Lighting",
      "value": false
    }, {
      "key": "Cooking.Common.Setting.LightingBrightness",
      "value": 10,
      "unit": "%"
    }]
  }
}
2023.03.01 15:27:15.623 1: [HomeConnect_ResponseGetSettings] LC97FMR60: new prefix found in Cooking.Common.Setting.LightingBrightness
2023.03.01 15:27:15.624 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting Cooking.Common.Setting.LightingBrightness to 10 %
2023.03.01 15:27:15.624 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting PowerState to Off
2023.03.01 15:27:15.624 1: [HomeConnect_ResponseGetSettings] LC97FMR60: new prefix found in Cooking.Common.Setting.Lighting
2023.03.01 15:27:15.624 1: [HomeConnect_ResponseGetSettings] LC97FMR60: updating setting Cooking.Common.Setting.Lighting to 0


get Programs:
2023.03.01 15:30:52.381 1: [HomeConnect_ResponseGetPrograms] LC97FMR60: get programs response {
  "data": {
    "programs": [{
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Automatic"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.Venting"
    }, {
      "constraints": {
        "execution": "startonly"
      },
      "key": "Cooking.Common.Program.Hood.DelayedShutOff"
    }]
  }
}


list
Internals:
   CFGFN     
   DEF        hcconn SIEMENS-LC97FMR60-68A40E083938
   FUUID      63ff609c-f33f-1d25-98aa-4ace1d5dd81dd1e1
   NAME       LC97FMR60
   NR         13499
   STATE      Inactive
   TYPE       HomeConnect
   aliasname  Dunstabzugshaube
   brand      Siemens
   eventChannelTimeout 1677681097.41412
   eventCount 4
   events     GreaseFilterMaxSaturationNearlyReached,GreaseFilterMaxSaturationReached
   haId       SIEMENS-LC97FMR60-68A40E083938
   hcconn     hcconn
   prefix     Cooking.Hob
   programs   Cooking.Common.Program.Hood.Automatic,Cooking.Common.Program.Hood.Venting,Cooking.Common.Program.Hood.DelayedShutOff
   retrycounter 0
   settings   Cooking.Common.Setting.LightingBrightness,PowerState,Cooking.Common.Setting.Lighting
   type       Hood
   vib        LC97FMR60
   READINGS:
     2023-03-01 15:27:15   Cooking.Common.Setting.Lighting 0
     2023-03-01 15:27:15   Cooking.Common.Setting.LightingBrightness 10 %
     2023-03-01 15:27:02   LocalControlActive 0
     2023-03-01 15:27:02   OperationState  Inactive
     2023-03-01 15:27:15   PowerState      Off
     2023-03-01 15:27:02   RemoteControlActive 1
     2023-03-01 15:27:02   RemoteControlStartAllowed 1
     2023-03-01 15:27:02   state           Inactive
     2023-03-01 15:27:02   tr_RemoteControlState Fernstart aktiv
     2023-03-01 15:27:02   tr_State1       Ruhezustand
     2023-03-01 15:27:02   tr_State2       Ruhezustand
   helper:
     bm:
       HomeConnect_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 15:26:36
         max        4.10079956054688e-05
         tot        4.10079956054688e-05
         mAr:
           HASH(0x5596c42ba0)
           LC97FMR60 HomeConnect hcconn SIEMENS-LC97FMR60-68A40E083938
       HomeConnect_Get:
         cnt        11
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 15:27:15
         max        0.00355410575866699
         tot        0.00589942932128906
         mAr:
           HASH(0x5596c42ba0)
           LC97FMR60
           Settings
       HomeConnect_Set:
         cnt        26
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        01.03. 15:27:01
         max        0.00465083122253418
         tot        0.0153396129608154
         mAr:
           HASH(0x5596c42ba0)
           LC97FMR60
           init


Zitat von: Prof. Dr. Peter Henning am 01 März 2023, 14:17:57
@Supadone:
Wundert mich etwas. Mindestens set childLock on/off sollte bei der Kaffeemaschine funktionieren.

Sorry, du hast recht. set childLock on/off ist mir wohl beim ausprobieren durchgerutscht
2023.03.01 15:40:29.090 3: [HomeConnect] TI909701HC: set command: childLock
2023.03.01 15:40:31.106 1: [HomeConnect_ReadEventChannel] TI909701HC: ChildLock = 1
2023.03.01 15:40:34.738 1: [HomeConnect_ReadEventChannel] TI909701HC: ChildLock = 1
2023.03.01 15:40:59.541 3: [HomeConnect] TI909701HC: set command: childLock
2023.03.01 15:41:01.318 1: [HomeConnect_ReadEventChannel] TI909701HC: ChildLock = 0
2023.03.01 15:41:05.061 1: [HomeConnect_ReadEventChannel] TI909701HC: ChildLock = 0

Prof. Dr. Peter Henning

Das hängt mit der vollkommen unlogischen Struktur des API zusammen: Es gibt Settings und Options, und bei den Options solche, die man separat setzen kann, und solche, die man nur zusammen mit dem Startbefehl loswerden kann. Und die Präfixe sind noch absurder gewählt...

LG

pah

Prof. Dr. Peter Henning

#32
So, jetzt habe ich nochmal heftig daran gearbeitet.

Das Modul holt sich jetzt - genau wie die App - alle erlaubten Optionen und Settings aus dem Gerät, es wird nichts mehr hart codiert. Das ist übrigens auch die Empfehlung von BSH für das API, die harte Codierung der Optionen in der "offiziellen" Modulversion ignoriert das vollkommen.

Derzeit muss man "Get <device> Settings" noch manuell anstoßen falls das leer ist. Mit einem "Get <device> Programs" werden die Programme befüllt - soweit vorhanden. Mit einem "Set <device> SelectedProgram <Programm>" wird das dann ausgewählt, ferner automatisch alle Optionen dafür geholt.

Derzeit muss man dann noch manuell einmal die Seite reloaden - damit die Dropdown-Liste im "Set" die richtigen Werte bekommt.

Und dann muss man das Programm auch noch mit "StartProgram" manuell starten.

Vorher kann man durchaus mit "Set <device> DelayEndTime <hh:mm>" eine Zeit setzen, zu der das Programm zu Ende sein soll.

Das funktioniert bei Waschmaschine und Spülmaschine schon sehr gut.

Auch der CoffeeMaker und andere Geräte sollten jetzt funktionieren. Achtung: Während die Set-Befehle vorher mit Kleinbuchstaben begannen, beginnen sie jetzt genau wie die Readings mit Großbuchstaben.

Noch nicht ganz ausgetestet ist, was beim Setzen von includePrefixes=1 geschieht. Das liegt daran, dass die BSH-Entwickler aus irgendeinem kühlen Grund sogar bei Programmen unterschiedliche Prefixes verwenden...

LG

pah

Supadone

Ich habe gerade mal versucht mir einen Kaffee mit dem Modul zu machen, hat leider noch nicht ganz geklappt ;)

Es fehlt leider ein Befehl die Maschine überhaupt einzuschalten.

set SelectedProgramm Beverega.Coffee wird an der Maschine korrekt ausgeführt
2023.03.03 10:11:50.349 3: [HomeConnect] TI909701HC: set command: SelectedProgram
2023.03.03 10:11:52.048 1: [HomeConnect_GetProgramOptionsResponse] TI909701HC: key CoffeeTemperature has current value  and default value 94C
2023.03.03 10:11:52.048 1: [HomeConnect_GetProgramOptionsResponse] TI909701HC: key BeanAmount has current value VeryStrong and default value VeryStrong
2023.03.03 10:11:52.048 1: [HomeConnect_GetProgramOptionsResponse] TI909701HC: key FillQuantity has current value 60 ml and default value 120
2023.03.03 10:11:52.048 1: [HomeConnect_GetProgramOptionsResponse] TI909701HC: key FlowRate has current value Normal and default value Normal
2023.03.03 10:11:52.049 1: [HomeConnect_GetProgramOptionsResponse] TI909701HC: key BeanContainerSelection has current value Right and default value Right
2023.03.03 10:11:54.652 1: [HomeConnect_ReadEventChannel] TI909701HC: SelectedProgram = Beverage.Coffee
2023.03.03 10:11:54.666 1: [HomeConnect_ReadEventChannel] TI909701HC: FillQuantity = 120


eine Veränderung der Parameter ist aber wiederum leider nicht möglich. Die Einstellungen per App werden aber von der Maschine unterstützt.
2023.03.03 10:11:59.357 3: [HomeConnect] TI909701HC: set command: CoffeeTemperature
2023.03.03 10:11:59.544 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.03 10:26:50.675 3: [HomeConnect] TI909701HC: set command: BeanAmount
2023.03.03 10:26:50.833 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.03 10:27:50.662 3: [HomeConnect] TI909701HC: set command: BeanContainerSelection
2023.03.03 10:27:50.817 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.03 10:28:03.069 3: [HomeConnect] TI909701HC: set command: FlowRate
2023.03.03 10:28:03.214 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"


Der Kaffee wird korrekt zubereitet:
2023.03.03 10:22:46.724 3: [HomeConnect] TI909701HC: set command: StartProgram
2023.03.03 10:22:46.724 1: [HomeConnect] TI909701HC: start program Beverage.Coffee with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active and data {"data":{"key":"ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee","options":[]}}
2023.03.03 10:22:51.725 1: [HomeConnect_ReadEventChannel] TI909701HC: OperationState = ActionRequired
2023.03.03 10:22:51.745 1: [HomeConnect_ReadEventChannel] TI909701HC: OperationState = Run
2023.03.03 10:22:51.753 1: [HomeConnect_ReadEventChannel] TI909701HC: ActiveProgram = Beverage.Coffee
2023.03.03 10:22:51.760 1: [HomeConnect_ReadEventChannel] TI909701HC: key BSH.Common.Root.SelectedProgram has extra prefix for
2023.03.03 10:22:51.760 1: [HomeConnect_ReadEventChannel] TI909701HC: SelectedProgram =
2023.03.03 10:24:07.238 1: [HomeConnect_ReadEventChannel] TI909701HC: OperationState = Finished
2023.03.03 10:24:07.253 1: [HomeConnect_ReadEventChannel] TI909701HC: SelectedProgram = Beverage.Coffee
2023.03.03 10:24:07.268 1: [HomeConnect_ReadEventChannel] TI909701HC: OperationState = Ready
2023.03.03 10:24:07.283 1: [HomeConnect_ReadEventChannel] TI909701HC: key BSH.Common.Root.ActiveProgram has extra prefix for
2023.03.03 10:24:07.283 1: [HomeConnect_ReadEventChannel] TI909701HC: ActiveProgram =
2023.03.03 10:24:07.302 1: [HomeConnect_ReadEventChannel] TI909701HC: BeverageCounterCoffee = 1725



Ein set PowerOff klappt leider auch nicht und führt zu folgender Meldung
2023.03.03 10:10:34.221 3: [HomeConnect] TI909701HC: set command: PowerOff
2023.03.03 10:10:34.455 1: [HomeConnect_HandleError] TI909701HC: Error "Key BSH.Common.Setting.PowerState has unknown enum type or enum member BSH.Common.EnumType.PowerState.Off."


Es gibt noch auch noch ein set ConsumerProducts.CoffeeMaker.Setting.CupWarmer, hier müsste noch der Präfix entfernt werden.


Supadone

Bei der Dunstabzughaube klappt leider der Befehl zum starten nicht.

2023.03.03 11:30:20.730 3: [HomeConnect] LC97FMR60: set command: StartProgram
2023.03.03 11:30:20.730 1: [HomeConnect] LC97FMR60: start program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/active and data {"data":{"key":"Cooking.Hob.Program.Hood.Venting","options":[]}}
2023.03.03 11:30:21.274 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hob.Program.Hood.Venting"


Die set-Befehle Cooking.Common.Setting.Lighting und Cooking.Common.Setting.LightingBrightness haben noch den Präfix und können nicht über ein Dropdown-Feld geschaltet werden. Mit 1/0 bzw on/off wird der Befehl aber ausgeführt
2023.03.03 11:33:22.132 3: [HomeConnect] LC97FMR60: set command: Cooking.Common.Setting.Lighting
2023.03.03 11:33:25.194 1: [HomeConnect_ReadEventChannel] LC97FMR60: Lighting = 1
2023.03.03 11:33:25.195 1: [HomeConnect_ReadEventChannel] LC97FMR60: LightingBrightness = 15
2023.03.03 11:33:25.209 1: [HomeConnect_ReadEventChannel] LC97FMR60: LightingBrightness = 82
2023.03.03 11:33:25.216 1: [HomeConnect_ReadEventChannel] LC97FMR60: LightingBrightness = 100


Grüße

Andy

Prof. Dr. Peter Henning

#35
ZitatDer Kaffee wird korrekt zubereitet:

Das ist mal das Allerwichtigste. Den Rest bekommen wir auch noch hin, da muss ich noch ein wenig in der Doku für CoffeeMaker wühlen.

Schon mal vorab zur Dunstabzugshaube: In Zeile 137 des Moduls steht
my $HC_HoodPrefix = "Cooking.Hob";
Das ist natürlich falsch, dort muss hin
my $HC_HoodPrefix = "Cooking.Hood";
Dann sollte auch das Schalten klappen und die Settings stimmen.

Edit: Zum Coffeemaker.

PowerOn wird nur angezeigt, wenn die Kiste ausgeschaltet ist. Erschien mir sinnvoll.


Bitte mal im Device das Attribut HC_debug auf 1 setzen. Dann kommt beim Ändern einer Option eine Nachricht im Log wie
Zitat[HomeConnect_Set] changing option with uri .... and data ...

Die bräuchte ich mal.

LG

pah

Anliegend Version 1.0alpha6

Supadone

Zitat von: Prof. Dr. Peter Henning am 03 März 2023, 15:23:30
PowerOn wird nur angezeigt, wenn die Kiste ausgeschaltet ist. Erschien mir sinnvoll.

Ja, aber leider wird bei der Kaffeemaschine auch im ausgeschaltetem Zustand nur PowerOff angezeigt.

Bei der Dunstabzugshaube funktioniert nun auch das PowerOn und PowerOff.
Hier finde ich es aber nicht so sinnvoll alle weiteren set-Befehle erst nach einem PowerOn zu bekommen. Das PowerOn startet automatisch die Dunstabzugshaube, die Kochfeldbeleuchtung kann somit nicht mehr unabhängig von der Abluftfunktion gesteuert werden (hatte ich zum Beispiel immer mit einem Bewegungsmelder in der Küche gekoppelt)

Zitat von: Prof. Dr. Peter Henning am 03 März 2023, 15:23:30
Bitte mal im Device das Attribut HC_debug auf 1 setzen. Dann kommt beim Ändern einer Option eine Nachricht im Log wie
Die bräuchte ich mal.
2023.03.03 17:26:31.071 1: [HomeConnect_Set] changing setting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/settings/Cooking.Common.Setting.Lighting and data {"data":{"key":"Cooking.Common.Setting.Lighting","value":true}}


Grüße

Andy

Prof. Dr. Peter Henning

ZitatJa, aber leider wird bei der Kaffeemaschine auch im ausgeschaltetem Zustand nur PowerOff angezeigt.
Hmmmm. Verstehe ich noch nicht ganz.

ZitatHier finde ich es aber nicht so sinnvoll alle weiteren set-Befehle erst nach einem PowerOn zu bekommen
Das ist sehr richtig - beim Kochfeld und den Backöfen geht ja der AlarmTimer auch unabhängig vom Betriebszustand. Da werde ich mir also für die "Hood" irgendetwas ausdenken, um das zu vermeiden.

Was ergibt denn der Befehl
{Dumper($defs{"LC97FMR60"}->{data}->{options})}

LG

pah

Supadone

Zitat von: Prof. Dr. Peter Henning am 03 März 2023, 20:06:17
Hmmmm. Verstehe ich noch nicht ganz.

Es sieht so aus als würde nicht "erkannt werden" dass der Status Inactive ist. Das Reading ist zwar da, aber es sind alle anderen set-Befehle vorhanden wie wenn das Gerät eingeschaltet ist.

Zitat von: Prof. Dr. Peter Henning am 03 März 2023, 20:06:17
Was ergibt denn der Befehl
{Dumper($defs{"LC97FMR60"}->{data}->{options})}

Sorry, ich steh gerade auf dem Schlauch. Wo soll ich das denn eingeben? Einfach in der Eingabezeile? Dann kommt
$VAR1 = {};

Grüße

Andy

Prof. Dr. Peter Henning

#39
Hmmm. Wieder eine Ungereimtheit im API, denn bisher habe ich die Anzeige davon abhängig gemacht, ob "PowerState" = Off ist. Scheint also beim Coffemaker nicht zu funktionieren, sondern da ist dann "OperationState" das Relevante.

Ich habe jetzt mal die ganzen Restriktionen für die Anzeige der grundlegenden Kommandos herausgenommen, sie werden also in der anliegenden Version immer(!) in der Liste angezeigt. Das ist offenbar für die Entwicklung nötig.

Und zum Thema des Dumper-Kommandos: Ja, genau dort. Und eigentlich sollte dann die Anzeige der ganze mit GetProgramOptions geholte Kram sein, also z.B.

Zitat$VAR1 = {
          'FinishInRelative' => [
                                  'BSH.Common.Option',
                                  'Int',
                                  0,
                                  '(0,86400)',
                                  undef,
                                  undef
                                ],
          'Temperature' => [
                             'LaundryCare.Washer.Option',
                             'LaundryCare.Washer.EnumType.Temperature',
                             'Cold',
                             'Cold,GC20,GC30,GC40,GC50,GC60,GC70,GC80,GC90',
                             bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                             undef
                           ],
          'SpinSpeed' => [
                           'LaundryCare.Washer.Option',
                           'LaundryCare.Washer.EnumType.SpinSpeed',
                           'RPM400',
                           'RPM400,RPM600,RPM800,RPM1000,RPM1200,RPM1400',
                           $VAR1->{'Temperature'}[4],
                           undef
                         ]
        };

LG

pah

Supadone

Bei der Kaffeemaschine klappts, bei der Dunstabzugshaube leider nicht. Ändert auch nichts daran ob der Status Inactive oder Running ist.

Für die Kaffeemaschine:
$VAR1 = {
          'BeanContainerSelection' => [
                                        'ConsumerProducts.CoffeeMaker.Option',
                                        'ConsumerProducts.CoffeeMaker.EnumType.BeanContainerSelection',
                                        'Right',
                                        'Right,Left',
                                        bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                                        undef
                                      ],
          'CoffeeTemperature' => [
                                   'ConsumerProducts.CoffeeMaker.Option',
                                   'ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature',
                                   '94C',
                                   '88C,90C,92C,94C,95C,96C',
                                   $VAR1->{'BeanContainerSelection'}[4],
                                   undef
                                 ],
          'FillQuantity' => [
                              'ConsumerProducts.CoffeeMaker.Option',
                              'Int',
                              120,
                              '(60,260)',
                              $VAR1->{'BeanContainerSelection'}[4],
                              undef
                            ],
          'BeanAmount' => [
                            'ConsumerProducts.CoffeeMaker.Option',
                            'ConsumerProducts.CoffeeMaker.EnumType.BeanAmount',
                            'VeryStrong',
                            'VeryMild,Mild,MildPlus,Normal,NormalPlus,Strong,StrongPlus,VeryStrong,VeryStrongPlus,ExtraStrong,DoubleShot,DoubleShotPlus,DoubleShotPlusPlus,CoffeeGround',
                            $VAR1->{'BeanContainerSelection'}[4],
                            undef
                          ],
          'FlowRate' => [
                          'ConsumerProducts.CoffeeMaker.Option',
                          'ConsumerProducts.CoffeeMaker.EnumType.FlowRate',
                          'Normal',
                          'Normal,Intense,IntensePlus',
                          $VAR1->{'BeanContainerSelection'}[4],
                          undef
                        ]
        };


Zitat von: Prof. Dr. Peter Henning am 04 März 2023, 05:54:48
Ich habe jetzt mal die ganzen Restriktionen für die Anzeige der grundlegenden Kommandos herausgenommen, sie werden also in der anliegenden Version immer(!) in der Liste angezeigt. Das ist offenbar für die Entwicklung nötig.
Jetzt ist auch PowerOn vorhanden und lässt sich problemlos starten :)

Grüße

Andy

Prof. Dr. Peter Henning

#41
Na, schon einen Schritt weiter...

1. Funktioniert jetzt ALLES bei der Kaffeemaschine? Auch der CupWarmer?

2. Es gibt eine neue Logzeile für Debug-Zwecke:
"[HomeConnect_PowerState] $name: setting PowerState->$target while OperationState=$operationState and PowerState=$powerState";

Da wüsste ich doch gerne mal, wie die bei den beiden Geräten lautet.

3. Betreffend die Haube: Unten hieß es ja
Zitat2023.03.03 11:30:20.730 3: [HomeConnect] LC97FMR60: set command: StartProgram
2023.03.03 11:30:20.730 1: [HomeConnect] LC97FMR60: start program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/active and data {"data":{"key":"Cooking.Hob.Program.Hood.Venting","options":[]}}
2023.03.03 11:30:21.274 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hob.Program.Hood.Venting"

was nicht funktionieren konnte wegen "Hob". Wie bitte lautet die Fehlermeldung jetzt?

Edit 4. Ich habe für Debugzwecke ein neues Kommando eingebaut, das in der "Set"-Liste als "ZZZ_Dump" auftaucht. Damit kann man die umständlichen Dumper-Befehle auf einen Knopfdruck ausführen. Was ergibt dieses ZZZ_Dump bei der Dunstabzugshaube?


LG

pah

Supadone

1. Der CupWarmer lässt sich mit set TI909701HC ConsumerProducts.CoffeeMaker.Setting.CupWarmer 1 einschalten und mit 0 ausschalten
2023.03.04 12:03:12.262 3: [HomeConnect] TI909701HC: set command: ConsumerProducts.CoffeeMaker.Setting.CupWarmer
2023.03.04 12:03:18.036 1: [HomeConnect_ReadEventChannel] TI909701HC: CupWarmer = 1
2023.03.04 12:03:25.593 3: [HomeConnect] TI909701HC: set command: ConsumerProducts.CoffeeMaker.Setting.CupWarmer
2023.03.04 12:03:30.761 1: [HomeConnect_ReadEventChannel] TI909701HC: CupWarmer = 0


Bei allen anderen gibt es leider wieder Fehlermeldungen
2023.03.04 12:10:05.981 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.04 12:10:31.181 3: [HomeConnect] TI909701HC: set command: FillQuantity
2023.03.04 12:10:31.195 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/FillQuantity and data {"data":{"key":"FillQuantity","value":200,"unit":"ml"}}
2023.03.04 12:10:31.327 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.04 12:10:43.561 3: [HomeConnect] TI909701HC: set command: BeanContainerSelection
2023.03.04 12:10:43.570 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/BeanContainerSelection and data {"data":{"key":"BeanContainerSelection","value":"optval"}}
2023.03.04 12:10:43.864 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.04 12:10:51.849 3: [HomeConnect] TI909701HC: set command: BeanAmount
2023.03.04 12:10:51.862 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/BeanAmount and data {"data":{"key":"BeanAmount","value":"optval"}}
2023.03.04 12:10:51.996 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.04 12:11:09.202 3: [HomeConnect] TI909701HC: set command: FlowRate
2023.03.04 12:11:09.214 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/FlowRate and data {"data":{"key":"FlowRate","value":"optval"}}
2023.03.04 12:11:09.419 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.04 12:11:37.074 3: [HomeConnect] TI909701HC: set command: CoffeeTemperature
2023.03.04 12:11:37.085 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/CoffeeTemperature and data {"data":{"key":"CoffeeTemperature","value":"optval"}}
2023.03.04 12:11:37.211 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"


2. Die Kaffeemaschine lässt sich jetzt mit PowerOff nicht mehr ausschalten. Einschalten geht aber.
2023.03.04 12:27:22.372 3: [HomeConnect] TI909701HC: set command: PowerOff
2023.03.04 12:27:22.376 1: [HomeConnect_PowerState] TI909701HC: setting PowerState->Off while OperationState=Ready and PowerState=On
2023.03.04 12:27:22.627 1: [HomeConnect_HandleError] TI909701HC: Error "Key BSH.Common.Setting.PowerState has unknown enum type or enum member BSH.Common.EnumType.PowerState.Off."

2023.03.04 12:29:04.863 3: [HomeConnect] TI909701HC: set command: PowerOn
2023.03.04 12:29:04.863 1: [HomeConnect_PowerState] TI909701HC: setting PowerState->On while OperationState=Inactive and PowerState=Standby
2023.03.04 12:29:13.931 1: [HomeConnect_ReadEventChannel] TI909701HC: OperationState = Run
2023.03.04 12:29:13.946 1: [HomeConnect_ReadEventChannel] TI909701HC: PowerState = On
2023.03.04 12:29:13.961 1: [HomeConnect_ReadEventChannel] TI909701HC: ActiveProgram = CleaningModes.ApplianceOnRinsing


Ausschalten der Dunstabzugshaube
2023.03.04 12:26:04.455 1: [HomeConnect_PowerState] LC97FMR60: setting PowerState->On while OperationState=Inactive and PowerState=Off


3. PowerOn und PowerOff funktionieren hier problemlos
2023.03.04 12:33:06.765 3: [HomeConnect] LC97FMR60: set command: PowerOn
2023.03.04 12:33:06.765 1: [HomeConnect_PowerState] LC97FMR60: setting PowerState->On while OperationState=Inactive and PowerState=Off
2023.03.04 12:33:12.124 1: [HomeConnect_ReadEventChannel] LC97FMR60: PowerState = On
2023.03.04 12:33:12.125 1: [HomeConnect_ReadEventChannel] LC97FMR60: key BSH.Common.Root.ActiveProgram has extra prefix for Cooking.Common.Program.Hood.Venting
2023.03.04 12:33:12.125 1: [HomeConnect_ReadEventChannel] LC97FMR60: ActiveProgram = Cooking.Common.Program.Hood.Venting
2023.03.04 12:33:12.366 1: [HomeConnect_ReadEventChannel] LC97FMR60: OperationState = Run


Den Modus (automatische Stärke, Timer) wechseln kann man leider nicht, es kommt (bei bereits laufendem Dunstabzug:
2023.03.04 12:32:42.264 3: [HomeConnect] LC97FMR60: set command: StartProgram
2023.03.04 12:32:42.264 1: [HomeConnect] LC97FMR60: start program Hood.DelayedShutOff with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/active and data {"data":{"key":"Cooking.Hob.Program.Hood.DelayedShutOff","options":[]}}
2023.03.04 12:32:42.518 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hob.Program.Hood.DelayedShutOff"


Auch nur die Kochfeldbeleuchtung steuern funktioniert:
2023.03.04 12:31:20.961 3: [HomeConnect] LC97FMR60: set command: Cooking.Common.Setting.Lighting
2023.03.04 12:31:20.973 1: [HomeConnect_Set] changing setting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/settings/Cooking.Common.Setting.Lighting and data {"data":{"key":"Cooking.Common.Setting.Lighting","value":true}}
2023.03.04 12:31:25.609 1: [HomeConnect_ReadEventChannel] LC97FMR60: Lighting = 1
2023.03.04 12:31:25.609 1: [HomeConnect_ReadEventChannel] LC97FMR60: LightingBrightness = 66
2023.03.04 12:31:25.615 1: [HomeConnect_ReadEventChannel] LC97FMR60: LightingBrightness = 100


Ich vermisse hier nur irgendwie noch die Möglichkeit die Stufe der Absaugung zu ändern.

Edit 4:
Device LC97FMR60 of type Hood has
settings: $VAR1 = undef;

options: $VAR1 = {};


Grüße

Andy

Prof. Dr. Peter Henning

Zu 1a, CupWarmer: OK, abgehakt - ist also ein Setting, keine Option
Zu 1b: Bitte vorher ausführen: 1. Get Programs, 2. Set SelectedProgram <irgendwas> 3. Get ProgramOptions. Dann reload der Seite, erst dann sieht man, ob diese Options in diesem Programm überhaupt verfügbar sind.

Zu 2: OK, beim Ausschalten muss man ggf. mit Standby arbeiten. Bitte mal in der Kommandozeile eingeben: set TI909701HC PowerStandby

Zu 3: Sonnenklar. Mit "Cooking.Hob.Program.Hood.DelayedShutOff" kann man eine Dunstabzugshaube nicht schalten, da müsste "Cooking.Hood.Program.Hood.DelayedShutOff" stehen. Ich frage mich, wieso da immer noch "Cooking.Hob" steht. Eventuell müsste FHEM mal neu gestartet werden.

Zu 4: Das sollte nicht leer sein. Also auch hier bitte mal 1. Get Programs, 2. Get Settings 3. Set SelectedProgram <irgendwas> 4. Get ProgramOptions.

LG

pah

Supadone

So, bei der Gelegenheit hab ich gleich mal den ganzen Raspberry neugestartet.

Jetzt ist im Device alles wieder auf Anfang und ich kann nur ein get TI909701HC settings ausführen, ist das noch so gewollt?

get settings führt jetzt nun leider zu einem neustart von Fhem
2023.03.06 10:16:57.960 1: [HomeConnect_Set] TI909701HC: no settings defined, please execute Get TI909701HC Settings
2023.03.06 10:21:32.728 1: [HomeConnect_ResponseGetSettings] TI909701HC: get settings response {
  "data": {
    "settings": [{
      "key": "BSH.Common.Setting.ChildLock",
      "value": false
    }, {
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Standby"
    }]
  }
}
2023.03.06 10:21:32.728 1: [HomeConnect_ResponseGetSettings] TI909701HC: updating setting ChildLock to 0
Undefined subroutine &main::defind called at ./FHEM/48_HomeConnect.pm line 1376.
2023.03.06 10:21:33.452 1: Including fhem.cfg


Danach ist wieder nur ein get TI909701HC settings verfügbar, bei der Dunstabzugshaube passiert leider das gleiche...

Grüße

Andy

Prof. Dr. Peter Henning

#45
Ups. Das letzte ist ein Crash und Neustart von FHEM, verursacht durch den Aufruf eines nicht existierenden Programms....

Sorry, da habe ich wohl eine Zwischenversion mit Tippfehler hochgeladen.  :-[

Korrigierte Version kommt heute bis 17:00 19:00 Uhr.

LG

pah

Achtung: Die eben gepostete Version hat immer noch einen Fehler. Ist in Arbeit...

Supadone

Okay, jetzt bleiben auch alle set-Befehle nach einem Neustart erhalten.

Zitat von: Prof. Dr. Peter Henning am 06 März 2023, 10:00:59
Zu 1b: Bitte vorher ausführen: 1. Get Programs, 2. Set SelectedProgram <irgendwas> 3. Get ProgramOptions. Dann reload der Seite, erst dann sieht man, ob diese Options in diesem Programm überhaupt verfügbar sind.
Auch dann klappt es nicht
2023.03.06 17:39:07.558 3: [HomeConnect] TI909701HC: set command: BeanAmount
2023.03.06 17:39:07.563 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/BeanAmount and data {"data":{"key":"BeanAmount","value":"optval"}}
2023.03.06 17:39:07.685 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"
2023.03.06 17:39:23.731 3: [HomeConnect] TI909701HC: set command: BeanContainerSelection
2023.03.06 17:39:23.744 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-TI909701HC-68A40E15C2B9/programs/active/options/BeanContainerSelection and data {"data":{"key":"BeanContainerSelection","value":"optval"}}
2023.03.06 17:39:23.873 1: [HomeConnect_HandleError] TI909701HC: Error "Program option not supported"



Zitat von: Prof. Dr. Peter Henning am 06 März 2023, 10:00:59
Zu 2: OK, beim Ausschalten muss man ggf. mit Standby arbeiten. Bitte mal in der Kommandozeile eingeben: set TI909701HC PowerStandby
Damit funktioniert es sofort


Zitat von: Prof. Dr. Peter Henning am 06 März 2023, 10:00:59
Zu 3: Sonnenklar. Mit "Cooking.Hob.Program.Hood.DelayedShutOff" kann man eine Dunstabzugshaube nicht schalten, da müsste "Cooking.Hood.Program.Hood.DelayedShutOff" stehen. Ich frage mich, wieso da immer noch "Cooking.Hob" steht. Eventuell müsste FHEM mal neu gestartet werden.
Jetzt stimmt zwar Hood, aber es kommt trotzdem zu einer Fehlermeldung.
2023.03.06 17:46:04.055 3: [HomeConnect] LC97FMR60: set command: SelectedProgram
2023.03.06 17:46:04.055 1: [HomeConnect_Set] command to select program Cooking.Common.Program.Hood.Venting
2023.03.06 17:46:04.060 1: [HomeConnect] selecting program Cooking.Common.Program.Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected and data {"data":{"key":"Cooking.Hood.Program.Cooking.Common.Program.Hood.Venting"}}
2023.03.06 17:46:04.220 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hood.Program.Cooking.Common.Program.Hood.Venting"



Zitat von: Prof. Dr. Peter Henning am 06 März 2023, 10:00:59
Zu 4: Das sollte nicht leer sein. Also auch hier bitte mal 1. Get Programs, 2. Get Settings 3. Set SelectedProgram <irgendwas> 4. Get ProgramOptions.
Device LC97FMR60 of type Hood has
settings: $VAR1 = {
          'PowerState' => [
                            'BSH.Common.Setting',
                            'BSH.Common.EnumType.PowerState.',
                            'Off',
                            undef
                          ],
          'LightingBrightness' => [
                                    'Cooking.Common.Setting',
                                    'Cooking.Common.Setting',
                                    10,
                                    '%'
                                  ],
          'Lighting' => [
                          'Cooking.Common.Setting',
                          'Cooking.Common.Setting',
                          bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                          undef
                        ]
        };

options: $VAR1 = undef;

transtable: $VAR1 = {};


Grüße Andy

Prof. Dr. Peter Henning

#47
Nun, wir nähern uns der Sache doch. Anbei jedenfalls die korrigierte Version, die jetzt auch alle setzbaren Options setzen können sollte.

Betreffend "Cooking.Common.Program.Hood.Venting": Ich habe derzeit keine Ahnung, woher der doppelte Präfix kommt - der sollte in der Drop-Down-Liste gar nicht auftauchen.

Vlt. mal über die Kommandozeile ausführen

set <devicename> SelectedProgram Hood.Venting

Das sollte funktionieren. Das mit dem Standby muss ich irgendwie noch abfangen

LG

pah

Prof. Dr. Peter Henning

#48
So, ich habe das überarbeitete Modul jetzt in ein Beta-Stadium überführt.

Bei meinen Geräten (Kochfeld, Backofen, Spülmaschine und Waschmaschine) funktioniert es fehlerfrei. Ich bekomme sinnvolle Anzeigen, auf Wunsch auch mit deutscher Übersetzung der Zustände (und Programme). Wichtiger als dieser ergonomische Schnickschnack ist aber, dass jetzt - so wie eigentlich vom API vorgesehen - alle Optionen dynamisch vom Gerät geholt werden und nicht statisch im Modul vorcodiert sind.

Verzögerter Start von Spülmaschine und Waschmaschine (relativ oder mit gewünschter Startzeit oder Endzeit) funktioniert problemlos. Für das API verweigert BSH leider die echte Steuerung des Backofens - obwohl dies über die App problemlos geht. Unverständlich.

Beim Backofen und Kochfeld funktioniert auch das Stellen des Kurzzeitweckers (relativ oder mit gewünschter Endzeit) problemlos.

Für andere Geräte kann es noch an der einen oder anderen Stelle haken - das API ist vollkommen unterschiedlich bei den verschiedenen Geräteklassen.

LG

pah

Supadone

#49
Sorry, bin gestern nicht mehr zum testen gekommen.

Bei einem get Programs bekomme ich aktuell einen timeout
2023.03.08 09:45:25.324 1: [HomeConnect_GetPrograms] LC97FMR60: getting programs with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available
2023.03.08 09:45:30.450 2: LC97FMR60: error in requestread from https://api.home-connect.com:443 timed out
2023.03.08 09:45:30.455 1: [HomeConnect_ResponseGetPrograms] LC97FMR60: JSON error requesting programs: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 at ./FHEM/48_HomeConnect.pm line 1530.

2023.03.08 09:45:35.799 1: [HomeConnect_GetProgramOptions] LC97FMR60: getting options with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available/Cooking.Hood.Program.Hood.Venting
2023.03.08 09:45:40.881 2: LC97FMR60: error in requestread from https://api.home-connect.com:443 timed out
2023.03.08 09:45:40.885 1: [HomeConnect_ResponseGetProgramOptions] LC97FMR60: program options response
2023.03.08 09:45:40.885 1: [HomeConnect_ResponseGetProgramOptions] LC97FMR60: JSON error requesting options: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 at ./FHEM/48_HomeConnect.pm line 1270.

2023.03.08 09:45:52.085 3: [HomeConnect] LC97FMR60: set command: SelectedProgram
2023.03.08 09:45:52.100 1: [HomeConnect_Set] command to select program Hood.Venting
2023.03.08 09:45:52.293 1: [HomeConnect] selecting program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected and data {"data":{"key":"Cooking.Hood.Program.Hood.Venting"}}
2023.03.08 09:45:57.407 2: LC97FMR60: error in requestread from https://api.home-connect.com:443 timed out
2023.03.08 09:45:57.410 1: [HomeConnect_GetProgramOptions] LC97FMR60: getting options with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available/Cooking.Hood.Program.Hood.Venting
2023.03.08 09:46:02.486 2: LC97FMR60: error in requestread from https://api.home-connect.com:443 timed out
2023.03.08 09:46:02.492 1: [HomeConnect_ResponseGetProgramOptions] LC97FMR60: program options response
2023.03.08 09:46:02.492 1: [HomeConnect_ResponseGetProgramOptions] LC97FMR60: JSON error requesting options: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 at ./FHEM/48_HomeConnect.pm line 1270.

2023.03.08 09:48:22.409 1: [HomeConnect_GetPrograms] LC97FMR60: getting programs with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available

Hast du hier auch etwas geändert?



Zitat von: Prof. Dr. Peter Henning am 06 März 2023, 18:33:20
set <devicename> SelectedProgram Hood.Venting

Das sollte funktionieren. Das mit dem Standby muss ich irgendwie noch abfangen

Leider nicht, auch hier kommt die Fehlermeldung
2023.03.08 09:44:54.441 3: [HomeConnect] LC97FMR60: set command: SelectedProgram
2023.03.08 09:44:54.442 1: [HomeConnect_Set] command to select program Hood.Venting
2023.03.08 09:44:54.446 1: [HomeConnect] selecting program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected and data {"data":{"key":"Cooking.Hood.Program.Hood.Venting"}}
2023.03.08 09:44:54.749 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hood.Program.Hood.Venting"


Grüße

Andy

Edit: Ich hatte die Version vom 6.3.23 verwendet

Prof. Dr. Peter Henning

Das mit dem Timeout habe ich heute auch dauernd erlebt. Scheinen Serverprobleme bei BSH zu sein, die ich im Moment nicht beheben kann.

Betreffend die Programmsteuerung der Haube: Laut einem der Log-Auszüge verstehe ich das sogar, dort wird nämlich gemeldet:
"Cooking.Common.Program.Hood.Venting". Ich habe also mit meiner Behauptung, es müsse "Cooking.Hood" als Präfix lauten, daneben gelegen. Ich habe das jetzt mal in "Cooking.Common" geändert, siehe anliegende Version.

Für den CoffeeMaker sollte in der Dropdown-Liste jetzt übrigens "PowerStandby" statt PowerOff auftauchen und auch funktionieren.

Sowohl für CoffeeMaker als auch für die Haube fehlt mir noch eine Übersetzungstabelle. Die sieht beispielsweise für den Backofen so aus:
$HomeConnect_DeviceTrans_DE{"Oven"} = {
    "HeatingMode.TopBottomHeating" => "Ober/Unterhitze",
    "HeatingMode.GrillLargeArea" => "Flächengrill",
    "HeatingMode.SlowCook" => "LangsamGaren",
    "HeatingMode.Defrost"  => "Auftauen",
    "HeatingMode.KeepWarm" => "Warmhalten",
    "HeatingMode.PizzaSetting" => "Pizza",
    "HeatingMode.HotAir" => "Heißluft",
    "HeatingMode.HotAirGentle" => "HeißluftSchonend",
    "HeatingMode.HotAirGrilling" => "Heißluftgrill",
    "Cleaning.Pyrolysis" => "Pyrolyse"
};

Für die Funktion ist die zwar nicht nötig, da ich aber die Sprachausgabe nicht in Denglisch ansteuere, wäre es komfortabel, diese Tabelle auch für die anderen Geräte einzubauen.

LG

pah

Supadone

Zitat von: Prof. Dr. Peter Henning am 08 März 2023, 12:01:35
Für den CoffeeMaker sollte in der Dropdown-Liste jetzt übrigens "PowerStandby" statt PowerOff auftauchen und auch funktionieren.
Super, ist vorhanden und funktioniert :)


ZitatBetreffend die Programmsteuerung der Haube: Laut einem der Log-Auszüge verstehe ich das sogar, dort wird nämlich gemeldet:
"Cooking.Common.Program.Hood.Venting". Ich habe also mit meiner Behauptung, es müsse "Cooking.Hood" als Präfix lauten, daneben gelegen. Ich habe das jetzt mal in "Cooking.Common" geändert, siehe anliegende Version.
Leider kommt es weiterhin zu einem Fehler
2023.03.09 09:51:06.878 1: [HomeConnect_GetPrograms] LC97FMR60: getting programs with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available
2023.03.09 09:51:15.403 3: [HomeConnect] LC97FMR60: set command: SelectedProgram
2023.03.09 09:51:15.404 1: [HomeConnect_Set] command to select program Cooking.Common.Program.Hood.Venting
2023.03.09 09:51:15.420 1: [HomeConnect] selecting program Cooking.Common.Program.Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected and data {"data":{"key":"Cooking.Hood.Program.Cooking.Common.Program.Hood.Venting"}}
2023.03.09 09:51:15.557 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hood.Program.Cooking.Common.Program.Hood.Venting"
2023.03.09 09:51:21.896 1: [HomeConnect_GetProgramOptions] LC97FMR60: getting options with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available/Cooking.Hood.Program.Cooking.Common.Program.Hood.Venting
2023.03.09 09:51:22.042 1: [HomeConnect_HandleError] LC97FMR60: Error "Program not supported"
2023.03.09 09:51:28.800 3: [HomeConnect] LC97FMR60: set command: StartProgram
2023.03.09 09:51:28.800 1: [HomeConnect] LC97FMR60: start program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/active and data {"data":{"key":"Cooking.Hood.Program.Hood.Venting","options":[]}}
2023.03.09 09:51:28.984 1: [HomeConnect_HandleError] LC97FMR60: Error "Unknown program feature key: Cooking.Hood.Program.Hood.Venting"



Was braucht man für die Übersetzungstabelle alles? Nur die möglichen Programme?

Grüße

Andy

Prof. Dr. Peter Henning

#52
ZitatCooking.Hood.Program.Cooking.Common.Program.Hood.Venting
Irre. Wieso denn doppelt???

Muss ich untersuchen. Edit: Heute nicht mehr, morgen vormittag

Übersetzungstabelle: Ja, vorerst nur deutsche Namen für die Programme. Und eventuell für die Events.

LG

pah

Prof. Dr. Peter Henning

So, ich habe hier mal eine ganz spezielle Version angehängt, die diesen komischen Fehler hoffentlich abfängt.

Bitte mal das Log posten

LG

pah

Supadone

Super, jetzt funktioniert es auch mit der Dunstabzugshaube :)
2023.03.11 08:59:19.053 1: [HomeConnect_GetPrograms] LC97FMR60: getting programs with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available
2023.03.11 08:59:34.765 3: [HomeConnect] LC97FMR60: set command: SelectedProgram
2023.03.11 08:59:34.765 1: [HomeConnect_Set] command to select program Hood.Venting
2023.03.11 08:59:34.774 1: [HomeConnect] selecting program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected and data {"data":{"key":"Cooking.Common.Program.Hood.Venting"}}
2023.03.11 08:59:34.911 1: [HomeConnect_HandleError] LC97FMR60: Error "Program can currently not be written"
2023.03.11 08:59:40.183 3: [HomeConnect] LC97FMR60: set command: StartProgram
2023.03.11 08:59:40.183 1: [HomeConnect] LC97FMR60: start program Hood.Venting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/active and data {"data":{"key":"Cooking.Common.Program.Hood.Venting","options":[]}}
2023.03.11 08:59:40.511 1: [HomeConnect_GetProgramOptions] LC97FMR60: getting options with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/available/Cooking.Common.Program.Hood.Venting
2023.03.11 08:59:40.637 1: [HomeConnect_ResponseGetProgramOptions] LC97FMR60: key VentingLevel has current value FanOff  and default value FanStage02
2023.03.11 08:59:40.638 1: PERL WARNING: Use of uninitialized value $def in string eq at ./FHEM/48_HomeConnect.pm line 1366.
2023.03.11 08:59:42.966 1: [HomeConnect_ReadEventChannel] LC97FMR60: OperationState = Run
2023.03.11 08:59:43.195 1: [HomeConnect_ReadEventChannel] LC97FMR60: PowerState = On
2023.03.11 08:59:43.196 1: [HomeConnect_ReadEventChannel] LC97FMR60: ActiveProgram = Hood.Venting
2023.03.11 08:59:43.196 1: [HomeConnect_ReadEventChannel] LC97FMR60: VentingLevel = FanStage01
2023.03.11 08:59:47.270 3: [HomeConnect] LC97FMR60: set command: StopProgram
2023.03.11 08:59:48.217 1: [HomeConnect_ReadEventChannel] LC97FMR60: PowerState = Off
2023.03.11 08:59:48.217 1: [HomeConnect_ReadEventChannel] LC97FMR60: ActiveProgram =
2023.03.11 08:59:48.366 1: [HomeConnect_ReadEventChannel] LC97FMR60: OperationState = Inactive


Jetzt wurden auch zwei neue set-Befehle geladen. VentingLevel und IntensiveLevel, leider wieder mit Fehlermeldungen.
2023.03.11 09:15:39.777 3: [HomeConnect] LC97FMR60: set command: VentingLevel
2023.03.11 09:15:39.784 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected/options/Cooking.Common.Option.VentingLevel and data {"data":{"key":"Cooking.Common.Option.VentingLevel","value":"Cooking.Hood.EnumType.Stage.FanStage02"}}
2023.03.11 09:15:39.949 1: [HomeConnect_HandleError] LC97FMR60: Error "Program option not supported"

2023.03.11 09:16:55.020 3: [HomeConnect] LC97FMR60: set command: IntensiveLevel
2023.03.11 09:16:55.027 1: [HomeConnect_Set] changing option with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/programs/selected/options/Cooking.Common.Option.IntensiveLevel and data {"data":{"key":"Cooking.Common.Option.IntensiveLevel","value":"Cooking.Hood.EnumType.IntensiveStage.IntensiveStage1"}}
2023.03.11 09:16:55.148 1: [HomeConnect_HandleError] LC97FMR60: Error "Program option not supported"


Ich habe mal alles andere getestet, Lighting geht ebenfalls nicht mehr. Wenn ich set LC97FMR60 Lighting on eingebe kommt folgende Meldung, das set Lightning-Eingabefeld ist danach sofort mit "Cooking.Common.Setting.on" vorausgefüllt.
2023.03.11 09:41:01.695 1: [HomeConnect_HandleError] LC97FMR60: Error "The request content was malformed:
Unexpected character 'C' at input index 59 (line 1, position 60), expected '}':
{"data":{"key":"Lighting","value":"Cooking.Common.Setting."Cooking.Common.Setting.on""}}
                                                           ^
"


Ein set LC97FMR60 Lighting 1 wird sofort in ein true geändert und bringt folgende Fehlermeldung:
2023.03.11 09:44:39.695 3: [HomeConnect] LC97FMR60: set command: Lighting
2023.03.11 09:44:39.733 1: [HomeConnect_Set] changing setting with uri /api/homeappliances/SIEMENS-LC97FMR60-68A40E083938/settings/Lighting and data {"data":{"key":"Lighting","value":true}}
2023.03.11 09:44:39.940 1: [HomeConnect_HandleError] LC97FMR60: Error "Setting is not supported"


Ein PowerOff finde ich auch nicht mehr in der Liste, war das nicht auch bei der Dunstabzugshaube mal da?


Prof. Dr. Peter Henning

OK, zunächst zum Problem
ZitatJetzt wurden auch zwei neue set-Befehle geladen. VentingLevel und IntensiveLevel, leider wieder mit Fehlermeldungen.
Bitte hierzu ausführen ZZZ_Dump, ich brauche die genaue Parametrierung der Level settings.

Zum Problem
Zitat2023.03.11 09:41:01.695 1: [HomeConnect_HandleError] LC97FMR60: Error "The request content was malformed:
Das muss ich überprüfen.

LG

pah


Supadone

Zitat von: Prof. Dr. Peter Henning am 11 März 2023, 13:37:55
OK, zunächst zum Problem Bitte hierzu ausführen ZZZ_Dump, ich brauche die genaue Parametrierung der Level settings.
Device LC97FMR60 of type Hood has
settings: $VAR1 = {
          'PowerState' => [
                            'BSH.Common.Setting',
                            'BSH.Common.EnumType.PowerState.',
                            'Off',
                            undef
                          ],
          'Lighting' => [
                          'Cooking.Common.Setting',
                          'Cooking.Common.Setting',
                          bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                          undef
                        ],
          'LightingBrightness' => [
                                    'Cooking.Common.Setting',
                                    'Cooking.Common.Setting',
                                    10,
                                    '%'
                                  ]
        };

options: $VAR1 = {
          'IntensiveLevel' => [
                                'Cooking.Common.Option.Hood',
                                'Cooking.Hood.EnumType.IntensiveStage',
                                undef,
                                'IntensiveStage1,IntensiveStage2',
                                undef,
                                undef
                              ],
          'VentingLevel' => [
                              'Cooking.Common.Option.Hood',
                              'Cooking.Hood.EnumType.Stage',
                              'FanStage02',
                              'FanStage01,FanStage02,FanStage03',
                              undef,
                              undef
                            ]
        };

transtable: $VAR1 = {};

poweroff: $VAR1 = undef;


Bezüglich der Übersetzungstabelle, die liefere ich noch nach. Hab nur momentan einen zu zahnen beginnenden Sprößling zu Hause und dementsprechend nicht so viel Zeit... ;)

Prof. Dr. Peter Henning

Ich habe jetzt mal ein paar Tage pausieren müssen - und diskutiere mit den Leuten von HomeConnect über deren Simulatoren. Wäre nämlich schön, wenn ich solche Dinge wie den Coffeemaker auch etwas direkter zum Testen verwenden könnte.

LG

pah

Supadone

#58
Habe heute eine neue Spülmaschine bekommen, nach einem scan wird das Gerät normal angelegt.
Nach einem get settings im Device bleibt aber leider alles leer:

2023.04.19 11:44:23.689 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.19 11:44:23.690 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.19 11:44:36.616 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.19 11:44:36.862 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.19 11:44:36.862 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.19 11:44:44.926 1: [HomeConnect_DDtoHash] S257EAX36E: setting device dependent things
2023.04.19 11:44:44.927 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 451.
2023.04.19 11:44:44.927 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 453.
2023.04.19 11:44:44.927 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 460.
2023.04.19 11:44:44.927 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 463.
2023.04.19 11:44:44.927 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1454.
2023.04.19 11:44:44.928 1: [HomeConnect_ResponseGetSettings] S257EAX36E: no settings found

EDIT:
Mittlerweile wurden einige Readings angelegt, ein get settings führt weiterhin zu
2023.04.22 14:51:52.951 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.22 14:51:52.957 1: [HomeConnect_Set] TI909701HC: no settings defined, please execute Get TI909701HC Settings
2023.04.22 14:51:55.219 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.22 14:51:55.221 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.22 14:52:09.348 1: [HomeConnect_DDtoHash] S257EAX36E: setting device dependent things
2023.04.22 14:52:09.348 1: [HomeConnect_ResponseGetSettings] S257EAX36E: no settings found
2023.04.22 14:52:10.297 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.22 14:52:10.298 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings
2023.04.22 14:52:10.474 1: [HomeConnect_Set] S257EAX36E: no settings defined, please execute Get S257EAX36E Settings

TI909701HC ist meine Kaffeemaschine, wieso taucht die denn da mit auf?

EDIT 2:
Hab gerade gesehen dass auch bei meinen anderen Geräten nur ein get settings verfügbar ist.
Das hcconn Device steht aber auf connected. Das einzige was ich in letzter Zeit verändert habe ist dass ich dem Genörgel in der App nachgegeben habe und eine Single-ID erstellt habe. Ich dachte aber irgendwo gelesen zu haben dass das aber keinen Einfluss auf Fhem haben sollte...

Grüße

Andy

Prof. Dr. Peter Henning

Bei mir taucht das mit den fehlenden Settings neuerdings auch auf. Ich muss sehen, dass ich das irgendwie abfange und dort einen default eintrage. Ist etwas nervig.

LG

pah

87insane

Hey zusammen,

den Fehler habe ich bei meiner Spülmaschine auch.

Anbei aber mal ein devStateIcon für eine Spülmaschine:
{
my $ownstate = ReadingsVal($name,'state','ERR');
my $program = ReadingsVal($name,'tr_State2','ERR');
my $propercent = ReadingsVal($name,'ProgramProgress','ERR');
my $doorstate = ReadingsVal($name,'tr_DoorState','ERR');
my $pic = $ownstate =~ m,Run,
? 'scene_dishwasher@red'
: 'scene_dishwasher';
my $text = $ownstate =~ m,Run,
? "($propercent)"
: $doorstate eq "Tür offen"
? "$doorstate"
: "$ownstate";
my $text2 = $ownstate =~ m,Run,
? "$program"
: "";
"<div><a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)."
$text $text2
</div>"
}

Ich persönlich finde die kleine Übersicht innerhalb von FHEM ganz angenehm.


Was mir noch aufgefallen ist, ich habe einen Kochfeld, eine Spülmaschine und einen Backofen der Homeconnect kann.
Normal konnte ich alles schalten. In der hier gebotenen Version kann ich das nicht mehr. Ich habe weiter oben gelesen, dass die Befehle "verworfen" werden. Ggf kann ich etwas testen oder unterstützen? Wenn ja, bitte kurz melden und Info, was ich machen soll/testen soll.

Da ich diese Version vorhin erst aktiviert habe, habe ich bisher nur ein devStateIcon. Würde aber bei Bedarf, für die bei mir vorhandenen Geräte, noch welche nachliefern.

Gruß,
87Insane

Prof. Dr. Peter Henning

Die "kleine Übersicht" habe ich auch. Für die Spülmaschine sieht das so aus:

1. Attribut stateFormat setzen auf {my $open=ReadingsVal("SN55ZS49CE","tr_DoorState","");
sprintf("<p align=\"left\">\n%s\n<br/>%s\n%s</p>",
ReadingsVal("SN55ZS49CE","state",""),ReadingsVal("SN55ZS49CE","tr_State1",""),
(($open=~/offen/)?"<br/>".$open:""))}

2. Attribut devStateIcon setzen auf Offline:scene_dishwasher@red Aborting:scene_dishwasher@yellow Inactive:scene_dishwasher@black Ready:scene_dishwasher@blue Delayed.*:scene_dishwasher_delay@green Run.*:scene_dishwasher@green
Das resultiert in einer komfortablen zwei- bis dreizeiligen Anzeige, in welcher die erste Zeile ein eingefärbtes Icon ist, die zweite Zeile den Zustand darstellt. Und die dritte Zeile erscheint, wenn die Tür offen ist.

Dem entsprechend für die Waschmaschine:
1. {my $open=ReadingsVal("WAV28G43","tr_DoorState","");
sprintf("<p align=\"left\">\n%s\n<br/>%s\n%s</p>",
ReadingsVal("WAV28G43","state",""),ReadingsVal("WAV28G43","tr_State1",""),
(($open=~/offen/)?"<br/>".$open:""))}

2.Offline:scene_washing_machine@red Aborting:scene_washing_machine@yellow
Inactive:scene_washing_machine@black Finished:scene_washing_machine@orange
Ready:scene_washing_machine@blue Delayed.*:scene_washing_machine_delay@green
Run.*:scene_washing_machine@green

So, aber jetzt zur interessanten Frage: Schalten von Kochfeld und Backofen ? Den Backofen kann ich zwar mit dieser unsäglichen werbeverseuchten App einschalten, wenn der Schalter am Backofen entsprechend steht - aber nicht mit dem HomeConnect-Modul (übrigens auch nicht mit der Originalversion). Mit dem Modul funktioniert lediglich das Setzen das Setzen des Alarmtimers.

Und das Kochfeld kann ich auch mit der App nicht aus der Ferne steuern, das ist laut Angaben von BSH auch nicht vorgesehen - nachvollziehbare Sicherheitsbedenken. Und da wir in Deutschland leben, wo man gerne andere Menschen erzieht: Nein, das dürfte ich auch dann nicht, wenn ich BSH von allen Haftungsgründen befreien würde. Was aber immerhin funktioniert (und das auch mit dem Modul), ist das setzen des Alarmtimers.

Also, ganz ernsthafte Frage: Du konnest wirklich Backofen und Kochfeld steuern???

LG

pah

87insane

Füge doch bitte ein Bild deines devStateIcons an, das macht die Wahl einfacher für den Benutzer.

Also um das mal aufzudröseln:
Backofen: Hier kann ich alles über die App steuern und das geht über die leider hässlichen setter auch mit dem normalen Modul für Homeconnect.
Kochfeld: Ein fernstarte ist in DE nicht erlaubt und ging auch nicht. Danach geht aber alles. Also z.B. Zone xy hoch/runter regeln oder Bratsensor aktivieren usw. Am Kochfeld meine ich aber dies bestätigen zu müssen bei einigen Optionen.

Wie gesagt, teste ich auch gerne. Ich muss nur Instruktionen haben :)

Ggf. ist das auch eine Herstellerfrage. Meine Geräte sind alle von NEFF.
PS: Ich nutze die original App auf einem Android Gerät und bei mir ist die Werbung nur im unteren Teil auf der Startseite. Danach ist da keine Werbung.

Gruß,
87Insane

Prof. Dr. Peter Henning

#63
Du darfst diesen Dateianhang nicht ansehen.
Werbung: Nicht nur auf der Startseite, sondern auch im Menü unten

Das mit dem Steuern scheint tatsächlich eine Frage des Herstellers zu sein  >:(

OK, muss jetzt in die Vorlesung, ich bleibe dran.


LG

pah

87insane

#64
Kann ich etwas beisteuern? Die o.g. Geräte stehen mir zur Verfügung und ich könnte das ein oder andere testen...

PS: Woher kommen bei dir die Icons für .*_delay?

Prof. Dr. Peter Henning

#65
Icons: Selbst gemacht. Habe ich weiter unten auch gepostet.

Edit: So, ich habe mal versucht, das Thema mit den fehlenden Settings in den Griff zu bekommen. BSH möchte ja, dass man die Fähigkeiten jedes Gerätes erst abfragt, bevor man etwas steuert. OK, prima - aber ein paar Defaults sollten in jedem Falle da sein. Teste das gerade noch, wird dann hier publiziert.

LG

pah

RockFan

Hallo pah,

Danke für die Mühen für die vielen Änderungen hier!

Nachdem ich endlich mein Problem mit dem Login lösen konnte (Kein set LoginNecessary nach Logout) bin ich jetzt auch dabei unseren Siemens Wäschetrockner umzustellen.

Leider bekomme ich einige Fehlermeldungen im Log:

2023.05.14 14:12:17 4: myHomeConnectConnection: request /api/homeappliances
2023.05.14 14:12:17 4: myHomeConnectConnection: no token refresh needed
2023.05.14 14:12:17 4: myHomeConnectConnection: requestAfterToken https://api.home-connect.com/api/homeappliances
2023.05.14 14:12:18 4: myHomeConnectConnection: response {
  "data": {
    "homeappliances": [{
      "brand": "Siemens",
      "connected": true,
      "enumber": "WT7YH701/02",
      "haId": "SIEMENS-WT7YH701-68A40E11A618",
      "name": "Trockner",
      "type": "Dryer",
      "vib": "WT7YH701"
    }]
  }
}
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:12:43 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings

Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:12:53 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:12:53 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:13:02 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:13:02 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:13:02 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 529.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 530.
Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 556.
Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 574.
2023.05.14 14:13:02 1: [HomeConnect_Set] WT7YH701: no settings defined, please execute Get WT7YH701 Settings

Wenn ich get Settings aufrufe, bringt das leider wenig.

Weitere etwas abweichende Logeinträge:

2023.05.14 14:14:40 1: [HomeConnect_DDtoHash] WT7YH701: setting device dependent things
Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 451.
Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 453.
Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 460.
Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 463.
Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1454.

Ich verwende Version 1.0beta2. Das sollte die aktuellste Version sein oder liege ich falsch?

Was läuft bei mir anders/verkehrt?


Viele Grüße
Dieter

Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

Prof. Dr. Peter Henning

Nun, einen Wäschetrockner hatten wir bisher noch nicht im Test...

OK, die Sache mit den Settings habe ich inzwischen im Griff - wenn gar keine vorhanden sind, werden Defaults genommen.Es ist zwar von BSH nett gedacht, dass man alle Daten immer erst vom gerät holen soll - aber deren Cloud ist so instabil, dass man sich darauf eben nicht verlassen kann.

Ich kann derzeit noch nicht sagen, ob ich noch in der kommenden Woche eine neue Beta-Version schaffe. Wenn nicht, sieht es für die beiden folgenden Wochen düster aus: Erst LEARNTEC, dann 1 Woche Urlaub.

Also drückt die Daumen, dass ich in dieser Woche nicht zu viele nervige Termine wahrnehmen muss...

LG

pah

RockFan

Danke für die schnelle Antwort.
Keine Hektik :)

Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...