Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Bring Einkaufsliste in Lovelace Visu

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Bring Einkaufsliste in Lovelace Visu

    This topic has been deleted. Only users with topic management privileges can see it.
    • fAz3rs adventures
      fAz3rs adventures last edited by

      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 dankbar

      Grüßle
      Timo

      Blockly:
      <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"})![SendShoppinglist.PNG](/assets/uploads/files/1685441309576-sendshoppinglist-resized.png) 
      
      fAz3rs adventures 1 Reply Last reply Reply Quote 0
      • fAz3rs adventures
        fAz3rs adventures @fAz3rs adventures last edited by

        @faz3rs-adventures SendShoppinglist.PNG

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @fAz3rs adventures last edited by paul53

          @faz3rs-adventures
          Wie soll die "Shopping list as json" aussehen?

          Wenn es ein Json-Array sein soll, dann könnte es so funktionieren:

          Blockly_temp.JPG

          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:

          Blockly_temp.JPG

          fAz3rs adventures 2 Replies Last reply Reply Quote 1
          • fAz3rs adventures
            fAz3rs adventures @paul53 last edited by

            @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

            1 Reply Last reply Reply Quote 0
            • fAz3rs adventures
              fAz3rs adventures @paul53 last edited by

              @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 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @fAz3rs adventures last edited by paul53

                @faz3rs-adventures
                Habe es mal getestet: Man benötigt offenbar eine Zwischenvariable:

                Blockly_temp.JPG

                fAz3rs adventures 1 Reply Last reply Reply Quote 0
                • fAz3rs adventures
                  fAz3rs adventures @paul53 last edited by

                  @paul53 super es funktioniert 👍🏻
                  Vielen Dank für die schnelle Hilfe

                  David G. 1 Reply Last reply Reply Quote 1
                  • David G.
                    David G. @fAz3rs adventures last edited by

                    @faz3rs-adventures

                    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?

                    fAz3rs adventures 1 Reply Last reply Reply Quote 0
                    • fAz3rs adventures
                      fAz3rs adventures @David G. last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      933
                      Online

                      31.7k
                      Users

                      79.6k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      446
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo