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, ...

Kuehnhackel

Hallo zusammen, ich würde die Beta-Version auch einmal testen wollen.

Kann mir jemand kurz eine Erklärung geben, ob es parallel funktioniert oder wie ich vorgehen muss.

Danke vorab und

LG
Ralf

Prof. Dr. Peter Henning

Parallel geht es nicht. Und wie gesagt: Alles noch etwas Beta. Da ich schwerwiegende gesundheitliche Probleme hatte, ist das auch noch nicht weiter entwickelt, als es im Februar war.

Anleitung: Das Original 48_HomeConnect.pm irgendwo sichern und mit der angehängten Datei überschreiben. Und schauen, was passiert.

LG

pah

Kuehnhackel

Zitat von: Prof. Dr. Peter Henning am 20 Juni 2023, 11:38:38Da ich schwerwiegende gesundheitliche Probleme hatte, ist das auch noch nicht weiter entwickelt, als es im Februar war.
LG
pah

Danke für die Antwort, ich werde es versuchen.

Dann wünsche ich auf jeden Fall, dass die gesundheitlichen Probleme überwunden sind, ansonsten weiterhin gute Genesung.

LG
Ralf

Shadow3561

#72
Moin,

ich habe heute meinen neuen Geschirrspüler montiert und das Modul geladen.

Leider funktioniert beim Bosch SMV8YCX03E das get Settings nicht.
Readings werden geschrieben und aktualisiert aber ich habe keine Set-Befehle und kann somit den Spüler nicht steuern.

Mit dem Modul von der 1.Seite funktioniert es, auch wenn ein paar Spülprogramme fehlen aber da stören mich die kryptischen readings.

Was kann ich tun um zu helfen damit wir das Modul ans laufen bekommen?

Mit freundlichen Grüßen

##
EDIT:
jetzt funktioniert alles.
Habe das device gelöscht und neu angelegt, jetzt läuft alles.

Mit freundlichen Grüßen

Prof. Dr. Peter Henning

Prima. Ich habe - gesundheitlich bedingt - einige Monate lang an dem Modul nichts gemacht, werde das demnächst wieder aufnehmen. Es wackeln noch zu viele Dinge darin.

LG

pah

87insane

#74
Guten Morgen zusammen,

mir ist bei der Spülmaschine noch aufgefallen, dass Daten wie "Klarspüler fast leer" usw nicht angezeigt werden in FHEM. Ggf. kann man das noch mit rein nehmen.

[code]define S155EB800E HomeConnect homeconnect_server 012120425398000825
attr S155EB800E alias Spülmaschine
attr S155EB800E devStateIcon { \
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'\
: $ownstate =~ m,Offline,\
? 'scene_dishwasher@brown'\
: $ownstate =~ m,Aborting,\
? 'scene_dishwasher@orange'\
: $ownstate =~ m,Inactive,\
? 'scene_dishwasher@black'\
: $ownstate =~ m,Finished,\
? 'scene_dishwasher@blue'\
: $ownstate =~ m,Ready,\
? 'scene_dishwasher'\
: 'scene_dishwasher_delay';;\
\
my $text = $ownstate =~ m,Run,\
? "($propercent)"\
: $doorstate eq "Tür offen"\
? "$doorstate"\
: "$program";; \
\
my $text2 = $ownstate =~ m,Run,\
? "$program"\
: "";;\
\
\
"<div><a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\"></a>".FW_makeImage($pic)." \
$text $text2\
</div>" \
}
attr S155EB800E event-on-change-reading .*
attr S155EB800E room EG Küche
#   DEF        homeconnect_server 012120425398000825
#   FUUID      64535c96-f33f-33ef-902f-b70e6ec173b62217
#   NAME       S155EB800E
#   NR         211
#   STATE      Ready
#   TYPE       HomeConnect
#   aliasname  Spülmaschine
#   brand      Neff
#   eventChannelTimeout 1692085419.30926
#   eventCount 539
#   events     SaltNearlyEmpty,RinseAidNearlyEmpty
#   haId       012120425398000825
#   hcconn     homeconnect_server
#   prefix     Dishcare.Dishwasher
#   programs   Auto2,Eco50,Glas40,PreRinse,IntensivPower,Kurz60,MachineCare,NightWash
#   retrycounter 0
#   type       Dishwasher
#   vib        S155EB800E
#   READINGS:
#     2023-08-14 00:31:14   ActiveProgram   
#     2023-08-14 22:55:29   DoorState       Closed
#     2023-05-15 23:04:18   ExtraDry        0
#     2023-05-15 23:04:18   IntensivZone    0
#     2023-08-14 00:31:14   OperationState  Ready
#     2023-08-14 00:31:14   PowerState      Off
#     2023-05-10 22:46:57   ProgramAborted  Present
#     2023-08-14 00:31:14   ProgramFinished Off
#     2023-08-14 00:31:14   ProgramProgress 0 %
#     2023-08-14 00:31:14   RemainingProgramTime 9000 seconds
#     2023-08-14 00:31:14   RemainingProgramTimeHHMM 02:30
#     2023-08-09 11:06:02   RemoteControlActive 1
#     2023-08-09 11:06:02   RemoteControlStartAllowed 1
#     2023-08-05 10:00:09   RinseAidNearlyEmpty Present
#     2023-08-05 16:58:41   SelectedProgram Auto2
#     2023-05-15 23:04:18   SilenceOnDemand 0
#     2023-05-15 23:04:18   StartAtHHMM     23:04
#     2023-05-15 23:04:18   StartInRelative 0 seconds
#     2023-05-15 23:04:18   StartInRelativeHHMM 00:00
#     2023-05-15 23:04:18   StartToHHMM     1:34
#     2023-08-14 22:55:29   state           Ready
#     2023-08-14 22:55:29   tr_DoorState    Tür geschlossen
#     2023-08-09 11:06:02   tr_RemoteControlState Fernstart aktiv
#     2023-08-14 22:55:29   tr_State1       Bereit
#     2023-08-14 22:55:29   tr_State2       Bereit
#   data:
#     poweroff   PowerOff
#     trans:
#       Auto2      Auto 45-65
#       Eco50      Eco 50
#       Favorite.001 Favorit
#       GlassShine Brilliant Shine
#       Intensiv70 Intensiv 70
#       Kurz60     Speed 60
#       MachineCare Maschinenpflege
#       NightWash  Leise
#       PreRinse   Vorspülen
#       Quick45    Speed 45
#
setstate S155EB800E Ready
setstate S155EB800E 2023-08-14 00:31:14 ActiveProgram 
setstate S155EB800E 2023-08-14 22:55:29 DoorState Closed
setstate S155EB800E 2023-05-15 23:04:18 ExtraDry 0
setstate S155EB800E 2023-05-15 23:04:18 IntensivZone 0
setstate S155EB800E 2023-08-14 00:31:14 OperationState Ready
setstate S155EB800E 2023-08-14 00:31:14 PowerState Off
setstate S155EB800E 2023-05-10 22:46:57 ProgramAborted Present
setstate S155EB800E 2023-08-14 00:31:14 ProgramFinished Off
setstate S155EB800E 2023-08-14 00:31:14 ProgramProgress 0 %
setstate S155EB800E 2023-08-14 00:31:14 RemainingProgramTime 9000 seconds
setstate S155EB800E 2023-08-14 00:31:14 RemainingProgramTimeHHMM 02:30
setstate S155EB800E 2023-08-09 11:06:02 RemoteControlActive 1
setstate S155EB800E 2023-08-09 11:06:02 RemoteControlStartAllowed 1
setstate S155EB800E 2023-08-05 10:00:09 RinseAidNearlyEmpty Present
setstate S155EB800E 2023-08-05 16:58:41 SelectedProgram Auto2
setstate S155EB800E 2023-05-15 23:04:18 SilenceOnDemand 0
setstate S155EB800E 2023-05-15 23:04:18 StartAtHHMM 23:04
setstate S155EB800E 2023-05-15 23:04:18 StartInRelative 0 seconds
setstate S155EB800E 2023-05-15 23:04:18 StartInRelativeHHMM 00:00
setstate S155EB800E 2023-05-15 23:04:18 StartToHHMM 1:34
setstate S155EB800E 2023-08-14 22:55:29 state Ready
setstate S155EB800E 2023-08-14 22:55:29 tr_DoorState Tür geschlossen
setstate S155EB800E 2023-08-09 11:06:02 tr_RemoteControlState Fernstart aktiv
setstate S155EB800E 2023-08-14 22:55:29 tr_State1 Bereit
setstate S155EB800E 2023-08-14 22:55:29 tr_State2 Bereit

[/code]



Gruß,
87Insane

Prof. Dr. Peter Henning

Werde ich irgendwie berücksichtigen.

LG

pah

doman75

#76
Hallo,

bei mir meckert FHEM die Umlaute in dem Modul an, bsp:
Unrecognized character \xC3; marked by <-- HERE after  => "Vorsp<-- HERE near column 23 at ./FHEM/48_HomeConnect.pm line 129.

Habs gefunden

da ist in dem Bereich Zeile 109-115 was verrutscht
    "door"              =>  "Tür",
    "alarm"             =>  "Kurzzeitwecker um"
);

  "
  "Inactive" => "Inaktiv",
  "Run" => "Läuft",
  "Ready" => "Bereit",
  "Finished" => "Fertig"



Ich habe das Modul mit meinem Windows Rechner gedownloaded und per WINSCP übertragen, also eigentlich wie immer. Hat jemand eine Idee woran es liegen könnte?

Danke
Swen

87insane


Shadow3561

#78
Zitat von: doman75 am 29 August 2023, 09:53:05Hallo,

bei mir meckert FHEM die Umlaute in dem Modul an, bsp:
Unrecognized character \xC3; marked by <-- HERE after  => "Vorsp<-- HERE near column 23 at ./FHEM/48_HomeConnect.pm line 129.

Habs gefunden

da ist in dem Bereich Zeile 109-115 was verrutscht
    "door"              =>  "Tür",
    "alarm"             =>  "Kurzzeitwecker um"
);

  "
  "Inactive" => "Inaktiv",
  "Run" => "Läuft",
  "Ready" => "Bereit",
  "Finished" => "Fertig"



Ich habe das Modul mit meinem Windows Rechner gedownloaded und per WINSCP übertragen, also eigentlich wie immer. Hat jemand eine Idee woran es liegen könnte?

Danke
Swen

Das Problem habe ich leider auch.
Habe einfach die Umlaute im Modul ersetzt. Ist zwar quick and dirty aber funktioniert.

@Prof. Dr. Peter Henning

Ich habe den state noch ein wenig nach meinen Wünschen angepasst, vielleicht magst du es mit ins Modul aufnehmen.

Mit freundlichen Grüßen

                        # define new device state
                        my $state;
                        my $operationState = ReadingsVal($hash->{NAME},"BSH.Common.Status.OperationState","");
                        my $program = ReadingsVal($hash->{NAME},"BSH.Common.Root.ActiveProgram","");
                        if (defined($program) && defined($hash->{commandPrefix}) && length($program) > length($hash->{commandPrefix}) ) {
                            my $prefixLen = length $hash->{commandPrefix};
                            $program = substr($program, $prefixLen);
                        }
                        if ($operationState eq "BSH.Common.EnumType.OperationState.Active" ||
                            $operationState eq "BSH.Common.EnumType.OperationState.Run") {

                            $state = "$program";
                            my $optSpeed = ReadingsVal($hash->{NAME},"Dishcare.Dishwasher.Option.VarioSpeedPlus","0");
                            $state .= " Speed+" if ($optSpeed eq "1");
                            my $optHyg = ReadingsVal($hash->{NAME},"Dishcare.Dishwasher.Option.HygienePlus","0");
                            $state .= " Hygiene+" if ($optHyg eq "1");
                            my $pct = ReadingsVal($hash->{NAME},"BSH.Common.Option.ProgramProgress",undef);
                            $state .= " (Fortschritt $pct)" if (defined $pct);
                            my $tme = ReadingsVal($hash->{NAME},"remaining-time",undef);
                            $state .= " (fertig in $tme h)" if (defined $tme);
                        } elsif ($operationState eq "BSH.Common.EnumType.OperationState.DelayedStart") {
                            $state = "Delayed start of program $program";
                        } else {
                            $state = "Idle";
                        }
                        readingsBulkUpdate($hash, "state", $state) if ($hash->{STATE} ne $state);
                    } elsif (index($_,"event:DISCONNECTED") == 0) { # disconnected event Morluktom 10.05.2020
                        my $state = "Offline";
                        readingsBulkUpdate($hash, "state", $state) if ($hash->{STATE} ne $state);
                    } elsif (index($_,"event:CONNECTED") == 0) { # connected event Morluktom 10.05.2020
                        HomeConnect_UpdateStatus($hash);
                    } else {
            #Log3 $hash->{NAME}, 5, "$hash->{NAME}: event channel unknown: $_";
          }
                }
                readingsEndUpdate($hash, 1);
            } else {
                Log3 $hash->{NAME}, 5, "$hash->{NAME}: event channel read failed, len:\"$len\", received:\"$inputbuf\"";
                HomeConnect_CloseEventChannel($hash);
                return undef;
            }
        }
        Log3 $hash->{NAME}, 5, "$hash->{NAME}: event channel received no more data";
    } else {
        Log3 $hash->{NAME}, 5, "$hash->{NAME}: event channel is not connected";
    }
}

sky64

Hallo

Leider bekomme ich das Modul nicht wirklich zum laufen.
Ich habe seit gestern eine Bosch Geschirrspüler. Mit dem Original 48_HomeConnect.pm funktioniert es.
Eben nur mit den Einschränkungen der langen Namen usw.
Mit dem Modul hier aus dem Thread komme ich leider nicht klar.
Ich habe das Modul von Seite 5 geladen. Das ist ja ein klein wengie fehlerhaft und lässt sich nicht laden.
Das habe ich so korrigiert:

    "standby"           =>  "Standby",
    "childlock"         =>  "Kindersicherung",
    "door"              =>  "Tür",
    "alarm"             =>  "Kurzzeitwecker um",
  "Inactive" => "Inaktiv",
  "Run" => "Läuft",
  "Ready" => "Bereit",
  "Finished" => "Fertig"
);

Damit lässt es sich laden.
Allerdings funktioniert nur sehr wenig. Es ist nur ein "get SMV6ZCX16E Settings" vorhanden. Keinerlei "set".
Ich hatte einfach das 48_HomeConnect.pm ausgetauscht und neu gestartet.
Damit waren dann ein paar Reading verfügbar (auf englisch).
Aber mehr auch nicht. Deshalb habe ich das Gerät gelöscht und im HomeConnectConnector ein "ScanDevices" ausgeführt.
Das erzeugt das Gerät erwartungsgemäß neu.
Leider ist nun praktisch nichts brauchbares mehr da.
list SMV6ZCX16E
Internals:
   CFGFN     
   DEF        hccon 013120542060006224
   FUUID      65cf4f7b-f33f-5588-83ec-faeb6d74e20cc958
   NAME       SMV6ZCX16E
   NR         2141
   STATE      ???
   TYPE       HomeConnect
   events    
   haId       013120542060006224
   hcconn     hccon
   prefix    
   READINGS:
   data:
   hmccu:
Attributes:
   DbLogExclude .*
   debug      2
   verbose    5

Im Log steht das :
          'DELETED SMV6ZCX16E'
          'DEFINED SMV6ZCX16E'
2024.02.16 13:05:27 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:27 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:28 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:28 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:34 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1484.
2024.02.16 13:05:34 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1486.
2024.02.16 13:05:34 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1493.
2024.02.16 13:05:34 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 1496.
2024.02.16 13:05:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1500.
2024.02.16 13:05:34 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.16 13:05:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:05:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:04 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
          'ATTR SMV6ZCX16E debug 1'
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:23 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:28 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.16 13:06:48 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:48 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:48 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:06:48 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
          'ATTR SMV6ZCX16E debug 2'
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:05 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
          'ATTR SMV6ZCX16E verbose 5'
2024.02.16 13:07:15 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:15 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:15 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:15 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:15 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:16 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:16 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:17 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"1"
2024.02.16 13:07:17 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:19 4: SMV6ZCX16E: request /api/homeappliances/013120542060006224/settings
2024.02.16 13:07:19 4: SMV6ZCX16E: no token refresh needed
2024.02.16 13:07:19 4: SMV6ZCX16E: requestAfterToken https://api.home-connect.com/api/homeappliances/013120542060006224/settings
2024.02.16 13:07:19 4: SMV6ZCX16E: response {
2024.02.16 13:07:19 5: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: get settings response {
2024.02.16 13:07:19 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"1", loopCounter:"1"
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel len:"52", received:"2e
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: 2e
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: event:KEEP-ALIVE
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: id:013120542060006224
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"2"
2024.02.16 13:07:22 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"1"
2024.02.16 13:07:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"1", loopCounter:"1"
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel len:"52", received:"2e
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: 2e
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: event:KEEP-ALIVE
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: id:013120542060006224
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"2"
2024.02.16 13:07:32 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:37 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"1"
2024.02.16 13:07:37 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:42 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"1"
2024.02.16 13:07:42 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.16 13:07:46 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:46 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:46 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:46 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.16 13:07:47 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"168", nfound:"0", loopCounter:"1"


Hat einer eine Idee was ich falsch mache?

Gruß Ron
FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

87insane

Ich weiß nicht mehr was ich geändert hatte, aber die Stelle, die du erwähnt hast war mit dabei. Teste mal die Version...
Hatte anfangs auch ewig rum probiert und ein paar Syntax Themen waren es am Ende nur.

Bei mir laufen damit:
Backofen, Spülmaschine, Induktionskochfeld, Trockner, Waschmaschine - ohne Thema. Mich nerven nur diese ganzen LOG Ausgaben aber dafür bin ich zu wenig Programmierer.

Gruß,
87Insane

Prof. Dr. Peter Henning

Ich habe das Problem, das inzwischen 35 "inoffizielle" Versionen des Moduls kursieren. Es ist zwar nett, dass andere sich dann versuchen - aber wenn es danach heißt, man wisse nicht mehr, was man geändert hat und sei auch kein "Programmierer" (ich übrigens auch nicht...), kann ich nicht weiter helfen.

Ich habe die Arbeit an dem Ding lange Zeit liegen lassen, muss das demnächst vielleicht wieder aufnehmen und in ein echtes Modul überführen, das nicht gegen 48_HomeConnect.pm "ausgetauscht" werden muss.

LG

pah

87insane

Ich hab nur die ganzen Syntax Geschichten rauß genommen, die FHEM auch anmeckerte. Man könnte es  ja gegen das normale comparen. Ggf macht es auch Sinn mal eine saubere zu haben. Ich hab mich genau wie @sky64 durch tausende Seiten durch gewühlt und habe es dann irgendwann hinbekommen. Gleiches gilt z.B. auch für das UniFi Modul. Hier muss mal gewaltig aufgeräumt werden.

sky64

@87insane, vielen dank für die Version.

Leider bringt es bei mit keinen echten Effekt.
Hier das list nach dem einfachen Austausch und Neustart:
Internals:
   DEF        hccon 013120542060006224
   FUUID      65ce3c9f-f33f-5588-28b4-aabb7b9d3b8f3318
   NAME       SMV6ZCX16E
   NR         547
   STATE      Ready
   TYPE       HomeConnect
   aliasname  Geschirrspüler
   brand      Bosch
   eventChannelTimeout 1708162611.3602
   eventCount 12
   events     SaltNearlyEmpty,RinseAidNearlyEmpty
   haId       013120542060006224
   hcconn     hccon
   prefix     Dishcare.Dishwasher
   programs   Intensiv70,Auto2,Eco50,Glas40,PreRinse,NightWash,Kurz60,MachineCare
   retrycounter 0
   type       Dishwasher
   vib        SMV6ZCX16E
   READINGS:
     2024-02-16 14:04:59   BSH.Common.Event.ProgramAborted BSH.Common.EnumType.EventPresentState.Off
     2024-02-16 14:48:22   BSH.Common.Option.RemainingProgramTime 8100 seconds
     2024-02-16 16:53:15   BSH.Common.Root.SelectedProgram Auto2
     2024-02-16 13:49:17   BSH.Common.Setting.PowerState BSH.Common.EnumType.PowerState.Off
     2024-02-17 10:05:14   BSH.Common.Status.DoorState BSH.Common.EnumType.DoorState.Closed
     2024-02-16 13:47:33   BSH.Common.Status.OperationState BSH.Common.EnumType.OperationState.Ready
     2024-02-16 13:47:33   BSH.Common.Status.RemoteControlActive 1
     2024-02-16 13:47:33   BSH.Common.Status.RemoteControlStartAllowed 1
     2024-02-16 13:51:48   Dishcare.Dishwasher.Option.VarioSpeedPlus 0
     2024-02-17 10:34:04   DoorState       Closed
     2024-02-17 10:37:03   Laufzeit        02:15:00
     2024-02-17 10:34:04   OperationState  Ready
     2024-02-17 10:34:04   RemoteControlActive 1
     2024-02-17 10:34:04   RemoteControlStartAllowed 1
     2024-02-17 10:34:04   state           Ready
     2024-02-17 10:34:04   tr_DoorState    door closed
     2024-02-17 10:34:04   tr_RemoteControlState remote start active
     2024-02-17 10:34:04   tr_State1       ready
     2024-02-17 10:34:04   tr_State2       ready
   data:
     poweroff   PowerOff
Attributes:
   DbLogExclude .*
   alias      Geschirrspüler
   icon       scene_dishwasher
   room       Geräte
   userReadings Laufzeit { strftime('%H:%M:%S', gmtime(ReadingsNum($NAME, "BSH.Common.Option.RemainingProgramTime", 0))) }
   verbose    1
   webCmd     BSH.Common.Root.SelectedProgram:startProgram:stopProgram

Die Readings von "2024-02-17 10:34:04" sind nach dem Neustart.
Im Log ist das zu sehen:
2024.02.17 10:33:47 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 555.
2024.02.17 10:33:47 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 556.
2024.02.17 10:33:47 1: PERL WARNING: Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 582.
2024.02.17 10:33:47 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 600.
2024.02.17 10:33:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:33:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:33:47 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:01 1: [HomeConnect_ResponseInit] SMV6ZCX16E: defined as HomeConnect Dishwasher Bosch SMV6ZCX16E
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:04 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.17 10:34:04 1: [HomeConnect_ResponseUpdateStatus] SMV6ZCX16E: updating reading DoorState to Closed
2024.02.17 10:34:04 1: [HomeConnect_ResponseUpdateStatus] SMV6ZCX16E: updating reading RemoteControlStartAllowed to 1
2024.02.17 10:34:04 1: [HomeConnect_ResponseUpdateStatus] SMV6ZCX16E: updating reading OperationState to Ready
2024.02.17 10:34:04 1: [HomeConnect_ResponseUpdateStatus] SMV6ZCX16E: updating reading RemoteControlActive to 1
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:06 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:06 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:32 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:32 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:41 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:41 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:41 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.17 10:34:57 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:34:57 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:35:01 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:35:16 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:35:16 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.17 10:35:56 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:36:51 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:36:52 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 10:36:52 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found

Er bekommt es also irgendwas nicht nicht hin.

Ich habe nun auch mal ein Update des fhem gemacht ;) (mal sehen wo ich noch nacharbeiten muss) Aber auch ohne Erfolg :(

Nach dem Löschen und und "ScanDevices" kommen auch die neuen Readings nicht wieder ...
Internals:
   CFGFN     
   DEF        hccon 013120542060006224
   FUUID      65d08485-f33f-5588-479d-f304d1e5211a5276
   NAME       SMV6ZCX16E
   NR         1007
   STATE      ???
   TYPE       HomeConnect
   events    
   haId       013120542060006224
   hcconn     hccon
   prefix    
   READINGS:
   data:
Attributes:
   DbLogExclude .*


Wenn ich noch irgendwas liefern oder testen kann ?

Gruß Ron

FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

Prof. Dr. Peter Henning

#84
Ich schreibe das ja nur sehr ungerne.

In der von 87insane verbreiteten Version wurden gegenüber meiner Arbeit lediglich Umlaute gegen "ae" etc. ausgetauscht - substanzielle Änderungen gibt es sonst nicht (lediglich eine unsinnige Verdopplung von Einträgen "ready/Ready" "finished/Finished" in der Übersetzungstabelle). Trotzdem steht nach wie vor mein Name oben drin - und nicht der Name desjenigen, der diesen Austausch vorgenommen hat. Das ist mit den Lizenzbedingungen nicht vereinbar und muss bitte umgehend abgestellt werden.

Denjenigen, die mit Umlauten Probleme haben, kann ich nur empfehlen, das Encoding auf ihren Kisten sauber einzustellen - denn ich behalte diese Umlaute drin.

pah

Prof. Dr. Peter Henning

#85
@sky64: Und warum nicht einfach mal ein "get ... settings" ausführen?

Es ist darüber hinaus die schlechteste aller Möglichkeiten, Devices einfach komplett zu löschen und öfter einen Neustart mit neuer Initialisierung der HomeConnect-Devices auszuführen. FHEM ist mit dieser Vorgehensweise eventuell in einem nicht definierten Zustand. Sieht man übrigens hier sehr gut: Im Device sind die Readings "type" und "prefix" mit den richtigen Werten besetzt - und werden trotzdem (das sind die Warnungsmeldungen in den Zeilen 555,556 und 582) als leer angemeckert.

Und natürlich muss man das manuell eingespielte Modul 48_HomeConnect.pm vor dem Überschreiben durch das offiziell verteilte Modul schützen (excludeFromUpdate).

LG

pah

sky64

Zitat von: Prof. Dr. Peter Henning am 17 Februar 2024, 11:47:22@sky64: Und warum nicht einfach mal ein "get ... settings" ausführen?
Tja das habe schon mehrfach versucht. Es passiert aber nichts.
Im Log erscheinen dann diese 3 Zeilen:
2024.02.17 13:37:24 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 13:37:24 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 13:37:24 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
Das sieht für mich so aus, dass dass HomeConnect-Modul nicht die richtigen Daten zurück bekommt um das "set" zu bauen.

Zitat von: Prof. Dr. Peter Henning am 17 Februar 2024, 11:47:22Es ist darüber hinaus die schlechteste aller Möglichkeiten, Devices einfach komplett zu löschen und öfter einen Neustart mit neuer Initialisierung der HomeConnect-Devices auszuführen. FHEM ist mit dieser Vorgehensweise eventuell in einem nicht definierten Zustand. Sieht man übrigens hier sehr gut: Im Device sind die Readings "type" und "prefix" mit den richtigen Werten besetzt - und werden trotzdem (das sind die Warnungsmeldungen in den Zeilen 555,556 und 582) als leer angemeckert.

Was wäre die richtige Vorgehensweise?

Gruß Ron

FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

87insane

@Prof. Dr. Peter Henning: Das Modul ging bei mir nicht. Die Verdopplung bzw. Anpassung war notwendig weil irgendwas fehlte.
Du bist einer derjenigen, die das hier wohl noch am meisten verstehen. Ich weiß, dass deine Zeit sicher knapp ist aber ggf. hast du ja mal Lust das Modul an sich etwas zu verschönern. Ich habe auch x Meldungen im LOG die nicht sein müssten, denke ich.

Beispiel:
2024.02.17 11:10:33 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Open
2024.02.17 11:10:33 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!
2024.02.17 11:10:38 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Closed
2024.02.17 11:10:38 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!
2024.02.17 11:42:24 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Open
2024.02.17 11:42:24 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!
2024.02.17 11:42:34 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Closed
2024.02.17 11:42:34 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!
2024.02.17 11:51:05 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Open
2024.02.17 11:51:05 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!
2024.02.17 11:51:25 1: [HomeConnect_ReadEventChannel] S155EB800E: DoorState = Closed
2024.02.17 11:51:25 1: [HomeConnect_Set] S155EB800E: no settings defined, should no longer occur !!

PS: Ich kann die Datei auch wieder rauß nehmen. Ich selber habe aber auch kein Problem mit den Umlauten. Man sollte es eben korrekt einstellen in seinem BS.

87insane

Zitat von: sky64 am 17 Februar 2024, 13:46:38
Zitat von: Prof. Dr. Peter Henning am 17 Februar 2024, 11:47:22@sky64: Und warum nicht einfach mal ein "get ... settings" ausführen?
Tja das habe schon mehrfach versucht. Es passiert aber nichts.
Im Log erscheinen dann diese 3 Zeilen:
2024.02.17 13:37:24 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 13:37:24 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, should no longer occur !!
2024.02.17 13:37:24 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
Das sieht für mich so aus, dass dass HomeConnect-Modul nicht die richtigen Daten zurück bekommt um das "set" zu bauen.

Zitat von: Prof. Dr. Peter Henning am 17 Februar 2024, 11:47:22Es ist darüber hinaus die schlechteste aller Möglichkeiten, Devices einfach komplett zu löschen und öfter einen Neustart mit neuer Initialisierung der HomeConnect-Devices auszuführen. FHEM ist mit dieser Vorgehensweise eventuell in einem nicht definierten Zustand. Sieht man übrigens hier sehr gut: Im Device sind die Readings "type" und "prefix" mit den richtigen Werten besetzt - und werden trotzdem (das sind die Warnungsmeldungen in den Zeilen 555,556 und 582) als leer angemeckert.

Was wäre die richtige Vorgehensweise?

Gruß Ron



Lass dein Gerät einfach mal komplett durch laufen. Bei z.B. meiner Waschmaschine musste ich es erst anlegen in FHEM und danach einmal komplett waschen und danach war auch alles vorhanden.

Prof. Dr. Peter Henning

#89
ZitatIch kann die Datei auch wieder rauß nehmen

Es ist mir vollkommen egal, was jemand postet - so lange nicht mein Name als letzter Bearbeiter darin steht.Darum geht es.

Das mit den fehlenden Settings kann ich nicht nachvollziehen, weil es bei mir nicht auftritt. Die Settings (also die programm-unabhängigen Einstellungen der Maschine) werden mit dem Unterprogramm HomeConnect_GetSettings geholt, und die Antwort mit HomeConnect_ResponseGetSettings ausgewertet. Wenn mit dem zurückgelieferten JSON etwas nicht stimmt, gibt es eine Fehlermeldung im Log. Wenn man verbose=5 setzt, wird die gesamte erhaltene Antwort im Log gezeigt. Welche Settings, Programs und ProgramOptions bekannt sind, kann man jederzeit mit dem Befehl set ... ZZZ_Dump abfragen.

Anbei meine aktuelle Version - und bitte nicht verändern, ohne dies im Kopf der Datei klar und mit dem eigenen Namen zu markieren

LG

pah

sky64

#90
So, das Programm ist mal durchgelaufen.
Diverse Readading, auch wenn man lokal oder in der App Optionen auswählt werden erstellt und aktualisiert.
Eine set-Auswahl gibt es weiterhin nicht.
Muss man selbst etwas definieren?

Ich habe mal das "set SMV6ZCX16E ZZZ_Dump" aufgerufen:
Device SMV6ZCX16E of type Dishwasher has
settings: $VAR1 = undef;

options: $VAR1 = undef;

transtable: $VAR1 = {
          'Quick45' => 'Speed 45',
          'Intensiv70' => 'Intensiv 70',
          'Kurz60' => 'Speed 60',
          'Favorite.001' => 'Favorit',
          'Auto2' => 'Auto 45-65',
          'MachineCare' => 'Maschinenpflege',
          'Eco50' => 'Eco 50',
          'GlassShine' => 'Brilliant Shine',
          'PreRinse' => 'Vorspuelen',
          'NightWash' => 'Leise'
        };

poweroff: $VAR1 = 'PowerOff';


Was sagt das aus?

Das war bevor ist das Modul noch mal gegen das letze hier getauscht habe.
Das vorgehen (ich weiß nicht wie es richtig/besser gemacht wird)
- Device gelöscht
- save config (damit gibt es auch keinen Verweise in der fhem.save mehr, richtig?)
- shutdown restart
Damit sollte fhem in einem Zustand sein, wo das Device usw. unbekannt ist.
Dann im hcconn ein scanDevices ausgelöst.
Es wird das Device neu angelegt.
Im Device ein get ... Settings hat keinen Effekt.
Verbose auf 5 gesetzt.
Ein set ... ZZZ_Dump liefert jetzt das  :(
Device SMV6ZCX16E of type  has
settings: $VAR1 = undef;

options: $VAR1 = undef;

transtable: $VAR1 = undef;

poweroff: $VAR1 = undef;

Meine Version von HomeConnectConnector ist V1.1.

Die Log-Ausgabe kommt gleich im Edit, da ich das auf dem Tablet nicht sauber kopieren kann.

So hier das Log mit Verbose 5.
--
2024.02.17 19:54:33 4: hccon: response {
  "data": {
    "homeappliances": [{
      "brand": "Bosch",
      "connected": true,
      "enumber": "SMV6ZCX16E/39",
      "haId": "013120542060006224",
      "name": "Geschirrspüler",
      "type": "Dishwasher",
      "vib": "SMV6ZCX16E"
    }]
  }
}
2024.02.17 19:54:33 1: PERL WARNING: "my" variable $HC_tt masks earlier declaration in same scope at ./FHEM/48_HomeConnect.pm line 297.
2024.02.17 19:54:33 1: PERL WARNING: "my" variable $HC_delayed_PS masks earlier declaration in same scope at ./FHEM/48_HomeConnect.pm line 298.
2024.02.17 19:54:33 1: PERL WARNING: "my" variable $pct masks earlier declaration in same scope at ./FHEM/48_HomeConnect.pm line 1715.
2024.02.17 19:54:33 1: PERL WARNING: "my" variable $tim masks earlier declaration in same scope at ./FHEM/48_HomeConnect.pm line 1721.
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 557.
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 558.
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value $type in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 584.
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/48_HomeConnect.pm line 602.
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value $type in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 614.
2024.02.17 19:55:00 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:00 1: PERL WARNING: Use of uninitialized value $type in hash element at ./FHEM/48_HomeConnect.pm line 615.
2024.02.17 19:55:00 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:20 4: SMV6ZCX16E: request /api/homeappliances/013120542060006224/settings
2024.02.17 19:55:20 4: SMV6ZCX16E: no token refresh needed
2024.02.17 19:55:20 4: SMV6ZCX16E: requestAfterToken https://api.home-connect.com/api/homeappliances/013120542060006224/settings
2024.02.17 19:55:22 4: SMV6ZCX16E: response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }]
  }
}
2024.02.17 19:55:22 5: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: get settings response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }]
  }
}
2024.02.17 19:55:22 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 1503.
2024.02.17 19:55:22 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.17 19:55:41 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:55:41 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:56:43 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:56:43 1: PERL WARNING: Use of uninitialized value $availableSets in string ne at ./FHEM/48_HomeConnect.pm line 674.
2024.02.17 19:56:43 3: [HomeConnect] SMV6ZCX16E: set command: ZZZ_Dump
2024.02.17 19:56:43 1: PERL WARNING: Use of uninitialized value $type in concatenation (.) or string at ./FHEM/48_HomeConnect.pm line 687.
2024.02.17 19:57:16 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
--
2024.02.17 19:57:17 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:57:56 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 19:57:56 3: [HomeConnect] SMV6ZCX16E: set command: ZZZ_Dump
--
2024.02.17 20:04:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:04:11 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
--
2024.02.17 20:06:37 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:06:37 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:07:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:07:04 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:07:22 4: SMV6ZCX16E: request /api/homeappliances/013120542060006224/settings
2024.02.17 20:07:22 4: SMV6ZCX16E: no token refresh needed
2024.02.17 20:07:22 4: SMV6ZCX16E: requestAfterToken https://api.home-connect.com/api/homeappliances/013120542060006224/settings
2024.02.17 20:07:24 4: SMV6ZCX16E: response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.On"
    }]
  }
}
2024.02.17 20:07:24 5: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: get settings response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.On"
    }]
  }
}
2024.02.17 20:07:24 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found
2024.02.17 20:07:43 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:07:43 3: [HomeConnect] SMV6ZCX16E: set command: ZZZ_Dump
2024.02.17 20:08:36 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:08:36 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type
2024.02.17 20:08:38 4: SMV6ZCX16E: request /api/homeappliances/013120542060006224/settings
2024.02.17 20:08:38 4: SMV6ZCX16E: no token refresh needed
2024.02.17 20:08:38 4: SMV6ZCX16E: requestAfterToken https://api.home-connect.com/api/homeappliances/013120542060006224/settings
2024.02.17 20:08:39 4: SMV6ZCX16E: response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }]
  }
}
2024.02.17 20:08:39 5: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: get settings response {
--
      "key": "BSH.Common.Setting.PowerState",
      "value": "BSH.Common.EnumType.PowerState.Off"
    }]
  }
}
2024.02.17 20:08:39 1: [HomeConnect_ResponseGetSettings] SMV6ZCX16E: no settings found

Die PowerState.On / Off-Meldungen kommen wenn ich get ... Settings ausführe.
Ich hatte die Maschine  mal ein geschaltet um zu sehen ob wie vorher die Readings wieder kommen, tun sie nicht  :(
Ohne das ich das Device mit dem originalen HomeConnect-Modul anlege und dann das File austausche kommen keine Readings...

Es ist bestimmt nur eine Kleinigkeit die bei mir nicht stimmt, aber wenn man es woanders nicht reproduzieren kann ist die Fehlersuche schwer.

 
FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

Prof. Dr. Peter Henning

#91
ZitatDas vorgehen (ich weiß nicht wie es richtig/besser gemacht wird)

Nein, bitte nicht so ! Einfach nur - nach dem Neueinspielen - reload 48_HomeConnect.pm ausführen.

An dieser Installation ist irgendetwas oberfaul, weil die richtigen Antworten vom BSH-Server kommen (das Ergebnis von get settings). Aber dann nicht im Device-Hash landen.

Ich vermute, dass bei der automatischen Erzeugung der Devices irgendetwas schief geht. Also bitte MANUELL ausführen (und zwar ohne irgendeinen Neustart

defmod SMV6ZCX16E HomeConnect <hier der Name des HomeConnectBridge-Devices> 013120542060006224

oder, falls das kein Ergebnis liefert: Device löschen, und dann manuell das oben genannte Kommando ausführen.

LG

pah

sky64

Vielen Dank für die Hilfe.

Ich war eigentlich schon dabei das ganze aufzugeben.
Weder ein Austausch des Files mit reload noch eine manuelle Defnition mit defmod brachten eine Änderung am Verhalten.

Ich habe dann einfach mal blind ein "set SMV6ZCX16E SelectedProgram Eco50" abgsetzt und endlich mal eine Reaktion gesehen.
Es wurden das Program gesetzt und außerdem die Programmoptionen abgerufen!

Ich kann auch ein "get SMV6ZCX16E programs" absetzten.
Das sieht im Log dann so aus:
2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"169", nfound:"1", loopCounter:"1"
2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel len:"52", received:"2e
event:KEEP-ALIVE
data:
id:013120542060006224


"
2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: 2e

2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: event:KEEP-ALIVE

2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown: id:013120542060006224

2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:

2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel unknown:

2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel searching for data, fileno:"169", nfound:"0", loopCounter:"2"
2024.02.18 13:52:27 5: [HomeConnect_ReadEventChannel] SMV6ZCX16E: event channel received no more data
2024.02.18 13:52:31 4: SMV6ZCX16E: request /api/homeappliances/013120542060006224/programs/available
2024.02.18 13:52:31 4: SMV6ZCX16E: no token refresh needed
2024.02.18 13:52:31 4: SMV6ZCX16E: requestAfterToken https://api.home-connect.com/api/homeappliances/013120542060006224/programs/available
2024.02.18 13:52:31 4: SMV6ZCX16E: response {
  "data": {
    "active": {
      "constraints": {
        "access": "readWrite"
      }
    },
    "programs": [{
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Intensiv70"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Auto2"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Eco50"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Glas40"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.PreRinse"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.NightWash"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Kurz60"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.MachineCare"
    }],
    "selected": {
      "constraints": {
        "access": "readWrite"
      },
      "key": "Dishcare.Dishwasher.Program.Auto2",
      "options": [{
        "key": "BSH.Common.Option.StartInRelative",
        "value": 0,
        "unit": "seconds"
      }, {
        "key": "Dishcare.Dishwasher.Option.ExtraDry",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.HygienePlus",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.IntensivZone",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.VarioSpeedPlus",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.SilenceOnDemand",
        "value": false
      }, {
        "key": "BSH.Common.Option.RemainingProgramTime",
        "value": 8100,
        "unit": "seconds"
      }, {
        "key": "BSH.Common.Option.RemainingProgramTimeIsEstimated",
        "value": true
      }, {
        "key": "BSH.Common.Option.EnergyForecast",
        "value": 37,
        "unit": "%"
      }, {
        "key": "BSH.Common.Option.WaterForecast",
        "value": 49,
        "unit": "%"
      }]
    }
  }
}
2024.02.18 13:52:31 5: [HomeConnect_ResponseGetPrograms] SMV6ZCX16E: get programs response {
  "data": {
    "active": {
      "constraints": {
        "access": "readWrite"
      }
    },
    "programs": [{
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Intensiv70"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Auto2"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Eco50"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Glas40"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.PreRinse"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.NightWash"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.Kurz60"
    }, {
      "constraints": {
        "execution": "selectandstart"
      },
      "key": "Dishcare.Dishwasher.Program.MachineCare"
    }],
    "selected": {
      "constraints": {
        "access": "readWrite"
      },
      "key": "Dishcare.Dishwasher.Program.Auto2",
      "options": [{
        "key": "BSH.Common.Option.StartInRelative",
        "value": 0,
        "unit": "seconds"
      }, {
        "key": "Dishcare.Dishwasher.Option.ExtraDry",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.HygienePlus",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.IntensivZone",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.VarioSpeedPlus",
        "value": false
      }, {
        "key": "Dishcare.Dishwasher.Option.SilenceOnDemand",
        "value": false
      }, {
        "key": "BSH.Common.Option.RemainingProgramTime",
        "value": 8100,
        "unit": "seconds"
      }, {
        "key": "BSH.Common.Option.RemainingProgramTimeIsEstimated",
        "value": true
      }, {
        "key": "BSH.Common.Option.EnergyForecast",
        "value": 37,
        "unit": "%"
      }, {
        "key": "BSH.Common.Option.WaterForecast",
        "value": 49,
        "unit": "%"
      }]
    }
  }
}
2024.02.18 13:52:32 1: [HomeConnect_Set] SMV6ZCX16E: no settings defined, replacing by default settings for type Dishwasher

Auffällig finde ich die "event channel unknown".

Im ZZZ_Dump sieht das nun so aus:
Device SMV6ZCX16E of type Dishwasher has
settings: $VAR1 = undef;

options: $VAR1 = {
          'ExtraDry' => [
                          'Dishcare.Dishwasher.Option',
                          'Boolean',
                          bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                          '',
                          bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                          undef
                        ],
          'HygienePlus' => [
                             'Dishcare.Dishwasher.Option',
                             'Boolean',
                             $VAR1->{'ExtraDry'}[2],
                             '',
                             $VAR1->{'ExtraDry'}[4],
                             undef
                           ],
          'IntensivZone' => [
                              'Dishcare.Dishwasher.Option',
                              'Boolean',
                              $VAR1->{'ExtraDry'}[2],
                              '',
                              $VAR1->{'ExtraDry'}[4],
                              undef
                            ],
          'StartInRelative' => [
                                 'BSH.Common.Option',
                                 'Int',
                                 undef,
                                 '(0,86400)',
                                 undef,
                                 undef
                               ],
          'VarioSpeedPlus' => [
                                'Dishcare.Dishwasher.Option',
                                'Boolean',
                                $VAR1->{'ExtraDry'}[2],
                                '',
                                $VAR1->{'ExtraDry'}[4],
                                undef
                              ]
        };

transtable: $VAR1 = {
          'Favorite.001' => 'Favorit',
          'Kurz60' => 'Speed 60',
          'PreRinse' => 'Vorspülen',
          'MachineCare' => 'Maschinenpflege',
          'Intensiv70' => 'Intensiv 70',
          'Quick45' => 'Speed 45',
          'Auto2' => 'Auto 45-65',
          'Eco50' => 'Eco 50',
          'NightWash' => 'Leise',
          'GlassShine' => 'Brilliant Shine'
        };

poweroff: $VAR1 = 'PowerOff';

Ich kann die Programme und Optionen alle setzten wenn ich das in die CLI-Zeile eingeben.

Aber eine komfortable Dropdown-Bedienung (wie in im Beitrag #23) ist nicht vorhanden. Muss man die sich selbst bauen, wie?
Vermutlich müsste das settings-Array gefüllt sein. Gibt es noch einen Trick?
Eigentlich schreibt er ja "no settings defined, replacing by default settings for type Dishwasher"

Das list sieht nun so aus:
Internals:
   CFGFN     
   DEF        hccon 013120542060006224
   FUUID      65d100e9-f33f-5588-a1a2-6bd1d78622ae5034
   NAME       SMV6ZCX16E
   NR         670
   STATE      <p align="left">
Ready
<br/>Bereit
</p>
   TYPE       HomeConnect
   aliasname  Geschirrspüler
   brand      Bosch
   commandPrefix Dishcare.Dishwasher.Program.
   eventChannelTimeout 1708260467.07585
   eventCount 140
   events     SaltNearlyEmpty,RinseAidNearlyEmpty
   haId       013120542060006224
   hcconn     hccon
   options    StartInRelative,ExtraDry,HygienePlus,IntensivZone,VarioSpeedPlus
   optlist    <br/><div id="optionlist"><table>
<tr><td>StartInRelative</td><td><input type="text" id="opt0" size="4" maxlength="120" value="Int (0,86400)"/></td></tr>
<tr><td>ExtraDry</td><td><input type="checkbox" id="opt1" size="4" value="unchecked"/></td></tr>
<tr><td>HygienePlus</td><td><input type="checkbox" id="opt2" size="4" value="unchecked"/></td></tr>
<tr><td>IntensivZone</td><td><input type="checkbox" id="opt3" size="4" value="unchecked"/></td></tr>
<tr><td>VarioSpeedPlus</td><td><input type="checkbox" id="opt4" size="4" value="unchecked"/></td></tr></table></div>
   prefix     Dishcare.Dishwasher
   programs   Intensiv70,Auto2,Eco50,Glas40,PreRinse,NightWash,Kurz60,MachineCare
   retrycounter 0
   type       Dishwasher
   vib        SMV6ZCX16E
   OLDREADINGS:
   READINGS:
     2024-02-18 12:49:52   Dishcare.Dishwasher.Option.HygienePlus true
     2024-02-18 12:49:12   Dishcare.Dishwasher.Option.VarioSpeedPlus true
     2024-02-18 13:35:26   DoorState       Closed
     2024-02-18 11:35:19   ExtraDry        0
     2024-02-18 12:50:44   HygienePlus     0
     2024-02-18 11:35:29   IntensivZone    0
     2024-02-18 11:36:49   Laufzeit        02:15:00
     2024-02-18 11:25:42   OperationState  Ready
     2024-02-18 12:57:44   PowerState      Off
     2024-02-18 12:50:44   RemainingProgramTime 8100 seconds
     2024-02-18 12:50:44   RemainingProgramTimeHHMM 02:15
     2024-02-18 11:25:42   RemoteControlActive 1
     2024-02-18 11:25:42   RemoteControlStartAllowed 1
     2024-02-18 12:22:53   SelectedProgram Auto2
     2024-02-18 12:50:34   VarioSpeedPlus  0
     2024-02-18 13:35:26   state           Ready
     2024-02-18 13:35:26   tr_DoorState    Tür geschlossen
     2024-02-18 13:35:26   tr_State1       Bereit
     2024-02-18 13:35:26   tr_State2       Bereit
     2024-02-18 13:35:26   tr_State3       Bereit
   data:
     poweroff   PowerOff
     options:
       ExtraDry:
         Dishcare.Dishwasher.Option
         Boolean
         0
        
         1
         undef
       HygienePlus:
         Dishcare.Dishwasher.Option
         Boolean
         0
        
         1
         undef
       IntensivZone:
         Dishcare.Dishwasher.Option
         Boolean
         0
        
         1
         undef
       StartInRelative:
         BSH.Common.Option
         Int
         undef
         (0,86400)
         undef
         undef
       VarioSpeedPlus:
         Dishcare.Dishwasher.Option
         Boolean
         0
        
         1
         undef
     trans:
       Auto2      Auto 45-65
       Eco50      Eco 50
       Favorite.001 Favorit
       GlassShine Brilliant Shine
       Intensiv70 Intensiv 70
       Kurz60     Speed 60
       MachineCare Maschinenpflege
       NightWash  Leise
       PreRinse   Vorspülen
       Quick45    Speed 45
   hmccu:
Attributes:
   DbLogExclude .*
   alias      Geschirrspüler
   devStateIcon 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
   icon       scene_dishwasher
   room       Geräte,Verbrauch
   stateFormat {my $open=ReadingsVal("$name","tr_DoorState","");
sprintf("<p align=\"left\">\n%s\n<br/>%s\n%s</p>",
ReadingsVal("$name","state",""),ReadingsVal("$name","tr_State1",""),
(($open=~/offen/)?"<br/>".$open:""))}
   updateTimer 10
   verbose    5


Für die Zeitverzögerungen: wird das in den Readings irgendwo angezeigt? Ich sehe da aktuell keine Reaktion.
Auch wenn ich eine Verzögerung an der Maschine einstelle gibt es keine Reading wo das drin steht.

Wird die Maschine automatisch eingeschaltet wenn man ein Program startet oder muss man erst ein "set ... PowerOn" absetzten?
Ich habe es noch nicht getestet.

Gruß Ron
FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

Prof. Dr. Peter Henning

Zitatmanuelle Defnition mit defmod brachten eine Änderung am Verhalten.

Ich habe auch nichts von "Verhaltensänderung" geschrieben. Sondern nur nach einer Möglichkeit gesucht, die offenbar beim autocreate der Devices auftretenden Fehler zu umgehen.

Betreffend die Meldungen im EventChannel: Ignorieren bitte, und verbose wieder zurücksetzen...

Betreffend die Startroutinen: Nein, noch viel kryptischer.
- Wenn die Kiste nicht "Ready" ist, muss sie mit PowerOn angeschaltet werden
- Erst wenn die Kiste "Ready" ist, kann man mit SelectedProgram ein Programm wählen
- Danach erst kann - wenn man das will - eine Verzögerung eingebaut werden. Dafür gibt es im Modul drei Möglichkeiten
-- DelayRelative - Starte in einer bestimmten Zeitspanne von jetzt an
-- DelayStartTime - Starte zu einem bestimmten Zeitpunkt ab jetzt
-- DelayEndTime - Starte so, dass die Maschine zu einem bestimmten Zeitpunkt fertig ist. Das Modul berechnet dann an Hand der bekannten Programmdauer den nötig Startzeitpunkt.
- Der Programmstart erfolgt erst mit dem Befehl StartProgram.

Um diese komplexe Sequenz, bei der man immer auch noch warten muss, bis der doofe BSH-Server das an die Maschine gemeldet hat, zu automatisieren, habe ich ein DOIF und ein dummy.

defmod Geschirrspuelen.N DOIF ## 1. Setze Phase \
([SN55ZS49CE:".*tr_State11111.*"])\
({fhem("setreading Geschirrspuelen phase ".ReadingsVal("SN55ZS49CE","tr_State1",""))},\
 {fhem90Cmd("setreading Geschirrspuelen phase ".ReadingsVal("SN55ZS49CE","tr_State1",""))})\
## 2. Finished\
DOELSEIF\
([SN55ZS49CE:".*Finished.*"] and [07:00-22:30])\
({speak("TText 238386743",":130:")},\
 {speak("Tab1.EG",":130:")},\
 setreading Geschirrspuelen event Finished,\
 {fhem90Cmd("setreading Geschirrspuelen event Finished")})\
## 3. und 4. Klarspüler\
DOELSEIF\
([SN55ZS49CE:".*RinseAidNearlyEmpty.*Present.*"])\
(set Geschirrspuelen event RinseAidNearlyEmpty,\
 {fhem90Cmd("set Geschirrspuelen event RinseAidNearlyEmpty")},\
 {fhem90Cmd("setreading Device.warn Appliance.nok Spülmaschine benötigt Klarspüler")})\
DOELSEIF\
([SN55ZS49CE:".*RinseAidNearlyEmpty.*Off.*"])\
({fhem90Cmd("setreading Device.warn Appliance.nok none")})\
## 5. und 6. Spülmaschinensalz\
DOELSEIF\
([SN55ZS49CE:".*SaltNearlyEmpty.*Present.*"])\
(set Geschirrspuelen event SaltNearlyEmpty,\
 {fhem90Cmd("set Geschirrspuelen event SaltNearlyEmpty")},\
 {fhem90Cmd("setreading Device.warn Appliance.nok Spülmaschine benötigt Salz")})\
DOELSEIF\
([SN55ZS49CE:".*SaltNearlyEmpty.*Off.*"])\
({fhem90Cmd("setreading Device.warn Appliance.nok none")})\
## 7. Anschalten\
DOELSEIF\
([Geschirrspuelen:".*Time.*"] and [SN55ZS49CE:state] ne "Ready")\
 (set SN55ZS49CE PowerOn,\
  {Log 1,"=======> Powering on SN55ZS49CE"},\
  setreading Geschirrspuelen event $EVENT,\
  setreading Geschirrspuelen active wait)\
DOELSEIF\
( ([Geschirrspuelen:event] =~ /RelativeTime.*/ and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE:".*Ready.*"]) or ([Geschirrspuelen:".*RelativeTime.*"] and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE] eq "Ready") )\
 (set SN55ZS49CE SelectedProgram Eco50,\
  {Log 1,"=======> Selecting Eco50 on SN55ZS49CE"})\
 (set SN55ZS49CE DelayRelative {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;;;Log 1,"=======> Setting SN55ZS49CE to relative delay $evt[1]";;;;return $evt[1])} )\
 (setreading Geschirrspuelen active start)\
DOELSEIF\
(([Geschirrspuelen:event] =~ /EndTime.*/ and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE:".*Ready.*"]) or ([Geschirrspuelen:".*EndTime.*"] and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE] eq "Ready"))\
 (set SN55ZS49CE SelectedProgram Eco50,\
  {Log 1,"=======> Selecting Eco50 on SN55ZS49CE"})\
 (set SN55ZS49CE DelayEndTime {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;;;Log 1,"=======> Setting SN55ZS49CE to endtime delay $evt[1]";;;;return $evt[1])} )\
 (setreading Geschirrspuelen active start)\
DOELSEIF\
(([Geschirrspuelen:event] =~ /StartTime.*/ and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE:".*Ready.*"]) or ([Geschirrspuelen:".*StartTime.*"] and [Geschirrspuelen:active] ne "start" and [SN55ZS49CE] eq "Ready"))\
 (set SN55ZS49CE SelectedProgram Eco50,\
  {Log 1,"=======> Selecting Eco50 on SN55ZS49CE"})\
 (set SN55ZS49CE DelayStartTime {(my @evt = split(/ /,ReadingsVal("Geschirrspuelen","event",""));;;;Log 1,"=======> Setting SN55ZS49CE to starttime delay $evt[1]";;;;return $evt[1])} )\
 (setreading Geschirrspuelen active start)\
DOELSEIF\
([Geschirrspuelen:active] eq "start" and [SN55ZS49CE:".*StartInRelative.*"] )\
 (set SN55ZS49CE StartProgram,\
 {Log 1,"=======> Delayed start SN55ZS49CE"})\
 (setreading Geschirrspuelen event WaitForStart,\
  setreading Geschirrspuelen active no)\

attr Geschirrspuelen.N cmdpause 0:0:0:0:0:0:5:5:5:5:0
attr Geschirrspuelen.N do always
attr Geschirrspuelen.N group Waschen
attr Geschirrspuelen.N repeatsame 0:1:1:1:1:1:3:1:1:1:1
attr Geschirrspuelen.N room Kontrollraum
attr Geschirrspuelen.N sortby 0
attr Geschirrspuelen.N stateFormat {ReadingsVal("Geschirrspuelen","event","")." ==> ".ReadingsVal($name,"state","")."&nbsp;;&nbsp;;&nbsp;;".ReadingsTimestamp($name,"state","")}
attr Geschirrspuelen.N wait 0:0:0:0:0:0:0:5,10,2:5,10,2:5,10,2:0

sowie

defmod Geschirrspuelen dummy
attr Geschirrspuelen group Waschen
attr Geschirrspuelen readingList active event phase
attr Geschirrspuelen room Kontrollraum
attr Geschirrspuelen setList EndTime:time StartTime:time RelativeTime:time

Ich muss also nur noch den Befehl absetzen
Zitatset Geschirrspuelen EndTime 06:00
und die Spülmaschine wird so eingeschaltet, dass sie um 6:00 morgens fertig ist.

Übrigens kann man den komplexen mehrzeiligen Zustand der Spülmaschine mit den entsprechenden Attributen auch sehr schöne anzeigen lassen. Bei mir sieht das so aus:
defmod SN55ZS49CE HomeConnect HomeConnectBridge xxxxxxxxxxxxxxxxxxxxxx
attr SN55ZS49CE alias Spülmaschine
attr SN55ZS49CE babbleName Spülmaschine
attr SN55ZS49CE debug 1
attr SN55ZS49CE devStateIcon 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
attr SN55ZS49CE group Waschen
attr SN55ZS49CE room Kontrollraum :-*
attr SN55ZS49CE stateFormat {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:""))}
attr SN55ZS49CE updateTimer 15

Das Attribut babbleName bezieht sich auf meine Sprach-KI mit dem Babble-Modul und einem RiveScript-ChatBot. Meine Frau tippt also auf einen Button und sagt: "Lass die Spülmaschine über Nacht laufen". Die Antwort ist "OK, ich lasse die Spülmaschine laufen bis um 6 Uhr", und natürlich erfolgt das dann auch. Oder "Lass die Spülmaschine jetzt laufen". Oder weitere Varianten.

LG

pah


Prof. Dr. Peter Henning

#94
Ups. Katastrophe: Ich bekomme vom BSH-Server neuerdings eine Fehlermeldung
Zitat2024.02.18 15:49:44 1: [HomeConnect_HandleError] SN55ZS49CE: Error "Option BSH.Common.Option.StartInRelative is not selectable"

Ich habe das jetzt im Modul geändert, die Startverzögerung wird nicht unmittelbar, sondern direkt beim Startbefehl übermittelt.

Tut wieder.


LG

pah

sky64

Vielen Dank für die Korrektur und für das DoIf.

Hier habe ich aber noch ein paar Fragen.
Das ist der Inhalt von "fhem90Cmd"?

Das "Device.warn" ist vermutlich eine Device für Mitteilungen?
Eine Auswahl des Waschprogramms gibt es nicht.
(Das DoIf nimmt immer Eco50, aber das kann man ja ändern und das aktuelle Programm auslesen bzw. das set weglassen.)

Wie könnte man das Waschprogramm und die Optionen auswählbar machen?
Würde ja im eigentlichen Geschirrspüler-Device reichen.

Alternativ im Dummy, sinnvollerweise müsste man die internen Variablen "options" und "programms" auslesen können.
Da weiß ich aber nicht wie das geht.
Auch wofür man das optlist mit seiner HTML-Formatierung gebrauchen kann.

Gruß Ron
FHEM auf Ubuntu-VM (VMware), Heizung FHEM auf Raspi
Module: Volkszähler, ESPEASY, RFXtrx433, LaCrosseGateway, jeeLink, EMT7110, IRBlaster, LuftdatenInfo, MQTT, ESPDuino, Shelly, Abfallanzeige, (OilFox), Weatherman,  KeyValueProtocol
Modbus für Fronius Gen24-PV incl. ForeCast mit DWD und SolCast

Prof. Dr. Peter Henning

ZitatDas ist der Inhalt von "fhem90Cmd"?
Ich habe mehrere FHEM-Server, die über FHEM2FHEM miteinander gekoppelt sind. An dem xx.xx.xx.90 hängt die Low-Level-Hardware, also z.B. HomeMatic, Zigbee etc., die FHEM-Schleife muss also möglicht schnell und ohne Verzögerungen abgearbeitet werden. Dieser Befehl führt einfach ein FHEM-Kommando auf dem anderen Server aus - in diesem Fall setzt er eine Warnungsmeldung.
ZitatDas "Device.warn" ist vermutlich eine Device für Mitteilungen?
Ja, in etwa. Siehe oben.
ZitatEine Auswahl des Waschprogramms gibt es nicht.

Das liegt daran, dass wir hauptsächlich dieses Programm nutzen. Und bei einem Sprachbefehl will meine Frau nicht erst mit der KI diskutieren, welches Programm gestartet werden soll.
ZitatWie könnte man das Waschprogramm und die Optionen auswählbar machen?
Würde ja im eigentlichen Geschirrspüler-Device reichen.
Das geht doch mit set SelectedProgram xxx, danach erst kann man die Options setzen (z.B. set BrillianceDry 1). Diese Reihenfolge ist leider von BSH so vorgesehen... ::)

ZitatAlternativ im Dummy, sinnvollerweise müsste man die internen Variablen "options" und "programms" auslesen können.
{InternalVal('SN55ZS49CE','programs','')}

ZitatAuch wofür man das optlist mit seiner HTML-Formatierung gebrauchen kann.
Noch gar nicht. Das ist experimentell, weil ich die Bedienung so machen möchte, dass man dies einfach per Checkbox in der Weboberfläche machen kann. Dafür braucht es eine ganze Menge JavaScript in einer Datei homeconnect.js. Bei mir läuft das schon...

LG

pah