NEWS
Bring Einkaufsliste in Lovelace Visu
-
Moinmoin,
ich versuche meine Bring einkaufsliste in die Lovelace Visu zu ĂŒbertragen, leider werden alle Artilkel als undefined ĂŒbertragen.
Ich vermute das liegt an der Json Konvertierung, komme aber nicht voran.
Das Programm ist in Blockly geschrieben.
Vielleicht hatte jemand mal ein Ă€hnliches Problem und kann mir helfen, ĂŒber die Suche habe ich nichts gefunden.
bin ĂŒber jeden Rat dankbarGrĂŒĂle
TimoBlockly: <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</variable> <variable id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</variable> <variable id="2JP!FHb3aTk3IR{bN~lD">i</variable> </variables> <block type="on_ext" id="N~tJp6?$Ko.KT=_lgN|-" x="-937" y="-1012"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="54vz+6uD!zL^CR}Fa__u"> <field name="oid">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="K{si^W=a[qDtV4J8R5!="> <field name="VAR" id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</field> <value name="VALUE"> <block type="get_value" id="|*y[Axm!%Lh-6/YWzqA^"> <field name="ATTR">val</field> <field name="OID">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence</field> </block> </value> <next> <block type="variables_set" id="!`r,0sC?7CFoK0I.S]eQ"> <field name="VAR" id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</field> <value name="VALUE"> <block type="lists_split" id="%Uabf:cwAp!{WtDI_~Ac"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="IfDG,#$|79(tcPtWAjKs"> <field name="VAR" id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</field> </block> </value> <value name="DELIM"> <shadow type="text" id="UFV*?*e2AX)%=lZbAW:5"> <field name="TEXT">,</field> </shadow> </value> </block> </value> <next> <block type="controls_for" id="FNZku[l_#4xcr$TW~$3{"> <field name="VAR" id="2JP!FHb3aTk3IR{bN~lD">i</field> <value name="FROM"> <shadow type="math_number" id="{DBM2,Zmz:1u33%UxCa~"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="@]w3d,mN,H[BG2Xi|IyE"> <field name="NUM">2</field> </shadow> <block type="math_arithmetic" id="R(:1]4)AoMp_[$eC3m6/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="w7dJ$YMOx~Lk0ebTw~[y"> <field name="NUM">1</field> </shadow> <block type="get_value" id="sxX?S-jy4:3sfs?la^H|"> <field name="ATTR">val</field> <field name="OID">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.count</field> </block> </value> <value name="B"> <shadow type="math_number" id="5siPo2Hbx#H4jmnVmiUO"> <field name="NUM">1</field> </shadow> </value> </block> </value> <value name="BY"> <shadow type="math_number" id="fj.(/}5CQ-E?w(s(H=7v"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="control" id="*n=?wN*:AT8tc;=3Y@^q"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">lovelace.0.control.shopping_list</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="91D9..]2jYkZpoVSiN.z"> <field name="PRETTIFY">TRUE</field> <value name="VALUE"> <block type="convert_tostring" id="SbFjxQ6:gd8BAnBCUY*O"> <value name="VALUE"> <block type="lists_getIndex" id="p7[-j|=No_S4*cnujKMi"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="FMHiC+TyCg%u[wP|8Mr2"> <field name="VAR" id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</field> </block> </value> <value name="AT"> <block type="variables_get" id="ph4L(~~Q^j1jcqTC[D]j"> <field name="VAR" id="2JP!FHb3aTk3IR{bN~lD">i</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>Log:
30.5.2023, 12:08:00.150 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: getState(id=bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence, timerId=undefined) => {"val":"Bier, Chips, Bacon, Holzkohle, Kartoffeln, Bananen, Brot, Ăpfel, Butter und BBQ Sauce","ack":true,"ts":1685441280144,"q":0,"from":"system.adapter.bring.1","user":"system.user.admin","lc":1685441280144} 30.5.2023, 12:08:00.151 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: getState(id=bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.count, timerId=undefined) => {"val":9,"ack":true,"ts":1685441188961,"q":0,"from":"system.adapter.bring.1","user":"system.user.admin","lc":1685441097853} 30.5.2023, 12:08:00.152 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\"Bier\"","ack":false,"ts":1685441280152,"q":0,"from":"system.adapter.javascript.0","lc":1685441280152,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.153 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Chips\"","ack":false,"ts":1685441280153,"q":0,"from":"system.adapter.javascript.0","lc":1685441280153,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.153 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Bacon\"","ack":false,"ts":1685441280153,"q":0,"from":"system.adapter.javascript.0","lc":1685441280153,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.154 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Holzkohle\"","ack":false,"ts":1685441280154,"q":0,"from":"system.adapter.javascript.0","lc":1685441280154,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.155 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Kartoffeln\"","ack":false,"ts":1685441280155,"q":0,"from":"system.adapter.javascript.0","lc":1685441280155,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.155 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Bananen\"","ack":false,"ts":1685441280155,"q":0,"from":"system.adapter.javascript.0","lc":1685441280155,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.156 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Brot\"","ack":false,"ts":1685441280156,"q":0,"from":"system.adapter.javascript.0","lc":1685441280156,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.156 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Ăpfel\"","ack":false,"ts":1685441280156,"q":0,"from":"system.adapter.javascript.0","lc":1685441280156,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) -
Moinmoin,
ich versuche meine Bring einkaufsliste in die Lovelace Visu zu ĂŒbertragen, leider werden alle Artilkel als undefined ĂŒbertragen.
Ich vermute das liegt an der Json Konvertierung, komme aber nicht voran.
Das Programm ist in Blockly geschrieben.
Vielleicht hatte jemand mal ein Ă€hnliches Problem und kann mir helfen, ĂŒber die Suche habe ich nichts gefunden.
bin ĂŒber jeden Rat dankbarGrĂŒĂle
TimoBlockly: <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</variable> <variable id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</variable> <variable id="2JP!FHb3aTk3IR{bN~lD">i</variable> </variables> <block type="on_ext" id="N~tJp6?$Ko.KT=_lgN|-" x="-937" y="-1012"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="54vz+6uD!zL^CR}Fa__u"> <field name="oid">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="K{si^W=a[qDtV4J8R5!="> <field name="VAR" id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</field> <value name="VALUE"> <block type="get_value" id="|*y[Axm!%Lh-6/YWzqA^"> <field name="ATTR">val</field> <field name="OID">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence</field> </block> </value> <next> <block type="variables_set" id="!`r,0sC?7CFoK0I.S]eQ"> <field name="VAR" id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</field> <value name="VALUE"> <block type="lists_split" id="%Uabf:cwAp!{WtDI_~Ac"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="IfDG,#$|79(tcPtWAjKs"> <field name="VAR" id="6BE`IoCisoyAn;,3]UIJ">EinkaufslisteAuslesen</field> </block> </value> <value name="DELIM"> <shadow type="text" id="UFV*?*e2AX)%=lZbAW:5"> <field name="TEXT">,</field> </shadow> </value> </block> </value> <next> <block type="controls_for" id="FNZku[l_#4xcr$TW~$3{"> <field name="VAR" id="2JP!FHb3aTk3IR{bN~lD">i</field> <value name="FROM"> <shadow type="math_number" id="{DBM2,Zmz:1u33%UxCa~"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="@]w3d,mN,H[BG2Xi|IyE"> <field name="NUM">2</field> </shadow> <block type="math_arithmetic" id="R(:1]4)AoMp_[$eC3m6/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="w7dJ$YMOx~Lk0ebTw~[y"> <field name="NUM">1</field> </shadow> <block type="get_value" id="sxX?S-jy4:3sfs?la^H|"> <field name="ATTR">val</field> <field name="OID">bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.count</field> </block> </value> <value name="B"> <shadow type="math_number" id="5siPo2Hbx#H4jmnVmiUO"> <field name="NUM">1</field> </shadow> </value> </block> </value> <value name="BY"> <shadow type="math_number" id="fj.(/}5CQ-E?w(s(H=7v"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="control" id="*n=?wN*:AT8tc;=3Y@^q"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">lovelace.0.control.shopping_list</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_object2json" id="91D9..]2jYkZpoVSiN.z"> <field name="PRETTIFY">TRUE</field> <value name="VALUE"> <block type="convert_tostring" id="SbFjxQ6:gd8BAnBCUY*O"> <value name="VALUE"> <block type="lists_getIndex" id="p7[-j|=No_S4*cnujKMi"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="FMHiC+TyCg%u[wP|8Mr2"> <field name="VAR" id="cnY:[r[I)Tf)cmh2~:cj">SplitListeInArtikel</field> </block> </value> <value name="AT"> <block type="variables_get" id="ph4L(~~Q^j1jcqTC[D]j"> <field name="VAR" id="2JP!FHb3aTk3IR{bN~lD">i</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>Log:
30.5.2023, 12:08:00.150 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: getState(id=bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.enumSentence, timerId=undefined) => {"val":"Bier, Chips, Bacon, Holzkohle, Kartoffeln, Bananen, Brot, Ăpfel, Butter und BBQ Sauce","ack":true,"ts":1685441280144,"q":0,"from":"system.adapter.bring.1","user":"system.user.admin","lc":1685441280144} 30.5.2023, 12:08:00.151 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: getState(id=bring.1.e9f9da62-3322-45b5-8d58-207dabf85680.count, timerId=undefined) => {"val":9,"ack":true,"ts":1685441188961,"q":0,"from":"system.adapter.bring.1","user":"system.user.admin","lc":1685441097853} 30.5.2023, 12:08:00.152 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\"Bier\"","ack":false,"ts":1685441280152,"q":0,"from":"system.adapter.javascript.0","lc":1685441280152,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.153 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Chips\"","ack":false,"ts":1685441280153,"q":0,"from":"system.adapter.javascript.0","lc":1685441280153,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.153 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Bacon\"","ack":false,"ts":1685441280153,"q":0,"from":"system.adapter.javascript.0","lc":1685441280153,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.154 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Holzkohle\"","ack":false,"ts":1685441280154,"q":0,"from":"system.adapter.javascript.0","lc":1685441280154,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.155 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Kartoffeln\"","ack":false,"ts":1685441280155,"q":0,"from":"system.adapter.javascript.0","lc":1685441280155,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.155 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Bananen\"","ack":false,"ts":1685441280155,"q":0,"from":"system.adapter.javascript.0","lc":1685441280155,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.156 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Brot\"","ack":false,"ts":1685441280156,"q":0,"from":"system.adapter.javascript.0","lc":1685441280156,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) 30.5.2023, 12:08:00.156 [info ]: javascript.0 (23280) script.js.Spielereien_und_Tests.testShoppingliste: setForeignState(id=lovelace.0.control.shopping_list, state={"val":"\" Ăpfel\"","ack":false,"ts":1685441280156,"q":0,"from":"system.adapter.javascript.0","lc":1685441280156,"c":"script.js.Spielereien_und_Tests.testShoppingliste"}) -
@faz3rs-adventures
Wie soll die "Shopping list as json" aussehen?Wenn es ein Json-Array sein soll, dann könnte es so funktionieren:

Inhalt der JS-Funktion und2Komma(str):
return str.replace(' und', ',');EDIT: Laut Doku zu Lovelace muss die Einkaufsliste Objekte mit den Attributen "name", "id" und "complete" enthalten. Das Objekt kann mit folgender JS-Funktion objEinkauf(id, Name) erstellt werden:
return { name: Name, id: id, complete: false };Das zugehörige Blockly:

-
@faz3rs-adventures
Wie soll die "Shopping list as json" aussehen?Wenn es ein Json-Array sein soll, dann könnte es so funktionieren:

Inhalt der JS-Funktion und2Komma(str):
return str.replace(' und', ',');EDIT: Laut Doku zu Lovelace muss die Einkaufsliste Objekte mit den Attributen "name", "id" und "complete" enthalten. Das Objekt kann mit folgender JS-Funktion objEinkauf(id, Name) erstellt werden:
return { name: Name, id: id, complete: false };Das zugehörige Blockly:

@paul53 vermutlich ist der Fehler dass ich probiert habe nur den name zu ĂŒbertragen
Ich werde versuchen mit dem blockly Vorschlag zu arbeiten.
Danke schonmal -
@faz3rs-adventures
Wie soll die "Shopping list as json" aussehen?Wenn es ein Json-Array sein soll, dann könnte es so funktionieren:

Inhalt der JS-Funktion und2Komma(str):
return str.replace(' und', ',');EDIT: Laut Doku zu Lovelace muss die Einkaufsliste Objekte mit den Attributen "name", "id" und "complete" enthalten. Das Objekt kann mit folgender JS-Funktion objEinkauf(id, Name) erstellt werden:
return { name: Name, id: id, complete: false };Das zugehörige Blockly:

@paul53 vielleicht kannst du mir noch einen AnstoĂ geben
ich bekomme jetzt beim ersetzten von dem und durch ein Komme einen Type Error (TypeError: und2Komma(...).split is not a function)
habe es auch einmal umgeschrieben und den neuen string in eine eigene variable geschrieben und diese geturnt aber derselbe Fehler
(bin in JS ganz frisch unterwegs) -
@paul53 vielleicht kannst du mir noch einen AnstoĂ geben
ich bekomme jetzt beim ersetzten von dem und durch ein Komme einen Type Error (TypeError: und2Komma(...).split is not a function)
habe es auch einmal umgeschrieben und den neuen string in eine eigene variable geschrieben und diese geturnt aber derselbe Fehler
(bin in JS ganz frisch unterwegs)@faz3rs-adventures
Habe es mal getestet: Man benötigt offenbar eine Zwischenvariable:
-
@faz3rs-adventures
Habe es mal getestet: Man benötigt offenbar eine Zwischenvariable:
@paul53 super es funktioniert đđ»
Vielen Dank fĂŒr die schnelle Hilfe -
@paul53 super es funktioniert đđ»
Vielen Dank fĂŒr die schnelle HilfeWie machst du das denn mit der Liste?
Bekommst jetzt ja nur die Daten aus Bring in Lovelace.Wenn du da was hinzufĂŒgst oder entfernst hast du das ja nicht in Bring synchronisiert?
-
Wie machst du das denn mit der Liste?
Bekommst jetzt ja nur die Daten aus Bring in Lovelace.Wenn du da was hinzufĂŒgst oder entfernst hast du das ja nicht in Bring synchronisiert?
@david-g
Also der Plan war am ende eine Zentrale Einkaufsliste in meiner Visu zu haben die ich mir zusĂ€tzlich auch noch per Telegram schicken kann.In diese möchte ich von alexa ĂŒber spracheingaben bzw ĂŒber Bring (die ist mit der Alexa Liste gekoppelt), ĂŒber einen Barcode Scanner und ĂŒber die Visu direkt Artikel hinzufĂŒgen können.
Damit die Bring Liste aktuell bleibt hatte ich im nĂ€chsten Schritt vor bei einer Ănderung der Lovelace Einkaufsliste einen Vergleich mit der Bring Liste durchzufĂŒhren und die Artikel die dort noch nicht eingetragen sind ĂŒbertragen.
Das werde ich jetzt die Tage angehen
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden
