Ergonomische Version von 48_HomeConnect.pm

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

Vorheriges Thema - Nächstes Thema

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