NEWS
[geloest] Wert eines Objektes nicht auslesbar
-
Hi,
ich möchte gern dass mir Alexa mitteilt, welcher Kaffe gerade fertig ist. Dazu muss "nur" der Wert aus einem DP ausgelesen werden. Ich möchte ungern 20 if then einbauen... das muss doch eleganter gehen.Hier die Defintion des Datenpunktes:
{ "type": "state", "common": { "name": "BSH_Common_Root_SelectedProgram", "type": "string", "role": "indicator", "write": true, "read": true, "states": { "ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso": "Espresso", "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato": "Espresso Macchiato", "ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee": "Caffe Crema", "ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino": "Cappuccino", "ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato": "Latte Macchiato", "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte": "Milchkaffee", "ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto": "Ristretto", "ConsumerProducts.CoffeeMaker.Program.Beverage.MilkFroth": "Milchschaum", "ConsumerProducts.CoffeeMaker.Program.Beverage.WarmMilk": "Warme Milch", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KleinerBrauner": "Kleiner Brauner", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.GrosserBrauner": "Großer Brauner", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Verlaengerter": "Verlängerter", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.VerlaengerterBraun": "Verlängerter braun", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.WienerMelange": "Wiener Melange", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.FlatWhite": "Flat White", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Cortado": "Cortado", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeCortado": "Café cortado", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeConLeche": "Café con leche", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeAuLait": "Café au lait", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Doppio": "Doppio", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Kaapi": "Kaapi", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KoffieVerkeerd": "Koffie verkeerd", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Galao": "Galão", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Garoto": "Garoto", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Americano": "Americano", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.RedEye": "Red Eye" } }, "native": {}, "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1577488560220, "_id": "homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Mein Blockly sieht so aus:
Wenn ich Konvertierung nach String wähle - liest mir Alexa 'null' vor, ansonsten schweigt Sie zu der Zeile. Ideen das irgendwie via Liste oder Textmanipulation zu machen?
Leider geht die Textmanipulation nicht...
Error in callback: TypeError: Cannot read property 'charAt' of null
-
@oberfragger
ich habe mir mal Deinen Datenpunkt von oben angelegt. Wenn Du jetzt hier in der Werteliste die Kaffeesorte änderst wird der ausgewählte Kaffee vorgelesen bzw. angesagt.also hier auswählen und ändern..
In Deinem Blockly verstehe ich nicht was wert=100 als Text macht ?
Hier mal zum probieren für Dich (speak musst Du natürlich mit Deinem ECHO tauschen)
EDIT: Du kannst den Trigger auch auf wurde aktualisiert stellen, je nach dem wie das gesamte Blockly dann aussieht und machen soll bzw. wann es laufen soll.
-
@dslraser said in Alexa kann Wert eines Objektes nicht sprechen:
In Deinem Blockly verstehe ich nicht was wert=100 als Text macht ?
Die Kaffeemaschine bzw. App hat einen Prozentwert. Wenn der 100 erreicht ist der Kaffee fertig
-
@oberfragger sagte in Alexa kann Wert eines Objektes nicht sprechen:
Wenn der 100 erreicht ist der Kaffee fertig
100 Prozent als Text oder als Zahl ? Wie sieht der RAW des Datenpunktes aus ?
-
@dslraser Nö. Läuft leider nicht mit Deinem Blockly.
javascript.0 2019-12-28 23:19:00.378 error (1709) at processImmediate (timers.js:658:5) javascript.0 2019-12-28 23:19:00.378 error (1709) at tryOnImmediate (timers.js:676:5) javascript.0 2019-12-28 23:19:00.378 error (1709) at runCallback (timers.js:705:18) javascript.0 2019-12-28 23:19:00.377 error (1709) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41) javascript.0 2019-12-28 23:19:00.377 error (1709) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37) javascript.0 2019-12-28 23:19:00.376 error (1709) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:439:25) javascript.0 2019-12-28 23:19:00.376 error (1709) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1101:38) javascript.0 2019-12-28 23:19:00.375 error (1709) at Object.<anonymous> (script.js.common.Alexa_Kaffeeansage:12:342) javascript.0 2019-12-28 23:19:00.374 error (1709) Error in callback: TypeError: Cannot read property 'lastIndexOf' of null
23:19:00.375 error javascript.0 (1709) at Object.<anonymous> (script.js.common.Alexa_Kaffeeansage:12:342)
Der Datenpunkt von den 100...? Da läuft doch alles. Das ist nur der Trigger. Und den RAW vom BSH_Common_Root_SelectedProgram habe ich doch oben gepostet. Stehe ich vielleicht gerade auf dem Schlauch?
-
@oberfragger
dann gib mal bitte Deinen Blockly Export und den RAW des Trigger Datenpunktes.
Wenn Du nur den Speak Baustein(mit dem gesamten Textbaustein) ohne Trigger nimmst, also aus dem Blockly rausziehst, dann geht es bei mir. Dann ist in Deinem gesamten Blockly was falsch. -
@dslraser Export vom Blockly
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="8715eV~RN{[[atjqp@A8" x="107" y="65"> <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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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="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="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> </xml>
RAW vom Trigger (wie gesagt, der Trigger funktioniert. Eine Anage wie: Der Kaffee ist fertig." ist zuverlässig. Ich bin heir gerade dabei zu probieren... "Der Espresso ist fertig.")
{ "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1569475336110, "common": { "name": "BSH_Common_Option_ProgramProgress", "type": "object", "role": "indicator", "unit": "%", "write": true, "read": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.active.options.BSH_Common_Option_ProgramProgress", "type": "state" }
-
Das Blockly funktioniert. In der Auswahl muß auch ein Kaffe stehen und nicht leer sein. Wähle mal einen Kaffee aus und stelle dann auf 100% im anderen Datenpunkt.
Auswahl:
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="8715eV~RN{[[atjqp@A8" x="107" y="65"> <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.active.options.BSH_Common_Option_ProgramProgress</field> <field name="CONDITION">any</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="e,/w59t+MG?^V%`rA^*Q"> <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.G0911B0592770T3W.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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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="ATLz5Lbfgw;=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">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</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.PvUM3yk"> <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/RePW!paNc:WF^eT"> <field name="TEXT"> ist fertig</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </xml>
-
@dslraser
Bild während der Heisswasserproduktion:
Logfile:
Wenn ich via App oder Bedienung das Programm (die Sorte) wechsel, dann wird das sofort an den Datenpunkt homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram
Hier nochmal der Code (falls ich vorhin zu wenig kopiert haben sollte):
{ "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1577572279045, "common": { "name": "BSH_Common_Root_SelectedProgram", "type": "string", "role": "indicator", "write": true, "read": true, "states": { "ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso": "Espresso", "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato": "Espresso Macchiato", "ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee": "Caffe Crema", "ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino": "Cappuccino", "ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato": "Latte Macchiato", "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte": "Milchkaffee", "ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto": "Ristretto", "ConsumerProducts.CoffeeMaker.Program.Beverage.MilkFroth": "Milchschaum", "ConsumerProducts.CoffeeMaker.Program.Beverage.WarmMilk": "Warme Milch", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KleinerBrauner": "Kleiner Brauner", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.GrosserBrauner": "Großer Brauner", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Verlaengerter": "Verlängerter", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.VerlaengerterBraun": "Verlängerter braun", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.WienerMelange": "Wiener Melange", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.FlatWhite": "Flat White", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Cortado": "Cortado", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeCortado": "Café cortado", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeConLeche": "Café con leche", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeAuLait": "Café au lait", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Doppio": "Doppio", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Kaapi": "Kaapi", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KoffieVerkeerd": "Koffie verkeerd", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Galao": "Galão", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Garoto": "Garoto", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Americano": "Americano", "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.RedEye": "Red Eye" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram", "type": "state" }
-
@oberfragger
Dieser DP wird ja in dem Blockly auch gar nicht ausgewertet, aber Dein Trigger wird gestartet.
Ich hatte nur diesen DP (BSH_Common_Root_SelectedProgram) und da ist der BlackTea gar nicht drinn.
Der DP, der im Blockly zur Sprachausgabe benutzt wird ist ein anderer, und der ist noch immer leer, daher wieder der gleiche Fehler.
(ich habe weder den Adapter noch das Gerät, also ich bin bei der Hilfe etwas "blind") -
@dslraser Dank Dir auf jeden Fall. Aber da steht doch eindeutig etwas drin...!?!
-
Welcher Datenpunkt ist es denn ?
BSH_Common_Root_SelectedProgram
oder
BSH_Common_Root_ActiveProgram
-
@dslraser ...selected.
100 PUNKTE! Boah. Ich bin heute Abend etwas blind gewesen. Mit diesem Active schlage ich mich schon bei der Dunstabzugshaube rum.
AArrgh... jetzt hab ichs.Pass auf- die Implementierung ist wie folgt (genauso wie bei den anderen HomeconnectGeräten). Unter Active erscheint immer nur das gerade aktive Programm. Sobald das Gerät ausgeschaltet wird, oder das Programm zu Ende ist- verschwindet der Datenpunkt!
Hatte mir das bisher immer nur statisch angesehen und nicht bemerkt dass da zwischen selected und active im 100%-Fall geswitched wird... und danach dann wieder zurück.
In diesem Fall ist bei genau 100% der Datenpunkt NICHT gefüllt. Ich ändere Mal was am Trigger... dann kann das Script im wesentlichen m.E. so bleiben.
-
@dslraser Danke für Deine Geduld und Textzerlegung!!!
Habe einfach einen Timeout davorgesetzt. Testweise erstmal 500ms. Denke das kann man bis auf 100 runterschrauben.
Alexa meint dazu:
-
@oberfragger
der angesagte Text ist der letzte hinter dem Punkt aus dem Pfad, nicht der "eingedeutschte" .
Wie man den "Text" bekommt weiß ich im Moment auch nicht.... -
@oberfragger
also der hinter dem letzten Punkt wird angesagt.ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso
deshalb weicht das etwas ab.
-
@dslraser So ist erstmal fein. HotWater trinken wir kaum. Kaffee Latte und Cappucino schon eher. Ich freue mich schon auf morgen früh- meine Frau wird Ihren Kaffe natürlich erst bekommen wenn Sie schon am Tisch sitzt
Denke für Heisswasser und warmer Milch muss man if/then reinbauen. Wieder was gelernt. Top!
-
An eventuelle Mitleser... ich habe das nun über einen eigen Datenpunkt als temporäre Variable gelöst. Somit umschiffe ich timeouts...
-
Hier noch zum Ansagen des "wirklichen Namens". Da ich den Adapter und die Geräte nicht habe, habe ich nur über Deinen Datenpunkt das Ansagen probiert, da hat es funktioniert. Die Funktion kannst Du ja in Dein Blockly importieren.
-
@dslraser Das muss ich mir mal genauer ansehen. Im Moment ahbe ich da noch Fragezeichen... aber morgen ist in der Firma hoffentlich nichts los
Kannst Du das nochmal bitte exportieren- bei mir kommt nur das hier an:
Ich hoffe ich nerve nicht zu doll. Kann man sich gemäss des Wertes einen Datenpunkt zusammenbauen?
-> Ich denek gerade dass ich die Statistikfunktion vielleicht abbilde.Mir geht es darum, im gleichen Block vielleicht dann den Datenpunkt "0_userdata.0.Kaffemaschine.val"+1 hochzuzählen.
Hierbei soll val natürlich die entsprechende Kaffesorte sein. Oder löst man das anders?Wie gesagt: mit vielen If then würde man das ja auch erreichen. Aber das will ich ja (aktuell) nicht. In der Geräteliste ist die die Kaffeesorte bereits übersetzt...