FHEM - Hausautomations-Systeme > Home Connect

Home Connect: Kaffeeauswahl

(1/3) > >>

Schlimbo:
Hallo,
Besitze einen Siemens Kaffeevollautomaten EQ.9 Connect und würde die Kaffeeauswahl gerne über FHEM triggern.
Hierfür gibt es im HomeConnect Modul verschiedenen set Befehle z.B.

--- Code: ---set <device> startProgram Espresso
--- Ende Code ---

Laut API Beschreibung gibt es hierzu noch die optionalen Parameter "BeanAmount" und "FillQuantity".
Auszug aus
https://developer.home-connect.com/?q=docs/coffee-maker/supported_programs_and_options

--- Code: ---{
    "data":{
        "key":"ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso",
        "options":[
            {
                "key":"ConsumerProducts.CoffeeMaker.Option.BeanAmount",
                "value":"ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild"
            },
            {
                "key":"ConsumerProducts.CoffeeMaker.Option.FillQuantity",
                "value":45,
                "unit":"ml"
            }
        ]
    }
}
--- Ende Code ---

Ist es irgendwie möglich diese Parameter beim "startProgram" Befehl mit anzuhängen?

Gruß Schlimbo

Schlimbo:
Gut fände ich es auch wenn es eine Möglichkeit gäbe raw Daten zu senden und dies auch unabhängig von irgendwelchen Abhängigkeiten.

Das Problem was ich nämlich momentan habe, ist dass die HomeConnect API Events so verzögert kommen, das hierdurch das Modul fast unbenutzbar wird.
Wird die Kaffeemaschine eingeschaltet, macht sie Geräte bedingt erst mal einen Spülgang, dieser dauert nur ein paar Sekunden,
in FHEM wird beim Start der Spülung "ActiveProgram = CleaningModes.ApplianceOnRinsing" gesetzt und "ProgramProgress" fängt an von 0% hoch zu zählen, dies dauert aber ca. 5 Minuten. (Der Spülgang an der Maschine ist nach ca. 30s fertig!)

Hier läuft mit der API etwa gewaltig schief, habe nach dem lesen hier im Forum aber auch keine große Hoffnung, dass sich hier seitens Home Connect auf die schnelle etwas ändern wird :-\.

--- Code: ---2018.03.01 17:38:31.852 4: BSH.Common.Root.ActiveProgram = ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing
2018.03.01 17:38:31.852 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 17:38:51.971 4: BSH.Common.Option.ProgramProgress = 5 %
2018.03.01 17:39:02.039 4: BSH.Common.Option.ProgramProgress = 11 %
2018.03.01 17:39:12.116 4: BSH.Common.Option.ProgramProgress = 13 %
2018.03.01 17:39:22.182 4: BSH.Common.Option.ProgramProgress = 16 %
2018.03.01 17:39:32.498 4: BSH.Common.Option.ProgramProgress = 18 %
2018.03.01 17:39:42.569 4: BSH.Common.Option.ProgramProgress = 21 %
2018.03.01 17:39:52.635 4: BSH.Common.Option.ProgramProgress = 23 %
2018.03.01 17:40:02.712 4: BSH.Common.Option.ProgramProgress = 26 %
2018.03.01 17:40:12.784 4: BSH.Common.Option.ProgramProgress = 28 %
2018.03.01 17:40:22.849 4: BSH.Common.Option.ProgramProgress = 31 %
2018.03.01 17:40:32.911 4: BSH.Common.Option.ProgramProgress = 33 %
2018.03.01 17:40:42.977 4: BSH.Common.Option.ProgramProgress = 36 %
2018.03.01 17:40:53.058 4: BSH.Common.Option.ProgramProgress = 38 %
2018.03.01 17:41:03.121 4: BSH.Common.Option.ProgramProgress = 41 %
2018.03.01 17:41:13.177 4: BSH.Common.Option.ProgramProgress = 43 %
2018.03.01 17:41:23.227 4: BSH.Common.Option.ProgramProgress = 46 %
2018.03.01 17:41:33.515 4: BSH.Common.Option.ProgramProgress = 48 %
2018.03.01 17:41:43.576 4: BSH.Common.Option.ProgramProgress = 51 %
2018.03.01 17:41:53.653 4: BSH.Common.Option.ProgramProgress = 53 %
2018.03.01 17:42:03.716 4: BSH.Common.Option.ProgramProgress = 55 %
2018.03.01 17:42:13.795 4: BSH.Common.Option.ProgramProgress = 57 %
2018.03.01 17:42:23.858 4: BSH.Common.Option.ProgramProgress = 60 %
2018.03.01 17:42:33.932 4: BSH.Common.Option.ProgramProgress = 62 %
2018.03.01 17:42:43.990 4: BSH.Common.Option.ProgramProgress = 64 %
2018.03.01 17:42:54.049 4: BSH.Common.Option.ProgramProgress = 67 %
2018.03.01 17:43:04.321 4: BSH.Common.Option.ProgramProgress = 95 %
2018.03.01 17:43:34.497 4: BSH.Common.Root.ActiveProgram = -
--- Ende Code ---

Möchte ich nach dem Einschalten direkt ein Getränk über "startProgram.." beziehen, muss ich also erst 5 Minuten Warten!
Ein "set <name> startProgram espresso" gibt mir nämlich während dieser Zeit nur "A program is already running" zurück.

Als Workaround würde ich deshalb einfach gerne Raw Daten schicken wollen, in der Hoffnung, dass die API das an die Maschine weiter gibt und mein Espresso gebrüht wird.
z.B.

--- Code: ---set <name> raw /programs/active{"data":{"key":"ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso","options":[{"key":"ConsumerProducts.CoffeeMaker.Option.BeanAmount","value":"ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.Mild"},{"key":"ConsumerProducts.CoffeeMaker.Option.FillQuantity","value":45,"unit":"ml"}]}}
--- Ende Code ---
Dies würde auch ein weiteres Problem Lösen:
Manchmal wird mir nämlich auch überhaupt keine "startProgram" Auswahl angezeigt, manchmal auch nur eine Auswahl: "ApplianceOnRinsing" , ein "set <name> startProgram espresso" gibt mir dann den Fehler:

--- Code: ---Unknown program Espresso, choose one of ApplianceOnRinsing
--- Ende Code ---
Warum mir manchmal kein, oder nur "ApplianceOnRinsing" als Programm Auswahl angezeigt wird ist mir auch noch nicht so klar, beim versuch dieses zu starten kommt:

--- Code: ---Unsupported operation: ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing
--- Ende Code ---

Gruß Schlimbo

Schlimbo:
Und hier noch ein Beispiel, ein Ristretto mit 25ml benötigt laut API 3 Minuten ::)

--- Code: ---2018.03.01 20:44:46.696 4: BSH.Common.Root.ActiveProgram = ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto
2018.03.01 20:44:46.697 4: ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature = ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C
2018.03.01 20:44:46.697 4: ConsumerProducts.CoffeeMaker.Option.BeanAmount = ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
2018.03.01 20:44:46.698 4: ConsumerProducts.CoffeeMaker.Option.FillQuantity = 25 ml
2018.03.01 20:44:46.698 4: BSH.Common.Option.ProgramProgress = 0 %
.
.
.
2018.03.01 20:47:38.015 4: BSH.Common.Root.SelectedProgram = ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto
2018.03.01 20:47:38.016 4: ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature = ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C
2018.03.01 20:47:38.016 4: ConsumerProducts.CoffeeMaker.Option.BeanAmount = ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
2018.03.01 20:47:38.017 4: ConsumerProducts.CoffeeMaker.Option.FillQuantity = 25 ml
2018.03.01 20:47:38.018 4: BSH.Common.Option.ProgramProgress = 100 %
--- Ende Code ---
Mir kommt es vor, als werden die Events in irgendeinen queue gesammelt und dann nur mit Verzögerung ausgegeben, lasse ich an der Maschine mehrer Kaffee Getränke nach einander raus, sammeln sich so viele Events an, dass eine halbe Stunde später in FHEM immer noch Events ankommen.

Pf@nne:
Das ist bei meinen Geräten (GS, Ofen) auch immer so, wenn ein Programm läuft.
Wenn kein Programm läuft geht es ein wenig schneller, z.B. Tür AUF/ZU.
Aber auch das hat ca. 5-10Sekunden Verzögerung.

Schlimbo:

--- Zitat von: Schlimbo am 01 März 2018, 20:39:37 ---Als Workaround würde ich deshalb einfach gerne Raw Daten schicken wollen, in der Hoffnung, dass die API das an die Maschine weiter gibt und mein Espresso gebrüht wird.

--- Ende Zitat ---

Gerade noch mal getestet:
Habe in 48_HomeConnect.pm die Zeile 115 auskommentiert

--- Code: --- #   return "A program is already running" if ($pgmRunning);
--- Ende Code ---
jetzt kann ich direkt nach dem Einschalten eine Kaffee beziehen, auch wenn die API noch der Meinung ist, dass der Spülgang noch läuft.

Ablauf
21:03:38 über FHEM die Maschine eingeschaltet
21:04:39 über FHEM Espresso bezogen (wurde auch sofort von der Maschine ausgegeben)
21:09:46 API Meldet Spülgang nach Power-On fertig
21:10:16 API Meldet start Espresso
21:14:48 API Meldet Espresso fertig

Hier der Log in abgespeckter Form dazu:

--- Code: ---2018.03.01 21:03:38.333 3: set command: BSH.Common.Setting.PowerState
2018.03.01 21:03:38.334 4: TI123xxx PUT request: https://api.home-connect.com/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/settings/BSH.Common.Setting.PowerState with data: {"data":{"key":"BSH.Common.Setting.PowerState","value":"BSH.Common.EnumType.PowerState.On"}}
2018.03.01 21:03:53.270 5: TI123xxx event channel data: {"items":[{"timestamp":1519934620,"handling":"none","uri":"/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing","level":"hint"},{"timestamp":1519934620,"handling":"none","uri":"/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/programs/active/BSH.Common.Option.ProgramProgress","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":0,"level":"hint"}]}
2018.03.01 21:03:53.272 4: BSH.Common.Root.ActiveProgram = ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing
2018.03.01 21:03:53.273 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:03:53.273 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:04:03.356 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:04:23.471 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:04:39.845 3: set command: startProgram
2018.03.01 21:04:39.846 4: TI123xxx PUT request: https://api.home-connect.com/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/programs/active with data: {"data":{"key":"ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso","options":[]}}
2018.03.01 21:04:43.680 4: BSH.Common.Root.ActiveProgram = ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing
2018.03.01 21:04:43.681 4: BSH.Common.Option.ProgramProgress = 5 %
2018.03.01 21:04:53.969 4: BSH.Common.Option.ProgramProgress = 12 %
2018.03.01 21:05:04.066 4: BSH.Common.Option.ProgramProgress = 14 %
2018.03.01 21:05:14.158 4: BSH.Common.Option.ProgramProgress = 17 %
2018.03.01 21:05:24.220 4: BSH.Common.Option.ProgramProgress = 19 %
2018.03.01 21:05:34.280 4: BSH.Common.Option.ProgramProgress = 21 %
2018.03.01 21:05:44.343 4: BSH.Common.Option.ProgramProgress = 23 %
2018.03.01 21:05:54.418 4: BSH.Common.Option.ProgramProgress = 26 %
2018.03.01 21:06:04.523 4: BSH.Common.Option.ProgramProgress = 28 %
2018.03.01 21:06:14.582 4: BSH.Common.Option.ProgramProgress = 31 %
2018.03.01 21:06:24.697 4: BSH.Common.Option.ProgramProgress = 33 %
2018.03.01 21:06:34.757 4: BSH.Common.Option.ProgramProgress = 36 %
2018.03.01 21:06:44.820 4: BSH.Common.Option.ProgramProgress = 38 %
2018.03.01 21:06:54.908 4: BSH.Common.Option.ProgramProgress = 41 %
2018.03.01 21:07:04.982 4: BSH.Common.Option.ProgramProgress = 43 %
2018.03.01 21:07:15.046 4: BSH.Common.Option.ProgramProgress = 46 %
2018.03.01 21:07:25.108 4: BSH.Common.Option.ProgramProgress = 48 %
2018.03.01 21:07:35.172 4: BSH.Common.Option.ProgramProgress = 51 %
2018.03.01 21:07:45.243 4: BSH.Common.Option.ProgramProgress = 53 %
2018.03.01 21:07:55.306 4: BSH.Common.Option.ProgramProgress = 56 %
2018.03.01 21:08:05.372 4: BSH.Common.Option.ProgramProgress = 58 %
2018.03.01 21:08:15.439 4: BSH.Common.Option.ProgramProgress = 60 %
2018.03.01 21:08:25.522 4: BSH.Common.Option.ProgramProgress = 63 %
2018.03.01 21:08:35.589 4: BSH.Common.Option.ProgramProgress = 65 %
2018.03.01 21:09:05.769 4: BSH.Common.Option.ProgramProgress = 67 %
2018.03.01 21:09:15.826 4: BSH.Common.Root.ActiveProgram = ConsumerProducts.CoffeeMaker.Program.CleaningModes.ApplianceOnRinsing
2018.03.01 21:09:15.827 4: BSH.Common.Option.ProgramProgress = 95 %
2018.03.01 21:09:46.045 5: TI123xxx event channel data: {"items":[{"timestamp":1519934667,"handling":"none","uri":"/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/programs/active","key":"BSH.Common.Root.ActiveProgram","value":null,"level":"hint"}]}
2018.03.01 21:09:46.046 4: BSH.Common.Root.ActiveProgram = -
2018.03.01 21:09:56.100 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:10:06.161 5: TI123xxx event channel received 133
event:NOTIFY
data:{"items":[{"timestamp":1519934680,"handling":"none","uri":"/api/homeappliances/SIEMENS-TI123xxx-xxxxxxxxxxxx/programs/selected","key":"BSH.Common.Root.SelectedProgram","value":"ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso","level":"hint"}]}
id:SIEMENS-TI123xxx-xxxxxxxxxxxx
2018.03.01 21:10:06.164 4: BSH.Common.Root.SelectedProgram = ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso
2018.03.01 21:10:16.239 4: BSH.Common.Root.SelectedProgram = ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso
2018.03.01 21:10:16.240 4: ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature = ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C
2018.03.01 21:10:16.241 4: ConsumerProducts.CoffeeMaker.Option.BeanAmount = ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
2018.03.01 21:10:16.241 4: ConsumerProducts.CoffeeMaker.Option.FillQuantity = 40 ml
2018.03.01 21:10:16.242 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:10:26.311 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:10:46.490 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:11:16.656 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:11:36.772 4: BSH.Common.Option.ProgramProgress = 7 %
2018.03.01 21:11:46.842 4: BSH.Common.Option.ProgramProgress = 14 %
2018.03.01 21:11:56.922 4: BSH.Common.Option.ProgramProgress = 20 %
2018.03.01 21:12:06.989 4: BSH.Common.Option.ProgramProgress = 26 %
2018.03.01 21:12:17.085 4: BSH.Common.Option.ProgramProgress = 31 %
2018.03.01 21:12:27.176 4: BSH.Common.Option.ProgramProgress = 35 %
2018.03.01 21:12:37.251 4: BSH.Common.Option.ProgramProgress = 39 %
2018.03.01 21:12:47.316 4: BSH.Common.Option.ProgramProgress = 41 %
2018.03.01 21:12:57.391 4: BSH.Common.Option.ProgramProgress = 45 %
2018.03.01 21:13:07.468 4: BSH.Common.Option.ProgramProgress = 50 %
2018.03.01 21:13:17.555 4: BSH.Common.Option.ProgramProgress = 55 %
2018.03.01 21:13:27.631 4: BSH.Common.Option.ProgramProgress = 60 %
2018.03.01 21:13:37.718 4: BSH.Common.Option.ProgramProgress = 66 %
2018.03.01 21:13:47.793 4: BSH.Common.Option.ProgramProgress = 72 %
2018.03.01 21:13:57.875 4: BSH.Common.Option.ProgramProgress = 79 %
2018.03.01 21:14:07.951 4: BSH.Common.Option.ProgramProgress = 85 %
2018.03.01 21:14:18.033 4: BSH.Common.Option.ProgramProgress = 90 %
2018.03.01 21:14:28.129 4: BSH.Common.Option.ProgramProgress = 100 %
2018.03.01 21:14:48.251 4: BSH.Common.Root.SelectedProgram = ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso
2018.03.01 21:14:48.252 4: ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature = ConsumerProducts.CoffeeMaker.EnumType.CoffeeTemperature.90C
2018.03.01 21:14:48.252 4: ConsumerProducts.CoffeeMaker.Option.BeanAmount = ConsumerProducts.CoffeeMaker.EnumType.BeanAmount.VeryStrong
2018.03.01 21:14:48.253 4: ConsumerProducts.CoffeeMaker.Option.FillQuantity = 40 ml
2018.03.01 21:14:48.253 4: BSH.Common.Option.ProgramProgress = 100 %
2018.03.01 21:15:18.463 4: BSH.Common.Option.ProgramProgress = 0 %
2018.03.01 21:15:28.531 4: BSH.Common.Option.ProgramProgress = 0 %
--- Ende Code ---

Wie man hier sieht sind die API Events absolut unbrauchbar.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln