Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. JSON Objekte in Liste

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON Objekte in Liste

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      legro @mickym last edited by legro

      @mickym

      Vielen Dank für deine sehr ausführliche Antwort.

      Vorab ..

      Eines hast du leider vermutlich völlig falsch eingeschätzt; daher hier zur Klarstellung: Deine Lösung ist hervorragend, ich habe sie verstanden und selbstverständlich ist sie bereits in Verwendung.👍 🙂

      Selbstverständlich erwarte ich nicht, dass du mir sozusagen eine Einführung in die Verwendung von JSONata gibst. Meine Hoffnung war, dass du das eine oder andere zu erklären weißt, was mir weiterhilft, mich tiefer in diese Thematik einfinden zu können. In der Tat verstehe ich mit deiner Hilfe jetzt einiges mehr und besser. Danke hierfür!

      Ich geb's zu. Ich gehöre zur vorletzten Generation und verstehe Informatik anders als sie heute offenbar kolportiert wird. Es gab eine klare Syntax, anhand derer man seine Konstrukte konstruieren/prüfen konnte. So fehlt mir etwa in JSONata etwa eine Antwort auf die Frage, warum von meinen beiden Versuchen nur einer funktioniert. Sei's d'rum! Ich habe deine Lösung, die's tut. Das soll's gewesen sein.

      Ich bin derzeit dabei, in den Ausdrücken ..

          {
            "Name": "Bezug",
            "Stände": [
              {
                "Datum": "0000-00-00",
                "Energiepreis": 0,
                "Wert": 0
              },
              {
                "Datum": "2023-01-01",
                "Energiepreis": 0.3963,
                "Wert": 468303
              },
              {
                "Datum": "2023-06-30",
                "Energiepreis": 0.3328,
                "Wert": 482512
              }
            ]
          },
      

      .. schreibend auf die Felder "Wert" zuzugreifen. Mit Blockly scheint das gar nicht so einfach zu sein.😞

      mickym 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @legro last edited by mickym

        @legro sagte in JSON Objekte in Liste:

        Selbstverständlich erwarte ich nicht, dass du mir sozusagen eine Einführung in die Verwendung von JSONata gibst. Meine Hoffnung war, dass du das eine oder andere zu erklären weißt, was mir weiterhilft, mich tiefer in diese Thematik einfinden zu können.

        Na ich hoffe, ich habe Deine Erwartungen nicht enttäuscht. Ich habe doch alle Fragen beantwortet. Deswegen verstehe ich Deine Formulierung

        meine Hoffnung war, ....

        nicht. Was fehlt Dir denn an meinen Erklärungen?

        So fehlt mir etwa in JSONata etwa eine Antwort auf die Frage, warum von meinen beiden Versuchen nur einer funktioniert.

        Habe ich doch lang und breit erklärt. Was gefällt Dir an meinen Erklärungen nicht?

        L 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @legro last edited by mickym

          @legro Blockly kann nicht so einfach mit Objekten um gehen.

          Das ist ein Riesennachteil von Blockly weswegen ich es nicht mag, deswegen halt JSONATA verwenden und ich zeig Dir wie man das in Blockly integrieren kann.

          https://try.jsonata.org/r0XmLrKQc

          Hier siehst Du wie ich das letzte Arrayelement mit JSONATA auf das heutige Datum und auf 500000 verändere

          9b976c3f-d986-4cc9-b03b-6d4116f3e0e7-image.png

          Die JSONATA Anweisung zum Updaten ist die hier:

          $ ~> |ZählerStände[Name = "Bezug"].Stände[-1]|{"Datum": "2023-07-06","Wert": 500000}|
          

          Verwendet wird der Transform Operator: https://docs.jsonata.org/other-operators#-------transform

          das Referenzieren von Array-Elementen mit negativen Zahlen - kann übrigens auch nur JSONATA und nicht Javascript:
          siehe hier:
          https://docs.jsonata.org/simple#navigating-json-arrays

          4c2f9f70-36e1-4c7f-b006-e204c21455b4-image.png

          Nun in Blockly musst Du halt den JSONATA Ausdruck konstruieren.

          1 Reply Last reply Reply Quote 0
          • L
            legro @mickym last edited by legro

            @mickym

            Bitte nicht gleich jede Formulierung sozusagen als Kritik an deinen Antworten auslegen. Mein Klagen bezog sich auf die Dokumentation von JSONata und keinesfalls auf deine Antworten. Hier ging es mir um meine (noch) beschränkte Verständnisfähigkeiten.

            Es tut mir leid, wenn ich mich hier so unglücklich ausgedrückt habe.

            Übrigens, was du in deiner letzten Antwort schreibst, genau das versuche ich derzeit mit Blockly zu erreichen - leider (noch) mit viel wenig Erfolg.

            5e002136-729d-47a4-9583-9591d19ed318-image.png

            Die hier dargestellten Blöcke zeigen das Dilemma. Ich verstehe - als einer aus der vorletzten Generation - das Ganze folgendermaßen ..

            • Der Block "setzt Obj auf JSON nach Objekt .." allokiert im Speicher einen Datensatz als Abbild der JSON-Datenstruktur.
            • Mittels des zweiten Blocks "setze Wert auf Attribut ".." .." wird lesend auf die Speicherzelle des im Speicher allokierten Objektes zugegriffen. Dieser zweite Block bewirkt jedoch offenbar bloß eine neue Allokation des referierten Wertes aus dem Obj, indem eine Kopie in die Variable "Wert" geschrieben wird.

            Was ich jedoch benötige, wäre eine Referenz (pointer) auf die Speicherzelle von "ZählerStände.0.Bezug.1.Wert" innerhalb der im Speicher allokierten Variable Obj. In den mir über die Jahrzehnte bekannten Sprachen konnte ich die Variablen dezidiert einmal als reference (pointer) oder value (Kopie des Inhalts) kodieren.

            Ja, so denkt unsereiner, der noch aus der vorletzten Generation stammt.

            Jetzt hilft wohl nur noch JavaScript weiter!?

            mickym 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @legro last edited by mickym

              @legro sagte in JSON Objekte in Liste:

              Übrigens, was du in deiner letzten Antwort schreibst, genau das versuche ich derzeit mit Blockly zu erreichen - leider (noch) mit viel wenig Erfolg.

              Ich arbeite daran. 😉 - Leider ist Blockly auch bei Textersetzungen so was von schlecht, dass man da besser JSONATA zur Hilfe nimmt, wenn Du nicht JS Funktionen schreiben willst. Ich nehm aber für Textersetzungen wohl auch besser eine Javascript Funktion. Du solltest wirklich auf NodeRed umsteigen - das Blockly ist für solche Dinge einfach nur grottenschlecht. Aber ich machs. 😉

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @legro last edited by

                @legro sagte in JSON Objekte in Liste:

                Jetzt hilft wohl nur noch JavaScript weiter!?

                Jein - warte mal - ich nehm jetzt mal Javascript für Textersetzungen - da selbst dass Blockly nicht kann. Ich kann Dir nur sagen, steig auf NodeRed um - ich bin auch nicht mehr der Jüngste aber Du wirst begeistert sein. So ich mach aber ein Blockly für Dich.

                L 1 Reply Last reply Reply Quote 0
                • L
                  legro @mickym last edited by

                  @mickym sagte in JSON Objekte in Liste:

                  @legro sagte in JSON Objekte in Liste:

                  Jetzt hilft wohl nur noch JavaScript weiter!?

                  Jein - warte mal - ich nehm jetzt mal Javascript für Textersetzungen - da selbst dass Blockly nicht kann. Ich kann Dir nur sagen, steig auf NodeRed um - ich bin auch nicht mehr der Jüngste aber Du wirst begeistert sein. So ich mach aber ein Blockly für Dich.

                  Auf NodeRed möchte ich nicht umsteigen müssen, obwohl ich nach meinen Erfahrungen mit deinen Hilfestellungen deinem Urteil absolut vertraue. Ich habe, seit ich im Ruhestand bin, eine Hausautomatisierung auf Basis von ioBroker aufgebaut. Wollte ich die auf NodeRed umstellen, ist zu befürchten, dass ich gar nicht mehr lange genug lebe, die Früchte dieser Arbeit genießen zu können.😭

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @legro last edited by mickym

                    @legro sagte in JSON Objekte in Liste:

                    @mickym sagte in JSON Objekte in Liste:

                    @legro sagte in JSON Objekte in Liste:

                    Jetzt hilft wohl nur noch JavaScript weiter!?

                    Jein - warte mal - ich nehm jetzt mal Javascript für Textersetzungen - da selbst dass Blockly nicht kann. Ich kann Dir nur sagen, steig auf NodeRed um - ich bin auch nicht mehr der Jüngste aber Du wirst begeistert sein. So ich mach aber ein Blockly für Dich.

                    Auf NodeRed möchte ich nicht umsteigen müssen, obwohl ich nach meinen Erfahrungen mit deinen Hilfestellungen deinem Urteil absolut vertraue. Ich habe, seit ich im Ruhestand bin, eine Hausautomatisierung auf Basis von ioBroker aufgebaut. Wollte ich die auf NodeRed umstellen, ist zu befürchten, dass ich gar nicht mehr lange genug lebe, die Früchte dieser Arbeit genießen zu können.😭

                    Nein das stimmt nicht - weil Du ja beides parallel betreiben kannst. Ich meine ja nicht das iobroker System wegschmeissen, sondern nur NodeRed (als Adapter hier im iobroker) anstelle Blockly als Logikmaschine zu verwenden. Du kannst das zum Beispiel auch jetzt machen - ohne deine bisherigen Blocklies anzufassen.
                    Ausserdem kannst Du selbst entscheiden, ob Du dann später einzelne Blocklies in NodeRed konverierst.

                    Nun habe ich aber Dein Blockly fertig zusammen mit JSONATA. 😉

                    8feb6b5f-5521-4e9b-bce5-9b6ff1c692b8-image.png

                    Weitere Erklärungen folgen gleich.

                    Im neuen Datum und im neuen Wert als Variable einfach das halt reingeben was Du aus Deinen Datenpunkten/Adaptern holst.

                    Den JSONATA Ausdruck zum Aktualisieren des letzten Objektes unter Bezug hatte ich Dir ja gepostet. Ich habe nur die beiden Werte zum aktualisieren - ein Dummytext verwendet.

                    $ ~> |ZählerStände[Name = "Bezug"].Stände[-1]|{"Datum": "-neuesDatum-","Wert": -neuerWert-}|
                    

                    Diese beiden Texte -neues Datum- und -neuerWert- ersetze ich nun durch die Variablen "neues Datum" und "neuer Wert".
                    Da dieses Blockly in seinen Textbausteinen (zumindest hab ich nichts gefunden) kein Suchen und Ersetzen hat habe ich eine JS Funktion implementiert.

                    a7e8492b-b474-4cd4-99ab-4f4ed4f6e221-image.png

                    Diese nimmt 3 Parameter auf.

                    1. Den Text der geändert werden soll
                    2. Welche Stelle geändert werden soll
                    3. Mit was ersetzt wird.

                    Der dahinterstehende JS Code - ist banal. 😉 - auch wenn ich nicht weiß warum man hier auf Text2 referenzieren muss. 😉

                    return Text2.replace(Suche,ErsetzeMit);
                    

                    Somit wird also das neue Datum

                    b728603a-026e-47b4-b4f7-aa1ba7e65491-image.png

                    im Ausdruck durch den Inhalt der Variable ersetzt.

                    bei dem neuen Wert analog.

                    Im Debug siehst Du das dann:
                    4d507dd2-5957-4e28-8b86-c68c0478ad5f-image.png

                    Mit dem JSONATA Ausdruck aktualisierst Du dann Dein Objekt.

                    69ff1742-e275-4042-8275-076da8947eb0-image.png

                    Somit wird aus:

                    6610e653-4da0-4411-af6b-8718e432d43a-image.png

                    Korrespondierende Stellen sind farblich ähnlich markiert.

                    Hier zum Import das gesamte Blockly:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="Ecm2OgfZ8GI=K~naW9FW">Text</variable>
                       <variable id="uQ6ik6Rp*f%TY48I.?KS">Suche</variable>
                       <variable id="1A,HmaVf6-tm#bCww00G">ErsetzeMit</variable>
                       <variable id="NWR;`_N@3a:sTiBKQkne">Objekt</variable>
                       <variable id="9u8X/Eqh]Ug6kT2?)@]y">neues Datum</variable>
                       <variable id="b5?do~@03)oSd?w4b/=O">neuer Wert</variable>
                       <variable id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</variable>
                     </variables>
                     <block type="procedures_defcustomreturn" id="%8$N60_9!!Uf5a$$-#AX" x="-1138" y="-412">
                       <mutation statements="false">
                         <arg name="Text" varid="Ecm2OgfZ8GI=K~naW9FW"></arg>
                         <arg name="Suche" varid="uQ6ik6Rp*f%TY48I.?KS"></arg>
                         <arg name="ErsetzeMit" varid="1A,HmaVf6-tm#bCww00G"></arg>
                       </mutation>
                       <field name="NAME">Textersetzen</field>
                       <field name="SCRIPT">cmV0dXJuIFRleHQyLnJlcGxhY2UoU3VjaGUsRXJzZXR6ZU1pdCk7</field>
                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                     </block>
                     <block type="variables_set" id="M@F*zUMa;{#yJo2.2goG" x="-1137" y="-337">
                       <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                       <value name="VALUE">
                         <block type="convert_json2object" id="wV#~g_#qRM}fhgD[;waT">
                           <value name="VALUE">
                             <block type="text" id="7@h4[@Y-M.M.tsLuCU56">
                               <field name="TEXT">{   "ZählerStände": [     {       "Name": "Bezug",       "Stände": [         {           "Datum": "0000-00-00",           "Energiepreis": 0,           "Wert": 0         },         {           "Datum": "2023-01-01",           "Energiepreis": 0.3963,           "Wert": 468303         },         {           "Datum": "2023-06-30",           "Energiepreis": 0.3328,           "Wert": 482512         }       ]     },     {       "Name": "Verkauf",       "Stände": [         {           "Datum": "0000-00-00",           "Energiepreis": 0,           "Wert": 0         },         {           "Datum": "2023-01-01",           "Energiepreis": 0.082,           "Wert": 0         },         {           "Datum": "2023-06-30",           "Energiepreis": 0.082,           "Wert": 0         }       ]     },     {       "Name": "Erzeugt",       "Stände": [         {           "Datum": "0000-00-00",           "Energiepreis": 0,           "Wert": 0         },         {           "Datum": "2023-01-01",           "Energiepreis": 0.3963,           "Wert": 2510191         },         {           "Datum": "2023-06-30",           "Energiepreis": 0.3328,           "Wert": 2597930         }       ]     }   ] }</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="debug" id="9S+u#Vzo/zuptK|}o,?9">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text" id="COg%Nwdd92sEj=QP[Lt)">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="variables_get" id="N=A4,QQsE8/8~[BL])Xc">
                               <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                             </block>
                           </value>
                           <next>
                             <block type="variables_set" id="k.1XtKn$8B-y3gL%:f.-">
                               <field name="VAR" id="9u8X/Eqh]Ug6kT2?)@]y">neues Datum</field>
                               <value name="VALUE">
                                 <block type="text" id="5@NN=W}#{Jh6M-|kUH^[">
                                   <field name="TEXT">2023-07-06</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="l4S9d+HMDqUB1T/,OxPm">
                                   <field name="VAR" id="b5?do~@03)oSd?w4b/=O">neuer Wert</field>
                                   <value name="VALUE">
                                     <block type="text" id="l.okZ;;D[ZLfm/gi@6hS">
                                       <field name="TEXT">520000</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="QyDxg]4E#TKf|eK6:VER">
                                       <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                       <value name="VALUE">
                                         <block type="text" id="sKl-kQyq({+ymSEB,jE+">
                                           <field name="TEXT">$ ~&gt; |ZählerStände[Name = "Bezug"].Stände[-1]|{"Datum": "-neuesDatum-","Wert": -neuerWert-}|</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="debug" id="!_829~nwqQFuY32{MH~:">
                                           <field name="Severity">log</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="{eQ7UY*O`Z-67f0;Y[yV">
                                               <field name="TEXT">test</field>
                                             </shadow>
                                             <block type="variables_get" id="VnIOH%}+/fC-S6S[:2`C">
                                               <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="variables_set" id="QHrof-UDHIQ_;fIhHaW%">
                                               <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                               <value name="VALUE">
                                                 <block type="procedures_callcustomreturn" id="vK7EZ646K9j}n;v%MKno">
                                                   <mutation name="Textersetzen">
                                                     <arg name="Text"></arg>
                                                     <arg name="Suche"></arg>
                                                     <arg name="ErsetzeMit"></arg>
                                                   </mutation>
                                                   <value name="ARG0">
                                                     <block type="variables_get" id="9ud0X|_*(eIlG,Cw;XR?">
                                                       <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG1">
                                                     <block type="text" id="h)@hKKIXRZPv%7i-%FP+">
                                                       <field name="TEXT">-neuesDatum-</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG2">
                                                     <block type="variables_get" id="24j_WUdw2qM]{,!T:A#I">
                                                       <field name="VAR" id="9u8X/Eqh]Ug6kT2?)@]y">neues Datum</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="variables_set" id="h^_Nx6jY^iKU2cxl{z*D">
                                                   <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                                   <value name="VALUE">
                                                     <block type="procedures_callcustomreturn" id="^.zPIF+|ECBT!VyZh|:W">
                                                       <mutation name="Textersetzen">
                                                         <arg name="Text"></arg>
                                                         <arg name="Suche"></arg>
                                                         <arg name="ErsetzeMit"></arg>
                                                       </mutation>
                                                       <value name="ARG0">
                                                         <block type="variables_get" id="0H[@K-TQ+j:2?YXLuFsY">
                                                           <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                                         </block>
                                                       </value>
                                                       <value name="ARG1">
                                                         <block type="text" id="J]uql_B_Ah99|[?Kqg`]">
                                                           <field name="TEXT">-neuerWert-</field>
                                                         </block>
                                                       </value>
                                                       <value name="ARG2">
                                                         <block type="variables_get" id="EzQAy(X?|J.wwiIO~0Ty">
                                                           <field name="VAR" id="b5?do~@03)oSd?w4b/=O">neuer Wert</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="8q-q]*bOU4}Y,_iXC?g8">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="z{,C85)D6K=@u2QbXPwa">
                                                           <field name="TEXT">test</field>
                                                         </shadow>
                                                         <block type="variables_get" id="-O~0B:dy$tuF_D~jyC%%">
                                                           <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="debug" id="^5#in-UU}%!K~KPOKHz_">
                                                           <field name="Severity">log</field>
                                                           <value name="TEXT">
                                                             <shadow type="text" id="-,TGC$b5|aHgxT-/9J]`">
                                                               <field name="TEXT">test</field>
                                                             </shadow>
                                                             <block type="convert_jsonata" id="lJ3pgV,d!Gi]8s,TMKUf">
                                                               <value name="EXPRESSION">
                                                                 <shadow type="text" id="$?E[/Hc*GGc|PsLH./zl">
                                                                   <field name="TEXT">$ ~&gt; |ZählerStände[Name = "Bezug"].Stände[-1]|{"Datum": "2023-07-06","Wert": 500000}|</field>
                                                                 </shadow>
                                                                 <block type="variables_get" id="@bh(Gu.?bybsmVE,%;NA">
                                                                   <field name="VAR" id="GwCfcA.)Sm4A[NF{ep7K">JSONATA</field>
                                                                 </block>
                                                               </value>
                                                               <value name="TARGET">
                                                                 <block type="variables_get" id="$EtNHY[c50V=?^FK.SM-">
                                                                   <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                    </xml>
                    

                    Aber wie gesagt mit dem Blockly gebe ich hier nur ein Gastspiel. 😉 - Und nochmal man muss nicht auf NodeRed umsteigen, kann es aber zusätzlich benutzen. 😉

                    1 Reply Last reply Reply Quote 1
                    • L
                      legro last edited by

                      @mickym

                      Aber wie gesagt mit dem Blockly gebe ich hier nur ein Gastspiel. 😉 - Und nochmal man muss nicht auf NodeRed umsteigen, kann es aber zusätzlich benutzen. 😉

                      Aber was für ein beeindruckendes Gastspiel! 👍

                      Ich muss erkennen: Meine Ressourcen geben das nicht (mehr) her. JSONata ist (zumindest derzeit noch) eine Nummer zu groß. Außer mich bei dir für diese tolle Lösungen zu bedanken, kann ich kaum etwas dazu beitragen.😖

                      Vielen Dank für deine großartige Unterstützung.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @legro last edited by

                        @legro Ich helfe ja gerne - außerdem macht mir sowas Spaß an Lösungen zu tüfteln und das hält meinen Geist noch etwas wach. 😁

                        L 1 Reply Last reply Reply Quote 0
                        • L
                          legro @mickym last edited by

                          @mickym sagte in JSON Objekte in Liste:

                          @legro Ich helfe ja gerne - außerdem macht mir sowas Spaß an Lösungen zu tüfteln und das hält meinen Geist noch etwas wach. 😁

                          Ja, das merkt man. Mein Problem ist zunehmend, dass ich mir nur noch schlecht etwas merken, aber vergessen kann ich dafür gut.😢 Wer weiß, wie‘s ohne dieses Hobby aussähe.🙄

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          741
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          3
                          94
                          4706
                          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