NEWS
Test Adapter homeconnect (BSH Home-Connect) v0.0.x
-
@antoun22 Hi, gibts bei meiner Bosch ebenfalls nicht unter available.
Was willst Du denn machen/ verscripten/ steuern.Vielleicht findet das Schwarmwissen ja eine Alternatividee.
-
@tombox u. oberfragger danke für eure schnellen Antworten!
ja zum einen wollt ich’s via VIS einbinden und noch ein kleines script (ich weis ist ne Kaffeemaschine) aber am Morgen hätte ich gerne einen Tee - wäre toll wenn der zum aufstehen fertig ist,….aber wenn ich so überlege vielleicht doch keine so gute Idee denn dann wäre ja auch das Spülwasser mit dabei
Danke Euch!!
Bernd -
@antoun22 Das mit dem Spülwasser ist genau das Problem!
Ich habe eine Morgenroutine, die ich aus dem Bad starte (klar, eigentlich würde das auch zeitgesteuert in Kombination mit meinen Schlafsensor klappen, aber manchmal bin ich etwas länger morgens im Bad ;)).
Jedenfalls sage ich der Alexa im Bad - "Starte Szene Morgenprogramm", dann geht die Kaffeemaschine und das Radio mit dem richtigen Sender und Lautstärke im Wohnzimmer an. Sobald KNX im Wohnzimmer liegt natürlich auch die Beleuchtung.
Was ich sagen wollte- nichts finde ich unnötiger als der Kaffeemaschine beim spülen zuzusehen.
Das weitere Problem- beim/ vor dem Spülen sollst Du sicher auch manchmal die Tropfschale leeren oder Wasser nachfüllen. Sonst geht das Programm sowieso nicht weiter.
Achso- falls Du Alexa zu Hause hast... lass Dir die "Events" und die Fertigstellung der Kaffees doch von Alexa ansagen. Macht be Gästen immer ein bisschen Eindruck
-
@oberfragger danke für den Tipp!
-
@antoun22 Anbei der Blockly_Code für die Ansagen welcher Kaffe fertig ist und falls der Event "Wasser leer" oder "Tropfschale leeren" getriggert wird.
"warmMilk" und "hotWater" musst Du aber noch via if/then abfangen, da es bei Dir ja hotWater gibt...Achja- eigenen eigenen DP für zuletzt gewählten Kaffe muss man noch per Hand erstellen.
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="comment" id="LapTK?,zWE6pz2iV@=Bd" x="112" y="-112"> <field name="COMMENT">Zuletzt gewählten Kaffee in eigenen DP einsetzen</field> <next> <block type="on" id="P[p|KIv3DklZ*7m`J=N|"> <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="~6{*Ca*7l4%hOUmLmL{c"> <value name="IF0"> <block type="logic_compare" id="l7)TWOm#vM5l/2R}t#2X"> <field name="OP">NEQ</field> <value name="A"> <block type="on_source" id="v!zVQIk]LtLD!f6}(RI5"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_null" id="_tcb=-(;tZt(9GRfBEol"></block> </value> </block> </value> <statement name="DO0"> <block type="update" id="-$7Dw9!Tr_n]x24=+ud]"> <mutation delay_input="false"></mutation> <field name="OID">0_userdata.0.Kaffemaschine.last_coffee</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="on_source" id="R:@y-I4Qe1h({z;lMu[%"> <field name="ATTR">state.val</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="Pb~:L+1hh!xT[39H,0HM"> <field name="COMMENT">Alexa Ansage wenn der Kaffee fertig ist</field> <next> <block type="on" id="8715eV~RN{[[atjqp@A8"> <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.active.options.BSH_Common_Option_ProgramProgress</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="i$4lS6+x-a-AN;|Wmh]X"> <value name="IF0"> <block type="logic_compare" id="v9co4T,*.REvm,*8J2i#"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="W?RA#KxD4^Kb9*?T7_h?"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="B+(*%MY~j/GNKQIdmFM9"> <field name="TEXT">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Je-575z]PxkP_zFl(Z!U"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U509914419KQ.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="@~B,i;x$I)8%Je^k*)DR"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="Q5Xjmj~g%]*WvRW4EvTX"> <field name="TEXT">Hallo, Dein </field> </block> </value> <value name="ADD1"> <block type="text_getSubstring" id="X|YKPo0/!GBgZ0^5z/2," inline="false"> <mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"> <block type="get_value" id="p5%H5#w[it6WS9iE|tj["> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Kaffemaschine.last_coffee</field> </block> </value> <value name="AT1"> <block type="math_arithmetic" id="bF186|FznYoaFBx}io9o" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="A`TLz5Lbfgw;=mJOp}(^"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="j1|aA3l$S=z^m.Ug8?B=" inline="false"> <field name="END">LAST</field> <value name="VALUE"> <block type="get_value" id="4}HZ*/+Ss/,Q?CV4P7Kh"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Kaffemaschine.last_coffee</field> </block> </value> <value name="FIND"> <shadow type="text" id="P5s;aJDPT*F;y(,VtRBs"> <field name="TEXT">abc</field> </shadow> <block type="text" id="Mir}i#n{YT[K@4t#)Q?v"> <field name="TEXT">.</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="-9+`M14/p._`PvUM3`yk"> <field name="NUM">1</field> </shadow> <block type="math_number" id="I%mK$b3fzLFhu88Z[g?_"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="-DS/R`ePW!paNc:WF^eT"> <field name="TEXT"> ist fertig</field> </block> </value> </block> </value> <next> <block type="debug" id="E;l%;geOn!|rdiT.sc5a"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Xs_M92/GAeD6l2|_Y~dT"> <field name="TEXT">BSH_Common_Option_ProgramProgress_auf_100%</field> </shadow> <block type="text_join" id="Pl2tbDK3unWM,c-2~(po"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="1]-mr1)bwgU!2iJW7Gr-"> <field name="TEXT">Hallo, Dein </field> </block> </value> <value name="ADD1"> <block type="text_getSubstring" id="7_gd/nDVsY5t7X^aC(dH" inline="false"> <mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"> <block type="get_value" id="u#1/@sb^88T:atE:rk+*"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Kaffemaschine.last_coffee</field> </block> </value> <value name="AT1"> <block type="math_arithmetic" id="L04we+5X]U^5?@Ua.Jr!" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="A`TLz5Lbfgw;=mJOp}(^"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="7Hg3~{#zFgX^4e]iEu[/" inline="false"> <field name="END">LAST</field> <value name="VALUE"> <block type="get_value" id="]}8EkT?*B-y[0%o4SU5_"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Kaffemaschine.last_coffee</field> </block> </value> <value name="FIND"> <shadow type="text" id="P5s;aJDPT*F;y(,VtRBs"> <field name="TEXT">abc</field> </shadow> <block type="text" id="pe(!(TuP#HoKY39*~{G+"> <field name="TEXT">.</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="-9+`M14/p._`PvUM3`yk"> <field name="NUM">1</field> </shadow> <block type="math_number" id="cXVm+lfkz-m:|X#O5tQ2"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="text" id="0WPrr.Q,}Mn2P{0-WrTW"> <field name="TEXT"> ist fertig</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="bdo3D}FyKm7rm:j@4jn:"> <field name="COMMENT">Alexa Ansage wenn Tropfschale voll ist</field> <next> <block type="on" id="%Qry3R,F-w~eDWIZ;v~Q"> <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.events.ConsumerProducts_CoffeeMaker_Event_DripTrayFull</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="s+uRRm_,=H?8|j|GSLrD"> <value name="IF0"> <block type="logic_compare" id="({v/UANZbItzMGQVz;PO"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="pecp$)zA!mFQ,:p2NR($"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="9)#UKeJGU=0BXO9mzOft"> <field name="TEXT">BSH.Common.EnumType.EventPresentState.Present</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=",,H!U35,2=48#DuW,!+$"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U509914419KQ.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="z|J(n/Z1m%yc,kWJUl=J"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="BqB=N.D1{}my3ZRt8o[6"> <field name="TEXT">Bitte Tropfschale leeren.</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="TklKTCg(o7sKGG+Soo5`"> <field name="COMMENT">Alexa Ansage wenn Wasserbehälter leer ist</field> <next> <block type="on" id="j?sr8Kd.S/N@pQN(A1vt"> <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.events.ConsumerProducts_CoffeeMaker_Event_WaterTankEmpty</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="8{?uPOLRWYL.d~nt8AUV"> <value name="IF0"> <block type="logic_compare" id="@tLM~A-j]@aUA@-Wt`C3"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="K4CbR^8njT!H]#RdQdqS"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id=".uE~(4Ui~h(LX?VY}yHN"> <field name="TEXT">BSH.Common.EnumType.EventPresentState.Present</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="y?HpJNT?9z_[/UhEvK-p"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U509914419KQ.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="t/y|E^|@|NJ`QM*vQMY2"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="VINF;n`EDeCMwW6JowOA"> <field name="TEXT">Bitte Wassertank füllen.</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@oberfragger super, Danke Dir!
-
Mal ne Frage zum Funktionsumfang des Adapters.
Aktuell haben wir einen Kaffeevollautomaten, eine Waschmaschine und einen Geschirrspüler, die über Home Connect kommunizieren können.
Beim Kaffeevollautomaten gibt es die Möglichkeit, per IFTTT bestimmte Getränke zubereiten zu lassen. Das funktioniert auch soweit. So habe ich dann diese IFTTT-Befehle mit entsprechenden Webhooks verknüpft, die ich über den iot- und den yahka-Adapter aufrufen kann.
Ich frage mich aber, ob ich wirklich immer den Umweg über IFTTT gehen muss (läuft leider nicht immer zuverlässig), oder ob man das nicht auch direkt mit dem homeconnect-Adapter umsetzen kann? Was per IFTTT geht, sollte doch auch über den Adapter laufen können. Oder hat BSH hier Einschränkungen vorgenommen?
-
@dtp Die API kann auf jeden Fall nicht alle Optionen die die App kann. Aber wenn ich das Bild so sehe müssten die Optionen gehen.
Die Version von github installieren.
Einfach unter programs/selected/programname auswählen und dann das Programm aktiv setzen -
Nun ja, das Problem ist ja, dass man über IFTTT individuelle Einstellungen z.B. hinsichtlich der Milchmenge, der Getränkegröße oder der Kaffeestärke vornehmen kann, die man als Applet ablegt. Es wird also nicht nur einfach ein Programm aufgerufen, sondern es werden zusätzlich noch gewisse Parameter gesetzt, die ich bisher in den Datenpunkten des Adapters nicht finden konnte. Oder geht das mit der aktuellsten Version?
-
@dtp
Hier kannst du die aktuellen Optionen sehen:
https://developer.home-connect.com/docs/coffee-maker/supported_programs_and_options
ConsumerProducts.CoffeeMaker.Option.BeanAmount
ConsumerProducts.CoffeeMaker.Option.FillQuantity
ConsumerProducts.CoffeeMaker.Option.CoffeeTemperatureFür weitere Wünsche einfach eine englische Mail hier hin schreiben, dass du dir die IFTTT Optionen auch in die API wünscht.
https://developer.home-connect.com/support/contact -
Danke. Das sieht ja schon mal recht vielfältig aus. Fehlt - soweit ich das sehe - eigentlich nur die Milchmenge.
EDIT: Hab mir jetzt noch mal die Datenpunkte des homeconnect-Adapters angesehen. Soweit ist alles vorhanden.
Aber wie kombiniere ich jetzt das entsprechende Getränk mit den weiteren Optionen?
Gruß,
Thorsten
-
Hi,
wäre es möglich, die Namensinfo eines Geräts automatisch in die Spalte Name das Adapters eintragen zu lassen? Ich suche mir da jedesmal einen Wolf, bis ich das richtige Gerät gefunden habe.
-
@dtp lösche mal alle Geräte und installiere via github
Dann kannst du gleich testen am besten mit einer Kaffeemaschine ob noch alle select Programm gehe
-
Sieht gut aus.
Die Select-Programme werden auf alle Fälle alle angezeigt. Hab mir aber gerade nen Kaffee gemacht. Muss also noch etwas warten, bis ich es teste.
-
@dtp ich habe umgestellt das alle select mit ihren jeweiligen Optionen
-
So sieht's bei mir mit der Version 0.0.27 aus.
Von weiteren Optionen der Programme kann ich da nichts erkennen. Was mir auch fehlt, ist die Möglichkeit, die Maschine ein- und auszuschalten. Das geht derzeit wohl nur über IFTTT, oder?
-
@dtp eigenartig mal im eingeschaltet Zustand den Adapter Neustarten. Über den settings State kannst du das Gerät ein und ausschalten
-
Jetzt sind die Optionen da.
Latte Macchiatto ist aber das einzige Getränk ohne Eintrag im Namen.
Und danke für die Info mit dem Datenpunkt settings.BSH_Common_Setting_PowerState zum Ein- und Ausschalten. Setze ich den Datenpunkt dazu einfach auf true oder false?
-
@dtp Nein es muss der jeweilige bsh State gesetzt werden den du findest wenn du auf den edit Stift klickst
-
Hi,
ich hab gerade den Adapter für unseren Trockner installiert und mehrere Fragen dazu
Wie kann ich unter Events das Present auswerten für ein Skript?
Für mein Denken wäre doch 0/1 besser für Programm Ende oder Knitterschutz Ende.....
Der Doorstate steht auf offen obwohl der Trockner läuft .....
Bei Betriebsstatus das gleiche wie oben, wie kann ich das Auswerten oder ändern auf 0 und 1 ??
Danke
Tobias