Ich habe übrigens auch noch einen bislang unveröffentlichten Home Connect LBS bei mir am Start, welcher generisch funktioniert, d.h. grundsätzlich alle Gerätetypen unterstützt und für jedes Gerät einen Ausgang hat, an dem ein JSON ausgegeben wird, welches den aktuelles Status des Geräts repräsentiert inkl. der Daten des Event Streams, den Homeconnect für jedes Gerät bereitstellt. Über 2 Eingänge, können auch Settings und Programme geändert/gestartet werden. Das ganze läuft bei mir seit ca.1,5 Jahren bei mir ganz stabil, allerdings nur mit Waschmaschine und Kaffeemaschine. Hatte das aufgrund des anderen HomeConnect LBS nicht veröffentlicht, aber falls jetzt die Diskussion neu aufgerollt wird, kann ich hier gerne etwas beitragen. Vielleicht kann man ja auch aus den 3 Ansätzen EINE Lösung machen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Home-Connect | 2nd
Einklappen
X
-
jonofe wir sollten uns mal unterhalten.... Ich hab da einen ähnlichen Ansatz wie Dariusz, also einen connect LBS mit SSE Ausgang. Dann für jeden Gerätetyp einen LBS der die SSE vom "Haupt LBS" empfängt. Senden der Werte macht jeder LBS für sich, auch die erste initialisierung aller Werte macht jeder Geräte LBS einzeln. Kann ja doch mal sein, das einer 2 Saugroboter hat
Unbenannt.pngAngehängte DateienZuletzt geändert von vento66; 27.12.2021, 22:38.
Kommentar
-
Bei meiner Lösung ist die Anzahl und Art der Geräte egal. Der LBS macht die Kommunikation (API + SSE) für alle Geräte. Und gibt auch alle Daten in je ein JSON pro Gerät aus (hier für max 10 Geräte):
edomi.png
A7 ist die Kaffeemaschine
A8 ist die Waschmaschine
und ein Beispiel-JSON der Kaffeemaschine sieht so aus:
Code:{ "name": "Kaffeevollautomat", "brand": "Siemens", "vib": "TI9575X1DE", "connected": true, "type": "CoffeeMaker", "enumber": "TI9575X1DE/10", "haId": "SIEMENS-TI9575X1DE-68A40E2B01A1", "states": { "BSH.Common.Status.OperationState": { "name": "Betriebsstatus", "value": "BSH.Common.EnumType.OperationState.Inactive", "displayvalue": "Inaktiv" }, "BSH.Common.Status.RemoteControlStartAllowed": { "name": "Fernstart", "value": true }, "BSH.Common.Status.LocalControlActive": { "name": "Lokale Bedienung aktiv", "value": false }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erRistrettoEspresso": { "name": "Anzahl Ristretto & Espresso", "value": 261 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erCoffee": { "name": "Anzahl Kaffeegetränke", "value": 11 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erCoffeeAndMilk": { "name": "Anzahl Kaffee-Milch-Spezialitäten", "value": 2656 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erFrothyMilk": { "name": "Anzahl Milchschaum", "value": 79 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erHotMilk": { "name": "Anzahl warme Milch", "value": 10 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erHotWater": { "name": "Menge Heißwasser", "value": 13993 }, "ConsumerProducts.CoffeeMaker.Status.BeverageCount erPowderCoffee": { "name": "Anzahl Getränke mit Kaffeepulver", "value": 1 }, "BSH.Common.Status.DoorState": { "name": "Tür", "value": "BSH.Common.EnumType.DoorState.Closed", "displayvalue": "Geschlossen" } }, "settings": { "BSH.Common.Setting.ChildLock": { "name": "Kindersicherung", "value": false }, "BSH.Common.Setting.PowerState": { "name": "Energiezustand", "value": "BSH.Common.EnumType.PowerState.Standby", "displayvalue": "Standby" } }, "availablePrograms": { "ConsumerProducts.CoffeeMaker.Program.Beverage.Ris tretto": { "name": "Ristretto" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Esp ressoDoppio": { "name": "Espresso doppio" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Esp resso": { "name": "Espresso" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Esp ressoMacchiato": { "name": "Espresso Macchiato" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Cof fee": { "name": "Caffè Crema" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Cap puccino": { "name": "Cappuccino" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Lat teMacchiato": { "name": "Latte Macchiato" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Caf feLatte": { "name": "Milchkaffee" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.Mil kFroth": { "name": "Milchschaum" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.War mMilk": { "name": "Warme Milch" }, "ConsumerProducts.CoffeeMaker.Program.Beverage.XLC offee": { "name": "Kaffee XL" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. CafeCortado": { "name": "Café cortado" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. FlatWhite": { "name": "Flat White" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Americano": { "name": "Americano" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. KleinerBrauner": { "name": "Kleiner Brauner" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. GrosserBrauner": { "name": "Großer Brauner" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Verlaengerter": { "name": "Verlängerter" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. VerlaengerterBraun": { "name": "Verlängerter braun" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. WienerMelange": { "name": "Wiener Melange" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Cortado": { "name": "Cortado" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. CafeConLeche": { "name": "Café con leche" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. CafeAuLait": { "name": "Café au lait" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Kaapi": { "name": "Kaapi" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. KoffieVerkeerd": { "name": "Koffie verkeerd" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Galao": { "name": "Galão" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. Garoto": { "name": "Garoto" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. RedEye": { "name": "Red Eye" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. BlackEye": { "name": "Black Eye" }, "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld. DeadEye": { "name": "Dead Eye" } }, "lastError": { "key": "SDK.Error.UnsupportedOperation", "error": "Operation not supported for HomeAppliance type CoffeeMaker", "timestamp": "27.12.2021 - 23:10:28" } }
Kommentar
-
Und wie initialisierst du die Geräte? Sind ja je nach Gerätetyp bis zu 6 Anfragen x14 Gerätetypen… Keine Ahnung, aber Du bist da mehr der json Fan, ich kann dem Befehle senden mittels Json im Moment nicht viel abgewinnen, da brauchts ja doch wieder einen LBS, der das Gerätespezifisch zusammenbaut. Bei mir greift jeder LBS, auf den Token zu, und kümmert sich selbstständig asynchron zum SSE und anderen parallel laufenden LBS. Find das irgendwie sympathischer.Zuletzt geändert von vento66; 27.12.2021, 23:41.
Kommentar
-
Zitat von vento66 Beitrag anzeigenUnd wie initialisierst du die Geräte? Sind ja je nach Gerätetyp bis zu 6 Anfragen x16 Gerätetypen
Zitat von vento66 Beitrag anzeigenda brauchts ja doch wieder einen LBS
Zitat von vento66 Beitrag anzeigenkann dem Befehle senden mittels Json
Ich denke insgesamt sind das zwei komplett unterschiedliche Konzepte.
Kommentar
-
Zitat von vento66 Beitrag anzeigenAber wir können das eigentlich auch ganz einfach machen: Lad den LBS hoch, und ich spar mir den restlichen Aufwand.
Zitat von vento66 Beitrag anzeigenIst ja nicht so, das ich nicht noch andere Baustellen hätte
Aber ich denke die Diskussion macht schon Sinn ... vielleicht gibt es ja noch Feedback von den potentiellen Nutzern.
Kommentar
-
Ich habe hier WaMa und Geschirrspüler mit HomeConnect im Einsatz. Wenn ich es mir aussuchen könnte fände ich einen separaten LBS pro Gerät am besten - käme aber auch mit einem generischen LBS und diversen Status-Jsons zurecht. Für mich wäre ohnehin nur der Status interessant. Das funktioniert zwar aktuell auch mit der HomeConnect-App recht zuverlässig, aber schöner wäre es schon alles via Telegram selbst zu implementieren. Würde der LBS dann z.B. beim Fertigstellen des WaMa-Programms getriggert oder müsste der Status regelmäßig gepullt werden?
Danke euch für eure Engagement!Gruß,
Matthias
Kommentar
-
Also ich für meinen Teil werd da jetzt mal nicht weiter machen, bis sich hier eine Richtung aufzeigt.....
Ich finds nur interessant, wo jetzt auf einmal die ganzen LBS aus der Versenkung auftauchen.... Vielleicht sollte ich auch mehr LBS für mich behalten!
Daran das es schon einen fast funktionierenden LBS gab, kann es eigentlich nicht liegen, für andere Funktionen werden ohne Skrupel gefühlte 100 LBS veröffentlicht
Man hätte ja auch mal mit dariusz in Kontakt treten können... Ich werde auf alle Fälle aus diesem LBS nichts übernehmen, da er Dariusz sein Werk ist, auch wenn Du da drinn rumgefummelt hast.
Ausserdem, komm ich mit 600 zeilen und ohne diese extra Klasse aus.Zuletzt geändert von vento66; 28.12.2021, 11:41.
- Likes 1
Kommentar
-
Übrigens hatte ich gerade ein Telefonat mit Dariusz. Er ist auch an einer funktionierenden Version eines LBS interessiert. Leider ist er gerade etwas verhindert, um sich selber darum zu kümmern. Was habe ich dabei festgestellt? Fernzugriff auf andere Geräte funktioniert nicht so wie ich es mir gedacht habe. Wenn der andere User eine Applikation einrichtet, und mich als Testuser einträgt, sehe ich genau "Trommelwirbel" meine Geräte. Hat es schon mal jemand geschaft auf die Simulatoren in seinem Account zuzugreifen?
Kommentar
-
vento66
Ich hab mich vielleicht missverständlich ausgedrückt, aber es ging mir nur um den Status-LBS.
Egal, ich find deine Reaktion nicht nett, auch wenn ich nachvollziehen kann wieso und das durchaus respektiere.
Bist du bitte so nett und löscht die VSE 1006 und VSE 1009 aus dem Download Portal, da hab ich die Idee und das Grundgerüst von jemand anderem verwendet.
Danke
Kommentar
Kommentar