Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Datenpunkte in JSON aufbereiten [gelöst]

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Datenpunkte in JSON aufbereiten [gelöst]

Geplant Angeheftet Gesperrt Verschoben JavaScript
26 Beiträge 5 Kommentatoren 2.9k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    @moppedman Na glaube ich nicht - zu dem Du wie bei Blockly eigene JS Funktionen einbinden kannst - aber ich führe diese Diskussionen nicht mehr.

    Ich komm auch aus der IT und habe Cobol, C, C++, VB gelernt - deswegen weiß ich was Node Red kann und welche Erleichterung es darstellt sich auf die Logik zu konzentrieren. Aber lassen wir das.

    MoppedmanM Offline
    MoppedmanM Offline
    Moppedman
    schrieb am zuletzt editiert von
    #9

    Hi @mickym

    das letzte was ich will, ist mich hier im Forum in meiner Freizeit zu streiten. Wie gesagt habe ich keine Erfahrung mit NodeRed und wenn du gute Erfahrungen damit hast ist es doch gut. Ich wollte mit meiner Antwort KEINEN Versuch starten NodeRed schlecht zu reden oder dir madig zu machen.

    Wenn du dir meine Fragen anschaust geht es dort vorrangig um einen sinnvollen Aufbau des JSON Array und nicht die Programiersprache mit der ich es beschreibe. Wenn du mir da helfen könntest würde ich mich freuen.

    Gruß Ralf

    Gruß aus dem rheinischen

    mickymM 1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @moppedman

      ich habe mal ein example:

      • braucht zum test erstmal keine dp
      • im log siehst du die veränderungen
      • in der function wird bei monthlyWrite ist true ein monat geschrieben - bei false ein neues jahr

      Image 12.png

      import blockly:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
         <variable id="gE6IpFAUdBy{RO/xsErv">nameV</variable>
         <variable id="f-0[=jL85-Y/!AP)-w8-">jahr</variable>
         <variable id="0q@v~EI]%Do0=u.9JKw4">monat</variable>
         <variable id="(`Woj.y9l#(01@s|bhR3">monatWert</variable>
         <variable id="Ne!:g3_yXzlXF,X$J|#E">existingArr</variable>
         <variable id="0FUhve1bqk3sA5(DMK6C">monthlyWrite</variable>
         <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
         <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
       </variables>
       <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" x="137" y="88">
         <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
         <value name="VALUE">
           <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
             <field name="OPTION">Mts</field>
             <field name="LANGUAGE">de</field>
           </block>
         </value>
         <next>
           <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl">
             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
             <value name="VALUE">
               <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                 <field name="OPTION">custom</field>
                 <field name="FORMAT">JJJJ</field>
               </block>
             </value>
             <next>
               <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                 <value name="VALUE">
                   <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                     <value name="VALUE">
                       <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                         <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                     <field name="COMMENT">schreibt neues jahr</field>
                     <next>
                       <block type="debug" id="F/wTao~c7Mf8*[%b1N3h">
                         <field name="Severity">log</field>
                         <value name="TEXT">
                           <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                             <field name="TEXT">test</field>
                           </shadow>
                           <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                             <mutation name="erstelleJson">
                               <arg name="nameV"></arg>
                               <arg name="jahr"></arg>
                               <arg name="monat"></arg>
                               <arg name="monatWert"></arg>
                               <arg name="existingArr"></arg>
                               <arg name="monthlyWrite"></arg>
                             </mutation>
                             <value name="ARG0">
                               <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                 <field name="TEXT">GAS</field>
                               </block>
                             </value>
                             <value name="ARG1">
                               <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                               </block>
                             </value>
                             <value name="ARG2">
                               <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                               </block>
                             </value>
                             <value name="ARG3">
                               <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                 <field name="NUM">0</field>
                               </block>
                             </value>
                             <value name="ARG4">
                               <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                               </block>
                             </value>
                             <value name="ARG5">
                               <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                             <value name="VALUE">
                               <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                 <mutation name="erstelleJson">
                                   <arg name="nameV"></arg>
                                   <arg name="jahr"></arg>
                                   <arg name="monat"></arg>
                                   <arg name="monatWert"></arg>
                                   <arg name="existingArr"></arg>
                                   <arg name="monthlyWrite"></arg>
                                 </mutation>
                                 <value name="ARG0">
                                   <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                     <field name="TEXT">GAS</field>
                                   </block>
                                 </value>
                                 <value name="ARG1">
                                   <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                     <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                   </block>
                                 </value>
                                 <value name="ARG2">
                                   <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                     <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                   </block>
                                 </value>
                                 <value name="ARG3">
                                   <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                     <field name="NUM">0</field>
                                   </block>
                                 </value>
                                 <value name="ARG4">
                                   <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                   </block>
                                 </value>
                                 <value name="ARG5">
                                   <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                     <field name="BOOL">FALSE</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                 <field name="COMMENT">schreibt neuen monat</field>
                                 <next>
                                   <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                         <mutation name="erstelleJson">
                                           <arg name="nameV"></arg>
                                           <arg name="jahr"></arg>
                                           <arg name="monat"></arg>
                                           <arg name="monatWert"></arg>
                                           <arg name="existingArr"></arg>
                                           <arg name="monthlyWrite"></arg>
                                         </mutation>
                                         <value name="ARG0">
                                           <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                             <field name="TEXT">GAS</field>
                                           </block>
                                         </value>
                                         <value name="ARG1">
                                           <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                           </block>
                                         </value>
                                         <value name="ARG2">
                                           <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                             <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                           </block>
                                         </value>
                                         <value name="ARG3">
                                           <block type="math_number" id="Rp.*d#R*1;6d$7pn3;3H">
                                             <field name="NUM">555</field>
                                           </block>
                                         </value>
                                         <value name="ARG4">
                                           <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                             <value name="VALUE">
                                               <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="ARG5">
                                           <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </next>
       </block>
       <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="787" y="463">
         <mutation statements="false">
           <arg name="nameV" varid="gE6IpFAUdBy{RO/xsErv"></arg>
           <arg name="jahr" varid="f-0[=jL85-Y/!AP)-w8-"></arg>
           <arg name="monat" varid="0q@v~EI]%Do0=u.9JKw4"></arg>
           <arg name="monatWert" varid="(`Woj.y9l#(01@s|bhR3"></arg>
           <arg name="existingArr" varid="Ne!:g3_yXzlXF,X$J|#E"></arg>
           <arg name="monthlyWrite" varid="0FUhve1bqk3sA5(DMK6C"></arg>
         </mutation>
         <field name="NAME">erstelleJson</field>
         <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
      </xml>
      

      Image 13.png

      MoppedmanM Offline
      MoppedmanM Offline
      Moppedman
      schrieb am zuletzt editiert von
      #10

      Hi @liv-in-sky ,

      danke für das Beispiel, schaue ich mir am kommenden Wochenende an und melde mich dann.

      Gruß Ralf

      Gruß aus dem rheinischen

      1 Antwort Letzte Antwort
      0
      • MoppedmanM Moppedman

        Hi @mickym

        das letzte was ich will, ist mich hier im Forum in meiner Freizeit zu streiten. Wie gesagt habe ich keine Erfahrung mit NodeRed und wenn du gute Erfahrungen damit hast ist es doch gut. Ich wollte mit meiner Antwort KEINEN Versuch starten NodeRed schlecht zu reden oder dir madig zu machen.

        Wenn du dir meine Fragen anschaust geht es dort vorrangig um einen sinnvollen Aufbau des JSON Array und nicht die Programiersprache mit der ich es beschreibe. Wenn du mir da helfen könntest würde ich mich freuen.

        Gruß Ralf

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #11

        @moppedman sagte in Datenpunkte in JSON aufbereiten:

        Hi @mickym

        das letzte was ich will, ist mich hier im Forum in meiner Freizeit zu streiten. Wie gesagt habe ich keine Erfahrung mit NodeRed und wenn du gute Erfahrungen damit hast ist es doch gut. Ich wollte mit meiner Antwort KEINEN Versuch starten NodeRed schlecht zu reden oder dir madig zu machen.

        Kam halt auch schräg rüber - weil Du dann noch mit "30 Jahren Assembler & Pascal programmiert" - wohl Deine Kompetenz unterstreichst. Deshalb habe ich entsprechend geantwortet, dass ich vor 30 Jahren zum Organistationsprogrammierer mit entsprechenden Sprachen ausgebildet wurde. Solche Kompetenzspielchen kommen bei mir nu mal schlecht an.

        Wenn du dir meine Fragen anschaust geht es dort vorrangig um einen sinnvollen Aufbau des JSON Array und nicht die Programiersprache mit der ich es beschreibe. Wenn du mir da helfen könntest würde ich mich freuen.

        Gruß Ralf

        Ich habe nur gesagt, dass mit NR der Aufbau aus einem Javascript Objekt eben mit bestimmten Nodes sehr einfach zu realisieren ist.
        Grundsätzlich würde ich das JSON anders aufbauen - Du machst ja aus dem JSON mit Deinen Vorschlägen nur halb Gebrauch:
        Die Datenpunkte der Monate müssen neutral gehalten werden - also ohne Jahreszahl - dann kann man sie auch wieder verwenden.

        Ist mein Ansatz für euch nachvollziehbar und für euch richtig?

        Wenn Du es so möchtest. :face_with_rolling_eyes: - Einen komplett anderen Ansatz nämlich in CSV Dateien zu schreiben - bzw. alles automatisch den iobroker erledigen lassen über den SQL Adapter in mySQL zu schreiben, siehst Du am Schluß .

        Würdet ihr alle Jahre in eine JSON Datei schreiben oder besser pro Jahr eine anlegen?

        Aus meiner Sicht fast egal - mit leichter Tendenz alles in eine Datei zu schreiben - dann muss man nichts zusammensuchen

        Wenn alles in einer : Würdet ihr die JSON Liste nach Monaten (a.) oder Jahren (b) aufbauen

        Nach Jahren - dann braucht man es auch nur 1 mal im Jahr wegschreiben. Allerdings nicht mit Jahreszahlen in den Eigenschaften der Objekte

        Also statt sowas

        b. GAS-Month :{ Jan2021:Wert, Feb2021:Wert, Mrz2021:Wert………. u.s.w.}

        :{ Jan2022:Wert, Feb2022:Wert, Mrz2022:Wert ………. u.s.w.}

        dann lieber richtige JSON Objekte schreiben:

        GAS-Month :{2021{Januar:Wert, Februar:Wert, März:Wert, ...},2022{Januar:Wert, Februar:Wert, März:Wert, ...}, ...}

        Das kann man dann auch als JSON String in einen DP schreiben und dann jedes Jahr ergänzen.

        Damit brauchst Du nur die DP Januar-Februar und einen DP Jahr in dem die Jahreszahl drin steht und einen DP in dem Du den gesamten JSON Monatsverbrauch reinschreibst.

        Der DP mit der Jahreszahl triggert Dein Blockly, Flow, Script und einmal im Jahr wird Dein JSON um ein weiteres Jahresobjekt ergänzt. Sprich Du liest den DP - wandelst es in ein JS Objekt um und ergänzt es um ein Jahresobjekt.

        Kann ich gezielt in das JSON Array schreiben oder muss ich das immer gesamt neu zusammensetzten und ablegen

        Du kannst auch ein Array aus Jahresobjekten machen - mir egal - wandelst es dann wieder in JSON String um und schreibst es wieder in DP. Also gezielt kann man ein JSON parsen - in ein JS Array mit Push schreiben und dann stringfy - st Du es wieder. Blockly kann das auch mit Boardmitteln und NodeRed selbstverständlich auch.

        Hat einer zufällig ähnliches gemacht und hat ein Basis JS das ich verwenden könnte.

        Hab ich nicht - aber von einer einfach Alternative mit NodeRed scheinst Du nicht begeistert zu sein.

        Solle jemand einen Lösung mit Blockly habe nehme ich natürlich auch gerne.

        @liv-in-sky hat Dir ja ein Blockly geschrieben - also brauch ich mir da ja keine Mühe mehr zu machen.

        Ich möchte später die verschiedenen Jahre dann nebeneinander zeigen. In meiner handgeführten EXCEL List sieht das so aus

        Nun schreibst Du ja nicht, wie Du es in Zukunft machen willst - ob weiterhin in Excel oder nicht.
        Falls in Excel - dann hab ich hier noch eine Lösung - aber leider wieder in einer von Dir - nach Malen mit Zahlen - implementierten Tool:

        Hier ein fertiger mit bunten Kästchen erstellter Flow ;), der aus bestehenden Datenpunkten in eine CSV Datei schreibt, die man dann in Excel direkt bearbeiten kann - aber das nur am Rande: https://forum.iobroker.net/topic/49120/datenpunkt-in-log-oder-csv-file-schreiben/3?_=1636967115461

        Und zu allerletzt - um noch eine Alternative zu nennen - die eigentlich alles fertig für Dich macht?

        • Warum installierst nicht den History Adapter - oder wie ich das mache - den SQL Adapter schreibst in eine Datenbank. Das gibts schon fix und fertig in iobroker vorbereitet und ist eine Stärke des Systems.
          Ich habe bewusst mySQL genommen - da es hierfür ein Add-In in Excel gibt - dass Dir dann leicht diese Werte in Excel - quasi auf Knopfdruck importieren lässt. Ausserdem kann man dann auch die Grafiktools wie Flot und Grafana nehmen um die Werte direkt - also automatisiert ohne Dazutun in Balkendiagrammen dynamisch anzeigen zu lassen.

        Das aber nur als grundsätzlich Alternativen. So wie Du schreibst - willst Du das alles lieber selbst machen - und hast Dich ja auf JSON Strings festgelegt.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        OliverIOO MoppedmanM 2 Antworten Letzte Antwort
        0
        • mickymM mickym

          @moppedman sagte in Datenpunkte in JSON aufbereiten:

          Hi @mickym

          das letzte was ich will, ist mich hier im Forum in meiner Freizeit zu streiten. Wie gesagt habe ich keine Erfahrung mit NodeRed und wenn du gute Erfahrungen damit hast ist es doch gut. Ich wollte mit meiner Antwort KEINEN Versuch starten NodeRed schlecht zu reden oder dir madig zu machen.

          Kam halt auch schräg rüber - weil Du dann noch mit "30 Jahren Assembler & Pascal programmiert" - wohl Deine Kompetenz unterstreichst. Deshalb habe ich entsprechend geantwortet, dass ich vor 30 Jahren zum Organistationsprogrammierer mit entsprechenden Sprachen ausgebildet wurde. Solche Kompetenzspielchen kommen bei mir nu mal schlecht an.

          Wenn du dir meine Fragen anschaust geht es dort vorrangig um einen sinnvollen Aufbau des JSON Array und nicht die Programiersprache mit der ich es beschreibe. Wenn du mir da helfen könntest würde ich mich freuen.

          Gruß Ralf

          Ich habe nur gesagt, dass mit NR der Aufbau aus einem Javascript Objekt eben mit bestimmten Nodes sehr einfach zu realisieren ist.
          Grundsätzlich würde ich das JSON anders aufbauen - Du machst ja aus dem JSON mit Deinen Vorschlägen nur halb Gebrauch:
          Die Datenpunkte der Monate müssen neutral gehalten werden - also ohne Jahreszahl - dann kann man sie auch wieder verwenden.

          Ist mein Ansatz für euch nachvollziehbar und für euch richtig?

          Wenn Du es so möchtest. :face_with_rolling_eyes: - Einen komplett anderen Ansatz nämlich in CSV Dateien zu schreiben - bzw. alles automatisch den iobroker erledigen lassen über den SQL Adapter in mySQL zu schreiben, siehst Du am Schluß .

          Würdet ihr alle Jahre in eine JSON Datei schreiben oder besser pro Jahr eine anlegen?

          Aus meiner Sicht fast egal - mit leichter Tendenz alles in eine Datei zu schreiben - dann muss man nichts zusammensuchen

          Wenn alles in einer : Würdet ihr die JSON Liste nach Monaten (a.) oder Jahren (b) aufbauen

          Nach Jahren - dann braucht man es auch nur 1 mal im Jahr wegschreiben. Allerdings nicht mit Jahreszahlen in den Eigenschaften der Objekte

          Also statt sowas

          b. GAS-Month :{ Jan2021:Wert, Feb2021:Wert, Mrz2021:Wert………. u.s.w.}

          :{ Jan2022:Wert, Feb2022:Wert, Mrz2022:Wert ………. u.s.w.}

          dann lieber richtige JSON Objekte schreiben:

          GAS-Month :{2021{Januar:Wert, Februar:Wert, März:Wert, ...},2022{Januar:Wert, Februar:Wert, März:Wert, ...}, ...}

          Das kann man dann auch als JSON String in einen DP schreiben und dann jedes Jahr ergänzen.

          Damit brauchst Du nur die DP Januar-Februar und einen DP Jahr in dem die Jahreszahl drin steht und einen DP in dem Du den gesamten JSON Monatsverbrauch reinschreibst.

          Der DP mit der Jahreszahl triggert Dein Blockly, Flow, Script und einmal im Jahr wird Dein JSON um ein weiteres Jahresobjekt ergänzt. Sprich Du liest den DP - wandelst es in ein JS Objekt um und ergänzt es um ein Jahresobjekt.

          Kann ich gezielt in das JSON Array schreiben oder muss ich das immer gesamt neu zusammensetzten und ablegen

          Du kannst auch ein Array aus Jahresobjekten machen - mir egal - wandelst es dann wieder in JSON String um und schreibst es wieder in DP. Also gezielt kann man ein JSON parsen - in ein JS Array mit Push schreiben und dann stringfy - st Du es wieder. Blockly kann das auch mit Boardmitteln und NodeRed selbstverständlich auch.

          Hat einer zufällig ähnliches gemacht und hat ein Basis JS das ich verwenden könnte.

          Hab ich nicht - aber von einer einfach Alternative mit NodeRed scheinst Du nicht begeistert zu sein.

          Solle jemand einen Lösung mit Blockly habe nehme ich natürlich auch gerne.

          @liv-in-sky hat Dir ja ein Blockly geschrieben - also brauch ich mir da ja keine Mühe mehr zu machen.

          Ich möchte später die verschiedenen Jahre dann nebeneinander zeigen. In meiner handgeführten EXCEL List sieht das so aus

          Nun schreibst Du ja nicht, wie Du es in Zukunft machen willst - ob weiterhin in Excel oder nicht.
          Falls in Excel - dann hab ich hier noch eine Lösung - aber leider wieder in einer von Dir - nach Malen mit Zahlen - implementierten Tool:

          Hier ein fertiger mit bunten Kästchen erstellter Flow ;), der aus bestehenden Datenpunkten in eine CSV Datei schreibt, die man dann in Excel direkt bearbeiten kann - aber das nur am Rande: https://forum.iobroker.net/topic/49120/datenpunkt-in-log-oder-csv-file-schreiben/3?_=1636967115461

          Und zu allerletzt - um noch eine Alternative zu nennen - die eigentlich alles fertig für Dich macht?

          • Warum installierst nicht den History Adapter - oder wie ich das mache - den SQL Adapter schreibst in eine Datenbank. Das gibts schon fix und fertig in iobroker vorbereitet und ist eine Stärke des Systems.
            Ich habe bewusst mySQL genommen - da es hierfür ein Add-In in Excel gibt - dass Dir dann leicht diese Werte in Excel - quasi auf Knopfdruck importieren lässt. Ausserdem kann man dann auch die Grafiktools wie Flot und Grafana nehmen um die Werte direkt - also automatisiert ohne Dazutun in Balkendiagrammen dynamisch anzeigen zu lassen.

          Das aber nur als grundsätzlich Alternativen. So wie Du schreibst - willst Du das alles lieber selbst machen - und hast Dich ja auf JSON Strings festgelegt.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #12

          @mickym sagte in Datenpunkte in JSON aufbereiten:

          Warum installierst nicht den History Adapter - oder wie ich das mache - den SQL Adapter schreibst in eine Datenbank. Das gibts schon fix und fertig in iobroker vorbereitet und ist eine Stärke des Systems.
          Ich habe bewusst mySQL genommen - da es hierfür ein Add-In in Excel gibt - dass Dir dann leicht diese Werte in Excel - quasi auf Knopfdruck importieren lässt. Ausserdem kann man dann auch die Grafiktools wie Flot und Grafana nehmen um die Werte direkt - also automatisiert ohne Dazutun in Balkendiagrammen dynamisch anzeigen zu lassen.

          das hatte ich auch schon vorgeschlagen.
          Ich glaube das war ihm nicht sympathisch
          Das mit den Jahresspezifischen Datenpunkten ist ja kein muss.
          Ich habe für meine Sensoren (Temperatur, Feuchte) einfach nur Datenpunkte, da wird historisiert reingeschrieben, ich glaube nach 2 Jahren werden die Werte dann automatisch weggeschmissen (hab ich so eingestellt)
          Ansonsten frag ich per sql dann die jeweiligen Zeitscheiben individuell ab (letzte 24 Stunden und letzte 30 Tage)

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          mickymM 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @mickym sagte in Datenpunkte in JSON aufbereiten:

            Warum installierst nicht den History Adapter - oder wie ich das mache - den SQL Adapter schreibst in eine Datenbank. Das gibts schon fix und fertig in iobroker vorbereitet und ist eine Stärke des Systems.
            Ich habe bewusst mySQL genommen - da es hierfür ein Add-In in Excel gibt - dass Dir dann leicht diese Werte in Excel - quasi auf Knopfdruck importieren lässt. Ausserdem kann man dann auch die Grafiktools wie Flot und Grafana nehmen um die Werte direkt - also automatisiert ohne Dazutun in Balkendiagrammen dynamisch anzeigen zu lassen.

            das hatte ich auch schon vorgeschlagen.
            Ich glaube das war ihm nicht sympathisch
            Das mit den Jahresspezifischen Datenpunkten ist ja kein muss.
            Ich habe für meine Sensoren (Temperatur, Feuchte) einfach nur Datenpunkte, da wird historisiert reingeschrieben, ich glaube nach 2 Jahren werden die Werte dann automatisch weggeschmissen (hab ich so eingestellt)
            Ansonsten frag ich per sql dann die jeweiligen Zeitscheiben individuell ab (letzte 24 Stunden und letzte 30 Tage)

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #13

            @oliverio sagte in Datenpunkte in JSON aufbereiten:

            Das mit den Jahresspezifischen Datenpunkten ist ja kein muss.

            Na das ist ja das auf was ich hinaus wollte - da hat man mE das System nicht verstanden. Die objekte im iobroker stellen ja nach meinem Verständnis Momentanzustände dar und haben nicht die Aufgabe historische Informationen zu speichen - deshalb war mein Vorschlag ja - man macht neutrale Monatsdatenpunkte (Jan bis Dez) und einen DP für das Jahr. Aus beiden kann ich mir dann JSONs basteln oder eben über das "Zahnrädchen" die Werte wegschreiben lassen, dann braucht man den Datenpunkt für das aktuelle Jahr auch nicht.

            Wenn man dann noch wie Du der SQL Sprache mächtig ist, kann man die Monatsdatenpunkte dann per SQL aus dem Jahr direkt abfragen bzw. so ein Flot oder Grafana macht das ja dann auch automatisch. ;)

            @oliverio sagte in Datenpunkte in JSON aufbereiten:

            Ansonsten frag ich per sql dann die jeweiligen Zeitscheiben individuell ab (letzte 24 Stunden und letzte 30 Tage)

            Nun da gehe ich mal davon aus, dass er momentan diese Verbräuche schon selbst zusammenzählt und als Summe bereits in Datenpunkten speichert. Aber natürlich kann man sich das komplett sparen, wenn in festen Zeitabständen ein DP aktualisiert wird und man dann über SQL Abfrage diese dann aufsummiert.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @oliverio sagte in Datenpunkte in JSON aufbereiten:

              Das mit den Jahresspezifischen Datenpunkten ist ja kein muss.

              Na das ist ja das auf was ich hinaus wollte - da hat man mE das System nicht verstanden. Die objekte im iobroker stellen ja nach meinem Verständnis Momentanzustände dar und haben nicht die Aufgabe historische Informationen zu speichen - deshalb war mein Vorschlag ja - man macht neutrale Monatsdatenpunkte (Jan bis Dez) und einen DP für das Jahr. Aus beiden kann ich mir dann JSONs basteln oder eben über das "Zahnrädchen" die Werte wegschreiben lassen, dann braucht man den Datenpunkt für das aktuelle Jahr auch nicht.

              Wenn man dann noch wie Du der SQL Sprache mächtig ist, kann man die Monatsdatenpunkte dann per SQL aus dem Jahr direkt abfragen bzw. so ein Flot oder Grafana macht das ja dann auch automatisch. ;)

              @oliverio sagte in Datenpunkte in JSON aufbereiten:

              Ansonsten frag ich per sql dann die jeweiligen Zeitscheiben individuell ab (letzte 24 Stunden und letzte 30 Tage)

              Nun da gehe ich mal davon aus, dass er momentan diese Verbräuche schon selbst zusammenzählt und als Summe bereits in Datenpunkten speichert. Aber natürlich kann man sich das komplett sparen, wenn in festen Zeitabständen ein DP aktualisiert wird und man dann über SQL Abfrage diese dann aufsummiert.

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #14

              @mickym sagte in Datenpunkte in JSON aufbereiten:

              man macht neutrale Monatsdatenpunkte (Jan bis Dez)

              warum überhaupt zeitbasierte datenpunkte?

              wie gesagt. die quelle wäre je sensor ein datenpunkt der kontinuierlich alle daten aufzeichnet.
              wenn man es für die visualisierung benötigt, dann könnte man dann per skript solche monatspunkte regelmäßig befüllen. für ein diagramm sollte das diagramm die daten schon korrekt gruppieren und aggregieren .
              in excel und anderen reporting-tools macht man es nicht anders

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              1 Antwort Letzte Antwort
              1
              • liv-in-skyL liv-in-sky

                @moppedman

                ich habe mal ein example:

                • braucht zum test erstmal keine dp
                • im log siehst du die veränderungen
                • in der function wird bei monthlyWrite ist true ein monat geschrieben - bei false ein neues jahr

                Image 12.png

                import blockly:

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
                   <variable id="gE6IpFAUdBy{RO/xsErv">nameV</variable>
                   <variable id="f-0[=jL85-Y/!AP)-w8-">jahr</variable>
                   <variable id="0q@v~EI]%Do0=u.9JKw4">monat</variable>
                   <variable id="(`Woj.y9l#(01@s|bhR3">monatWert</variable>
                   <variable id="Ne!:g3_yXzlXF,X$J|#E">existingArr</variable>
                   <variable id="0FUhve1bqk3sA5(DMK6C">monthlyWrite</variable>
                   <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
                   <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
                 </variables>
                 <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" x="137" y="88">
                   <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                   <value name="VALUE">
                     <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
                       <field name="OPTION">Mts</field>
                       <field name="LANGUAGE">de</field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl">
                       <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                       <value name="VALUE">
                         <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                           <field name="OPTION">custom</field>
                           <field name="FORMAT">JJJJ</field>
                         </block>
                       </value>
                       <next>
                         <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                           <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                           <value name="VALUE">
                             <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                               <value name="VALUE">
                                 <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                                   <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                               <field name="COMMENT">schreibt neues jahr</field>
                               <next>
                                 <block type="debug" id="F/wTao~c7Mf8*[%b1N3h">
                                   <field name="Severity">log</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                                       <mutation name="erstelleJson">
                                         <arg name="nameV"></arg>
                                         <arg name="jahr"></arg>
                                         <arg name="monat"></arg>
                                         <arg name="monatWert"></arg>
                                         <arg name="existingArr"></arg>
                                         <arg name="monthlyWrite"></arg>
                                       </mutation>
                                       <value name="ARG0">
                                         <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                           <field name="TEXT">GAS</field>
                                         </block>
                                       </value>
                                       <value name="ARG1">
                                         <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                           <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                         </block>
                                       </value>
                                       <value name="ARG2">
                                         <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                           <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                         </block>
                                       </value>
                                       <value name="ARG3">
                                         <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                       <value name="ARG4">
                                         <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                           <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                         </block>
                                       </value>
                                       <value name="ARG5">
                                         <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                           <field name="BOOL">FALSE</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                                       <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                       <value name="VALUE">
                                         <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                           <mutation name="erstelleJson">
                                             <arg name="nameV"></arg>
                                             <arg name="jahr"></arg>
                                             <arg name="monat"></arg>
                                             <arg name="monatWert"></arg>
                                             <arg name="existingArr"></arg>
                                             <arg name="monthlyWrite"></arg>
                                           </mutation>
                                           <value name="ARG0">
                                             <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                               <field name="TEXT">GAS</field>
                                             </block>
                                           </value>
                                           <value name="ARG1">
                                             <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                               <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                             </block>
                                           </value>
                                           <value name="ARG2">
                                             <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                               <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                             </block>
                                           </value>
                                           <value name="ARG3">
                                             <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                           <value name="ARG4">
                                             <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                               <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                             </block>
                                           </value>
                                           <value name="ARG5">
                                             <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                               <field name="BOOL">FALSE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                           <field name="COMMENT">schreibt neuen monat</field>
                                           <next>
                                             <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q">
                                               <field name="Severity">log</field>
                                               <value name="TEXT">
                                                 <shadow type="text">
                                                   <field name="TEXT">test</field>
                                                 </shadow>
                                                 <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                                   <mutation name="erstelleJson">
                                                     <arg name="nameV"></arg>
                                                     <arg name="jahr"></arg>
                                                     <arg name="monat"></arg>
                                                     <arg name="monatWert"></arg>
                                                     <arg name="existingArr"></arg>
                                                     <arg name="monthlyWrite"></arg>
                                                   </mutation>
                                                   <value name="ARG0">
                                                     <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                                       <field name="TEXT">GAS</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG1">
                                                     <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                                       <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG2">
                                                     <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                                       <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG3">
                                                     <block type="math_number" id="Rp.*d#R*1;6d$7pn3;3H">
                                                       <field name="NUM">555</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG4">
                                                     <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                           <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="ARG5">
                                                     <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                                       <field name="BOOL">TRUE</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                 <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="787" y="463">
                   <mutation statements="false">
                     <arg name="nameV" varid="gE6IpFAUdBy{RO/xsErv"></arg>
                     <arg name="jahr" varid="f-0[=jL85-Y/!AP)-w8-"></arg>
                     <arg name="monat" varid="0q@v~EI]%Do0=u.9JKw4"></arg>
                     <arg name="monatWert" varid="(`Woj.y9l#(01@s|bhR3"></arg>
                     <arg name="existingArr" varid="Ne!:g3_yXzlXF,X$J|#E"></arg>
                     <arg name="monthlyWrite" varid="0FUhve1bqk3sA5(DMK6C"></arg>
                   </mutation>
                   <field name="NAME">erstelleJson</field>
                   <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
                   <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                 </block>
                </xml>
                

                Image 13.png

                MoppedmanM Offline
                MoppedmanM Offline
                Moppedman
                schrieb am zuletzt editiert von
                #15

                @liv-in-sky

                Kann das und auch deine antwort vorher soweit nachvollziehen. Bei meiner Berechnung der Verbräuche und Kosten bin ich eh in einer Schleife wo ich vorher den Monat abgefragt habe. Daher passt dein Ansatz grundsätzlich gut bei mir rein das in dem jeweiligen Monat zu verarbeiten.

                Habe zum Spielen "month" und "year" sowie den "Verbrauch-Aktuell" frei zugewiesen und dabei festgestellt das beim Schreiben wenn "monthlWrite" TRUE ist der Eintrag sauber überschrieben wird. Landet auch so im Datenpunkt.

                Wenn ich aber den Monat wechsele überschreibt die JS Funktion jedoch auch den Eintrag "month" und legt keinen neuen Monat an.

                a1635ccd-183d-4509-9c80-170587243373-image.png

                In der JS Funktion müsste das m.E. noch ergänzt werden. Richtig ?

                Hier dein angepaßtes Blockly

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="Yo-sR,)1p{%_-AL{/R~8">nameV</variable>
                    <variable id="Cr5y^e0%VvXf5p0V4o4z">jahr</variable>
                    <variable id="}9RkDSspMkUg|wK5$(7/">monat</variable>
                    <variable id="MIyal/kMP;f0$|yy)Gj_">monatWert</variable>
                    <variable id="MViv0:wuz[6T-G3mU_@;">existingArr</variable>
                    <variable id="Gj9bdS9]0Ya@f*[dvE5)">monthlyWrite</variable>
                    <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
                    <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
                    <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
                    <variable id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</variable>
                  </variables>
                  <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="138" y="38">
                    <mutation statements="false">
                      <arg name="nameV" varid="Yo-sR,)1p{%_-AL{/R~8"></arg>
                      <arg name="jahr" varid="Cr5y^e0%VvXf5p0V4o4z"></arg>
                      <arg name="monat" varid="}9RkDSspMkUg|wK5$(7/"></arg>
                      <arg name="monatWert" varid="MIyal/kMP;f0$|yy)Gj_"></arg>
                      <arg name="existingArr" varid="MViv0:wuz[6T-G3mU_@;"></arg>
                      <arg name="monthlyWrite" varid="Gj9bdS9]0Ya@f*[dvE5)"></arg>
                    </mutation>
                    <field name="NAME">erstelleJson</field>
                    <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                  </block>
                  <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" disabled="true" x="138" y="113">
                    <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                    <value name="VALUE">
                      <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
                        <field name="OPTION">Mts</field>
                        <field name="LANGUAGE">de</field>
                      </block>
                    </value>
                    <next>
                      <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl" disabled="true">
                        <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                        <value name="VALUE">
                          <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                            <field name="OPTION">custom</field>
                            <field name="FORMAT">JJJJ</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="A~yViSGHr1aSMLhdP445">
                            <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                            <value name="VALUE">
                              <block type="text" id="y/W}(q8;In@aNZ|g4Y4{">
                                <field name="TEXT">Dez</field>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="i`=@98oNknyec#Bd@]Q;">
                                <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                <value name="VALUE">
                                  <block type="math_number" id="{5$bMgJnDvM:P*[g9IDG">
                                    <field name="NUM">2021</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                                    <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                    <value name="VALUE">
                                      <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                                        <value name="VALUE">
                                          <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                                            <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="variables_set" id="FFZbmZO3E?)b%x:RW!5K">
                                        <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                        <value name="VALUE">
                                          <block type="math_number" id="z^{r%aAV(@jpFbcLQI4d">
                                            <field name="NUM">888</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                                            <field name="COMMENT">schreibt neues jahr</field>
                                            <next>
                                              <block type="debug" id="F/wTao~c7Mf8*[%b1N3h">
                                                <field name="Severity">log</field>
                                                <value name="TEXT">
                                                  <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                                                    <field name="TEXT">test</field>
                                                  </shadow>
                                                  <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                                                    <mutation name="erstelleJson">
                                                      <arg name="nameV"></arg>
                                                      <arg name="jahr"></arg>
                                                      <arg name="monat"></arg>
                                                      <arg name="monatWert"></arg>
                                                      <arg name="existingArr"></arg>
                                                      <arg name="monthlyWrite"></arg>
                                                    </mutation>
                                                    <value name="ARG0">
                                                      <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                                        <field name="TEXT">GAS</field>
                                                      </block>
                                                    </value>
                                                    <value name="ARG1">
                                                      <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                                        <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                      </block>
                                                    </value>
                                                    <value name="ARG2">
                                                      <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                                        <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                      </block>
                                                    </value>
                                                    <value name="ARG3">
                                                      <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                                        <field name="NUM">0</field>
                                                      </block>
                                                    </value>
                                                    <value name="ARG4">
                                                      <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                                        <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                      </block>
                                                    </value>
                                                    <value name="ARG5">
                                                      <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                                        <field name="BOOL">FALSE</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                                                    <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                    <value name="VALUE">
                                                      <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                                        <mutation name="erstelleJson">
                                                          <arg name="nameV"></arg>
                                                          <arg name="jahr"></arg>
                                                          <arg name="monat"></arg>
                                                          <arg name="monatWert"></arg>
                                                          <arg name="existingArr"></arg>
                                                          <arg name="monthlyWrite"></arg>
                                                        </mutation>
                                                        <value name="ARG0">
                                                          <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                                            <field name="TEXT">GAS</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG1">
                                                          <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                                            <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG2">
                                                          <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                                            <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG3">
                                                          <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                                            <field name="NUM">0</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG4">
                                                          <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                                            <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                          </block>
                                                        </value>
                                                        <value name="ARG5">
                                                          <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                                            <field name="BOOL">FALSE</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                                        <field name="COMMENT">schreibt neuen monat</field>
                                                        <next>
                                                          <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q">
                                                            <field name="Severity">log</field>
                                                            <value name="TEXT">
                                                              <shadow type="text">
                                                                <field name="TEXT">test</field>
                                                              </shadow>
                                                              <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                                                <mutation name="erstelleJson">
                                                                  <arg name="nameV"></arg>
                                                                  <arg name="jahr"></arg>
                                                                  <arg name="monat"></arg>
                                                                  <arg name="monatWert"></arg>
                                                                  <arg name="existingArr"></arg>
                                                                  <arg name="monthlyWrite"></arg>
                                                                </mutation>
                                                                <value name="ARG0">
                                                                  <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                                                    <field name="TEXT">GAS</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ARG1">
                                                                  <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                                                    <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ARG2">
                                                                  <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                                                    <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ARG3">
                                                                  <block type="variables_get" id="hjwO*`5{h;D1I[cjKA5;">
                                                                    <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ARG4">
                                                                  <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                                                    <value name="VALUE">
                                                                      <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                                        <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <value name="ARG5">
                                                                  <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                                                    <field name="BOOL">TRUE</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <next>
                                                              <block type="variables_set" id="/cKRsM4Q3stuVb^RvSJl">
                                                                <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                <value name="VALUE">
                                                                  <block type="procedures_callcustomreturn" id="DR`ri2.2z:;a*loZR6]j">
                                                                    <mutation name="erstelleJson">
                                                                      <arg name="nameV"></arg>
                                                                      <arg name="jahr"></arg>
                                                                      <arg name="monat"></arg>
                                                                      <arg name="monatWert"></arg>
                                                                      <arg name="existingArr"></arg>
                                                                      <arg name="monthlyWrite"></arg>
                                                                    </mutation>
                                                                    <value name="ARG0">
                                                                      <block type="text" id="N8#fAS%epe7XzvK$?po(">
                                                                        <field name="TEXT">GAS</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="ARG1">
                                                                      <block type="variables_get" id="j~BAJ_fkAx.xgI4[qUkk">
                                                                        <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="ARG2">
                                                                      <block type="variables_get" id="uyH~onV:(^v;T?8Y:vs[">
                                                                        <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="ARG3">
                                                                      <block type="variables_get" id="5dQCR2dIxZ+0[_o:GRLa">
                                                                        <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="ARG4">
                                                                      <block type="convert_json2object" id="8[ulx%`tyk9n|AY9];)f">
                                                                        <value name="VALUE">
                                                                          <block type="variables_get" id="x}`NAoH6sE:M;VTPJOxz">
                                                                            <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <value name="ARG5">
                                                                      <block type="logic_boolean" id="7m]4k/i+8T}WIJw?CTho">
                                                                        <field name="BOOL">TRUE</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <next>
                                                                  <block type="update" id="s|8:iMvK7wb$%Sj(Z7u]">
                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                    <field name="OID">0_userdata.0.KOR-DatenPunkte.Test-Ordner.Gas-Verbrauch_JSON</field>
                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                    <value name="VALUE">
                                                                      <block type="convert_json2object" id="8ej}[w(cn_%4!9J+UsEL">
                                                                        <value name="VALUE">
                                                                          <block type="variables_get" id="]Ty%$wPPgi~~w_|}Hj[+">
                                                                            <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </next>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </xml>
                

                Gruß aus dem rheinischen

                liv-in-skyL 1 Antwort Letzte Antwort
                0
                • MoppedmanM Moppedman

                  @liv-in-sky

                  Kann das und auch deine antwort vorher soweit nachvollziehen. Bei meiner Berechnung der Verbräuche und Kosten bin ich eh in einer Schleife wo ich vorher den Monat abgefragt habe. Daher passt dein Ansatz grundsätzlich gut bei mir rein das in dem jeweiligen Monat zu verarbeiten.

                  Habe zum Spielen "month" und "year" sowie den "Verbrauch-Aktuell" frei zugewiesen und dabei festgestellt das beim Schreiben wenn "monthlWrite" TRUE ist der Eintrag sauber überschrieben wird. Landet auch so im Datenpunkt.

                  Wenn ich aber den Monat wechsele überschreibt die JS Funktion jedoch auch den Eintrag "month" und legt keinen neuen Monat an.

                  a1635ccd-183d-4509-9c80-170587243373-image.png

                  In der JS Funktion müsste das m.E. noch ergänzt werden. Richtig ?

                  Hier dein angepaßtes Blockly

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <variables>
                      <variable id="Yo-sR,)1p{%_-AL{/R~8">nameV</variable>
                      <variable id="Cr5y^e0%VvXf5p0V4o4z">jahr</variable>
                      <variable id="}9RkDSspMkUg|wK5$(7/">monat</variable>
                      <variable id="MIyal/kMP;f0$|yy)Gj_">monatWert</variable>
                      <variable id="MViv0:wuz[6T-G3mU_@;">existingArr</variable>
                      <variable id="Gj9bdS9]0Ya@f*[dvE5)">monthlyWrite</variable>
                      <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
                      <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
                      <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
                      <variable id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</variable>
                    </variables>
                    <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="138" y="38">
                      <mutation statements="false">
                        <arg name="nameV" varid="Yo-sR,)1p{%_-AL{/R~8"></arg>
                        <arg name="jahr" varid="Cr5y^e0%VvXf5p0V4o4z"></arg>
                        <arg name="monat" varid="}9RkDSspMkUg|wK5$(7/"></arg>
                        <arg name="monatWert" varid="MIyal/kMP;f0$|yy)Gj_"></arg>
                        <arg name="existingArr" varid="MViv0:wuz[6T-G3mU_@;"></arg>
                        <arg name="monthlyWrite" varid="Gj9bdS9]0Ya@f*[dvE5)"></arg>
                      </mutation>
                      <field name="NAME">erstelleJson</field>
                      <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    </block>
                    <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" disabled="true" x="138" y="113">
                      <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                      <value name="VALUE">
                        <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
                          <field name="OPTION">Mts</field>
                          <field name="LANGUAGE">de</field>
                        </block>
                      </value>
                      <next>
                        <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl" disabled="true">
                          <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                          <value name="VALUE">
                            <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                              <field name="OPTION">custom</field>
                              <field name="FORMAT">JJJJ</field>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="A~yViSGHr1aSMLhdP445">
                              <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                              <value name="VALUE">
                                <block type="text" id="y/W}(q8;In@aNZ|g4Y4{">
                                  <field name="TEXT">Dez</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="i`=@98oNknyec#Bd@]Q;">
                                  <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="{5$bMgJnDvM:P*[g9IDG">
                                      <field name="NUM">2021</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                                      <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                      <value name="VALUE">
                                        <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                                          <value name="VALUE">
                                            <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                                              <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="FFZbmZO3E?)b%x:RW!5K">
                                          <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="z^{r%aAV(@jpFbcLQI4d">
                                              <field name="NUM">888</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                                              <field name="COMMENT">schreibt neues jahr</field>
                                              <next>
                                                <block type="debug" id="F/wTao~c7Mf8*[%b1N3h">
                                                  <field name="Severity">log</field>
                                                  <value name="TEXT">
                                                    <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                                                      <field name="TEXT">test</field>
                                                    </shadow>
                                                    <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                                                      <mutation name="erstelleJson">
                                                        <arg name="nameV"></arg>
                                                        <arg name="jahr"></arg>
                                                        <arg name="monat"></arg>
                                                        <arg name="monatWert"></arg>
                                                        <arg name="existingArr"></arg>
                                                        <arg name="monthlyWrite"></arg>
                                                      </mutation>
                                                      <value name="ARG0">
                                                        <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                                          <field name="TEXT">GAS</field>
                                                        </block>
                                                      </value>
                                                      <value name="ARG1">
                                                        <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                                          <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                        </block>
                                                      </value>
                                                      <value name="ARG2">
                                                        <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                                          <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                        </block>
                                                      </value>
                                                      <value name="ARG3">
                                                        <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                                          <field name="NUM">0</field>
                                                        </block>
                                                      </value>
                                                      <value name="ARG4">
                                                        <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                                          <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                        </block>
                                                      </value>
                                                      <value name="ARG5">
                                                        <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                                          <field name="BOOL">FALSE</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                                                      <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                      <value name="VALUE">
                                                        <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                                          <mutation name="erstelleJson">
                                                            <arg name="nameV"></arg>
                                                            <arg name="jahr"></arg>
                                                            <arg name="monat"></arg>
                                                            <arg name="monatWert"></arg>
                                                            <arg name="existingArr"></arg>
                                                            <arg name="monthlyWrite"></arg>
                                                          </mutation>
                                                          <value name="ARG0">
                                                            <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                                              <field name="TEXT">GAS</field>
                                                            </block>
                                                          </value>
                                                          <value name="ARG1">
                                                            <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                                              <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                            </block>
                                                          </value>
                                                          <value name="ARG2">
                                                            <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                                              <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                            </block>
                                                          </value>
                                                          <value name="ARG3">
                                                            <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                                              <field name="NUM">0</field>
                                                            </block>
                                                          </value>
                                                          <value name="ARG4">
                                                            <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                                              <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                            </block>
                                                          </value>
                                                          <value name="ARG5">
                                                            <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                                              <field name="BOOL">FALSE</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                                          <field name="COMMENT">schreibt neuen monat</field>
                                                          <next>
                                                            <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q">
                                                              <field name="Severity">log</field>
                                                              <value name="TEXT">
                                                                <shadow type="text">
                                                                  <field name="TEXT">test</field>
                                                                </shadow>
                                                                <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                                                  <mutation name="erstelleJson">
                                                                    <arg name="nameV"></arg>
                                                                    <arg name="jahr"></arg>
                                                                    <arg name="monat"></arg>
                                                                    <arg name="monatWert"></arg>
                                                                    <arg name="existingArr"></arg>
                                                                    <arg name="monthlyWrite"></arg>
                                                                  </mutation>
                                                                  <value name="ARG0">
                                                                    <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                                                      <field name="TEXT">GAS</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ARG1">
                                                                    <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                                                      <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ARG2">
                                                                    <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                                                      <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ARG3">
                                                                    <block type="variables_get" id="hjwO*`5{h;D1I[cjKA5;">
                                                                      <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ARG4">
                                                                    <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                                                      <value name="VALUE">
                                                                        <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                                          <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ARG5">
                                                                    <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                                                      <field name="BOOL">TRUE</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="variables_set" id="/cKRsM4Q3stuVb^RvSJl">
                                                                  <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                  <value name="VALUE">
                                                                    <block type="procedures_callcustomreturn" id="DR`ri2.2z:;a*loZR6]j">
                                                                      <mutation name="erstelleJson">
                                                                        <arg name="nameV"></arg>
                                                                        <arg name="jahr"></arg>
                                                                        <arg name="monat"></arg>
                                                                        <arg name="monatWert"></arg>
                                                                        <arg name="existingArr"></arg>
                                                                        <arg name="monthlyWrite"></arg>
                                                                      </mutation>
                                                                      <value name="ARG0">
                                                                        <block type="text" id="N8#fAS%epe7XzvK$?po(">
                                                                          <field name="TEXT">GAS</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ARG1">
                                                                        <block type="variables_get" id="j~BAJ_fkAx.xgI4[qUkk">
                                                                          <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ARG2">
                                                                        <block type="variables_get" id="uyH~onV:(^v;T?8Y:vs[">
                                                                          <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ARG3">
                                                                        <block type="variables_get" id="5dQCR2dIxZ+0[_o:GRLa">
                                                                          <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ARG4">
                                                                        <block type="convert_json2object" id="8[ulx%`tyk9n|AY9];)f">
                                                                          <value name="VALUE">
                                                                            <block type="variables_get" id="x}`NAoH6sE:M;VTPJOxz">
                                                                              <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ARG5">
                                                                        <block type="logic_boolean" id="7m]4k/i+8T}WIJw?CTho">
                                                                          <field name="BOOL">TRUE</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="update" id="s|8:iMvK7wb$%Sj(Z7u]">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                      <field name="OID">0_userdata.0.KOR-DatenPunkte.Test-Ordner.Gas-Verbrauch_JSON</field>
                                                                      <field name="WITH_DELAY">FALSE</field>
                                                                      <value name="VALUE">
                                                                        <block type="convert_json2object" id="8ej}[w(cn_%4!9J+UsEL">
                                                                          <value name="VALUE">
                                                                            <block type="variables_get" id="]Ty%$wPPgi~~w_|}Hj[+">
                                                                              <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </xml>
                  
                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von liv-in-sky
                  #16

                  @moppedman

                  verstehe noch nicht, was nicht funktioniert

                  Image 3.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="Yo-sR,)1p{%_-AL{/R~8">nameV</variable>
                     <variable id="Cr5y^e0%VvXf5p0V4o4z">jahr</variable>
                     <variable id="}9RkDSspMkUg|wK5$(7/">monat</variable>
                     <variable id="MIyal/kMP;f0$|yy)Gj_">monatWert</variable>
                     <variable id="MViv0:wuz[6T-G3mU_@;">existingArr</variable>
                     <variable id="Gj9bdS9]0Ya@f*[dvE5)">monthlyWrite</variable>
                     <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
                     <variable id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</variable>
                     <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
                     <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
                   </variables>
                   <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="138" y="38">
                     <mutation statements="false">
                       <arg name="nameV" varid="Yo-sR,)1p{%_-AL{/R~8"></arg>
                       <arg name="jahr" varid="Cr5y^e0%VvXf5p0V4o4z"></arg>
                       <arg name="monat" varid="}9RkDSspMkUg|wK5$(7/"></arg>
                       <arg name="monatWert" varid="MIyal/kMP;f0$|yy)Gj_"></arg>
                       <arg name="existingArr" varid="MViv0:wuz[6T-G3mU_@;"></arg>
                       <arg name="monthlyWrite" varid="Gj9bdS9]0Ya@f*[dvE5)"></arg>
                     </mutation>
                     <field name="NAME">erstelleJson</field>
                     <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                   </block>
                   <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" disabled="true" x="138" y="113">
                     <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                     <value name="VALUE">
                       <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
                         <field name="OPTION">Mts</field>
                         <field name="LANGUAGE">de</field>
                       </block>
                     </value>
                     <next>
                       <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl" disabled="true">
                         <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                         <value name="VALUE">
                           <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                             <field name="OPTION">custom</field>
                             <field name="FORMAT">JJJJ</field>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="A~yViSGHr1aSMLhdP445">
                             <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                             <value name="VALUE">
                               <block type="text" id="y/W}(q8;In@aNZ|g4Y4{">
                                 <field name="TEXT">Dez</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="i`=@98oNknyec#Bd@]Q;">
                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                 <value name="VALUE">
                                   <block type="math_number" id="{5$bMgJnDvM:P*[g9IDG">
                                     <field name="NUM">2021</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                     <value name="VALUE">
                                       <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                                         <value name="VALUE">
                                           <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                                             <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="FFZbmZO3E?)b%x:RW!5K">
                                         <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                         <value name="VALUE">
                                           <block type="math_number" id="z^{r%aAV(@jpFbcLQI4d">
                                             <field name="NUM">888</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="debug" id=".($:#xIaM,N@G,Sp)VXF">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="9L#b(,Q%Wm(%3(y88J{C">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="text_join" id="3IRU.W`Ul#_VrB7fDniB">
                                                 <mutation items="2"></mutation>
                                                 <value name="ADD0">
                                                   <block type="text" id="1x~=SSJOAOT|fFo%|^iW">
                                                     <field name="TEXT">ist - am anfang ... </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="variables_get" id="(tGTyH#dq+cZ}=~VVYVF">
                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                                                 <field name="COMMENT">schreibt neues jahr</field>
                                                 <next>
                                                   <block type="debug" id="F/wTao~c7Mf8*[%b1N3h" disabled="true">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                                                         <mutation name="erstelleJson">
                                                           <arg name="nameV"></arg>
                                                           <arg name="jahr"></arg>
                                                           <arg name="monat"></arg>
                                                           <arg name="monatWert"></arg>
                                                           <arg name="existingArr"></arg>
                                                           <arg name="monthlyWrite"></arg>
                                                         </mutation>
                                                         <value name="ARG0">
                                                           <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                                             <field name="TEXT">GAS</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG1">
                                                           <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                                             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG2">
                                                           <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                                             <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG3">
                                                           <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                                             <field name="NUM">0</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG4">
                                                           <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                           </block>
                                                         </value>
                                                         <value name="ARG5">
                                                           <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                                             <field name="BOOL">FALSE</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                         <value name="VALUE">
                                                           <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                                             <mutation name="erstelleJson">
                                                               <arg name="nameV"></arg>
                                                               <arg name="jahr"></arg>
                                                               <arg name="monat"></arg>
                                                               <arg name="monatWert"></arg>
                                                               <arg name="existingArr"></arg>
                                                               <arg name="monthlyWrite"></arg>
                                                             </mutation>
                                                             <value name="ARG0">
                                                               <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                                                 <field name="TEXT">GAS</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG1">
                                                               <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG2">
                                                               <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG3">
                                                               <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                                                 <field name="NUM">0</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG4">
                                                               <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG5">
                                                               <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                                                 <field name="BOOL">FALSE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id=".bJ[,cYO^gl3U/tTriWn">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text" id="6|EUM=zUmLuBxa/gn2wx">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="text_join" id="qxP~,X!tHdAwq]~Ij=pe">
                                                                 <mutation items="2"></mutation>
                                                                 <value name="ADD0">
                                                                   <block type="text" id="MKQu-RvBq/@zdTQ.?vL7">
                                                                     <field name="TEXT">plus jahr ... </field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ADD1">
                                                                   <block type="variables_get" id="ZBfbV}J0luIi`6hrV)1_">
                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                                                 <field name="COMMENT">schreibt neuen monat</field>
                                                                 <next>
                                                                   <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q" disabled="true">
                                                                     <field name="Severity">log</field>
                                                                     <value name="TEXT">
                                                                       <shadow type="text">
                                                                         <field name="TEXT">test</field>
                                                                       </shadow>
                                                                       <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                                                         <mutation name="erstelleJson">
                                                                           <arg name="nameV"></arg>
                                                                           <arg name="jahr"></arg>
                                                                           <arg name="monat"></arg>
                                                                           <arg name="monatWert"></arg>
                                                                           <arg name="existingArr"></arg>
                                                                           <arg name="monthlyWrite"></arg>
                                                                         </mutation>
                                                                         <value name="ARG0">
                                                                           <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                                                             <field name="TEXT">GAS</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ARG1">
                                                                           <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                                                             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ARG2">
                                                                           <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                                                             <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ARG3">
                                                                           <block type="variables_get" id="hjwO*`5{h;D1I[cjKA5;">
                                                                             <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ARG4">
                                                                           <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                                                             <value name="VALUE">
                                                                               <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ARG5">
                                                                           <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                                                             <field name="BOOL">TRUE</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <next>
                                                                       <block type="variables_set" id="/cKRsM4Q3stuVb^RvSJl">
                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                         <value name="VALUE">
                                                                           <block type="procedures_callcustomreturn" id="DR`ri2.2z:;a*loZR6]j">
                                                                             <mutation name="erstelleJson">
                                                                               <arg name="nameV"></arg>
                                                                               <arg name="jahr"></arg>
                                                                               <arg name="monat"></arg>
                                                                               <arg name="monatWert"></arg>
                                                                               <arg name="existingArr"></arg>
                                                                               <arg name="monthlyWrite"></arg>
                                                                             </mutation>
                                                                             <value name="ARG0">
                                                                               <block type="text" id="N8#fAS%epe7XzvK$?po(">
                                                                                 <field name="TEXT">GAS</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG1">
                                                                               <block type="variables_get" id="j~BAJ_fkAx.xgI4[qUkk">
                                                                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG2">
                                                                               <block type="variables_get" id="uyH~onV:(^v;T?8Y:vs[">
                                                                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG3">
                                                                               <block type="variables_get" id="5dQCR2dIxZ+0[_o:GRLa">
                                                                                 <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG4">
                                                                               <block type="convert_json2object" id="8[ulx%`tyk9n|AY9];)f">
                                                                                 <value name="VALUE">
                                                                                   <block type="variables_get" id="x}`NAoH6sE:M;VTPJOxz">
                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG5">
                                                                               <block type="logic_boolean" id="7m]4k/i+8T}WIJw?CTho">
                                                                                 <field name="BOOL">TRUE</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <next>
                                                                           <block type="debug" id="Y([zpWpDM[r:W[D)cdu|">
                                                                             <field name="Severity">log</field>
                                                                             <value name="TEXT">
                                                                               <shadow type="text" id="1-ku,~f-/Jy[wrlWC^nb">
                                                                                 <field name="TEXT">test</field>
                                                                               </shadow>
                                                                               <block type="text_join" id="im!CaMr%`D9]L],6MDa-">
                                                                                 <mutation items="2"></mutation>
                                                                                 <value name="ADD0">
                                                                                   <block type="text" id="_]{QyDNIre1;:c=MDD$.">
                                                                                     <field name="TEXT">plus Dez ... </field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ADD1">
                                                                                   <block type="variables_get" id="t#wdE}i+ZaZG[EYtEj%b">
                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <next>
                                                                               <block type="variables_set" id="mm`1RMvi)`#:npnVgMbg">
                                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                 <value name="VALUE">
                                                                                   <block type="procedures_callcustomreturn" id="F)7B?X/Mzb}dEP9APu3O">
                                                                                     <mutation name="erstelleJson">
                                                                                       <arg name="nameV"></arg>
                                                                                       <arg name="jahr"></arg>
                                                                                       <arg name="monat"></arg>
                                                                                       <arg name="monatWert"></arg>
                                                                                       <arg name="existingArr"></arg>
                                                                                       <arg name="monthlyWrite"></arg>
                                                                                     </mutation>
                                                                                     <value name="ARG0">
                                                                                       <block type="text" id="7SrPihbOwyTGa}ub0M47">
                                                                                         <field name="TEXT">GAS</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ARG1">
                                                                                       <block type="variables_get" id="(wN)tThS*Rg:zPpZ|NcU">
                                                                                         <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ARG2">
                                                                                       <block type="text" id="DX?W*vzUM_#=(gO3tXkW">
                                                                                         <field name="TEXT">Jan</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ARG3">
                                                                                       <block type="math_number" id="F[AcwvIO/mwaw}2E=7(j">
                                                                                         <field name="NUM">999</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ARG4">
                                                                                       <block type="convert_json2object" id="VGt~U[;Hv#HA9hq/?WYb">
                                                                                         <value name="VALUE">
                                                                                           <block type="variables_get" id="aRof?P$tZiY/;8kDmG+/">
                                                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                           </block>
                                                                                         </value>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ARG5">
                                                                                       <block type="logic_boolean" id="2=R3XC12;d7q6.Z|Vx!@">
                                                                                         <field name="BOOL">TRUE</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <next>
                                                                                   <block type="debug" id="}Fcf1x}$o.~S[NK4#xIi">
                                                                                     <field name="Severity">log</field>
                                                                                     <value name="TEXT">
                                                                                       <shadow type="text" id="~Jj#vY2}=y|;-hnvYk0m">
                                                                                         <field name="TEXT">test</field>
                                                                                       </shadow>
                                                                                       <block type="text_join" id="RRa[kxP*d+6=igUC3~O!">
                                                                                         <mutation items="2"></mutation>
                                                                                         <value name="ADD0">
                                                                                           <block type="text" id="dqa^Y.%jE^0vKe`mE$[m">
                                                                                             <field name="TEXT">plus Jan ... </field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ADD1">
                                                                                           <block type="variables_get" id="4R:PFDAN[se=|R[prq~f">
                                                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                           </block>
                                                                                         </value>
                                                                                       </block>
                                                                                     </value>
                                                                                     <next>
                                                                                       <block type="variables_set" id="@A)d9|O|^8E7CR[Vp$-J">
                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                         <value name="VALUE">
                                                                                           <block type="procedures_callcustomreturn" id="TI@o-CnM7f0bwMT2OMSL">
                                                                                             <mutation name="erstelleJson">
                                                                                               <arg name="nameV"></arg>
                                                                                               <arg name="jahr"></arg>
                                                                                               <arg name="monat"></arg>
                                                                                               <arg name="monatWert"></arg>
                                                                                               <arg name="existingArr"></arg>
                                                                                               <arg name="monthlyWrite"></arg>
                                                                                             </mutation>
                                                                                             <value name="ARG0">
                                                                                               <block type="text" id="B(CKRceHi{l?da5WX.X4">
                                                                                                 <field name="TEXT">GAS</field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ARG1">
                                                                                               <block type="text" id="4.Q`$jIt)1T+{Yl[e%)p">
                                                                                                 <field name="TEXT">2020</field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ARG2">
                                                                                               <block type="text" id=",UkU;)qw8W]g1ANC0.5F">
                                                                                                 <field name="TEXT">Nov</field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ARG3">
                                                                                               <block type="math_number" id="YHIz}Qn/LKrZiBxz%@++">
                                                                                                 <field name="NUM">111</field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ARG4">
                                                                                               <block type="convert_json2object" id="?J=lUX!g{}aCW{*VGijZ">
                                                                                                 <value name="VALUE">
                                                                                                   <block type="variables_get" id="]BULU3|%z?,#div?}f|-">
                                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ARG5">
                                                                                               <block type="logic_boolean" id="f_#TILv}k[8M9Brndt$,">
                                                                                                 <field name="BOOL">TRUE</field>
                                                                                               </block>
                                                                                             </value>
                                                                                           </block>
                                                                                         </value>
                                                                                         <next>
                                                                                           <block type="debug" id="u7HA2NPRL)Q-:Cg!%nT(">
                                                                                             <field name="Severity">log</field>
                                                                                             <value name="TEXT">
                                                                                               <shadow type="text">
                                                                                                 <field name="TEXT">test</field>
                                                                                               </shadow>
                                                                                               <block type="text_join" id="V``[(4az-!XCEDSwAl,N">
                                                                                                 <mutation items="2"></mutation>
                                                                                                 <value name="ADD0">
                                                                                                   <block type="text" id="yDs~U(?sHsxBRLYeXLuz">
                                                                                                     <field name="TEXT">plus Nov 2020 ... </field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ADD1">
                                                                                                   <block type="variables_get" id=":WV}yjHREXxD{~=Maohu">
                                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                               </block>
                                                                                             </value>
                                                                                             <next>
                                                                                               <block type="update" id="s|8:iMvK7wb$%Sj(Z7u]">
                                                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                 <field name="OID">0_userdata.0.KOR-DatenPunkte.Test-Ordner.Gas-Verbrauch_JSON</field>
                                                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                                                 <value name="VALUE">
                                                                                                   <block type="variables_get" id="^U^Yc*c(bjc$Qk:%Xz0@">
                                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                               </block>
                                                                                             </next>
                                                                                           </block>
                                                                                         </next>
                                                                                       </block>
                                                                                     </next>
                                                                                   </block>
                                                                                 </next>
                                                                               </block>
                                                                             </next>
                                                                           </block>
                                                                         </next>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                   <block type="convert_json2object" id="8ej}[w(cn_%4!9J+UsEL" disabled="true" x="912" y="1162"></block>
                   <block type="variables_get" id="N@0h]LKD5ngjO^jtBDGy" disabled="true" x="937" y="1288">
                     <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                   </block>
                   <block type="variables_get" id="v=01~P)1GzgYiF*Ilr:}" disabled="true" x="913" y="1312">
                     <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                   </block>
                   <block type="text" id="pHO5*B=MNVP/*6QWi^S5" x="528" y="1791">
                     <field name="TEXT">GAS</field>
                   </block>
                  </xml>
                  

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  MoppedmanM 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @moppedman sagte in Datenpunkte in JSON aufbereiten:

                    Hi @mickym

                    das letzte was ich will, ist mich hier im Forum in meiner Freizeit zu streiten. Wie gesagt habe ich keine Erfahrung mit NodeRed und wenn du gute Erfahrungen damit hast ist es doch gut. Ich wollte mit meiner Antwort KEINEN Versuch starten NodeRed schlecht zu reden oder dir madig zu machen.

                    Kam halt auch schräg rüber - weil Du dann noch mit "30 Jahren Assembler & Pascal programmiert" - wohl Deine Kompetenz unterstreichst. Deshalb habe ich entsprechend geantwortet, dass ich vor 30 Jahren zum Organistationsprogrammierer mit entsprechenden Sprachen ausgebildet wurde. Solche Kompetenzspielchen kommen bei mir nu mal schlecht an.

                    Wenn du dir meine Fragen anschaust geht es dort vorrangig um einen sinnvollen Aufbau des JSON Array und nicht die Programiersprache mit der ich es beschreibe. Wenn du mir da helfen könntest würde ich mich freuen.

                    Gruß Ralf

                    Ich habe nur gesagt, dass mit NR der Aufbau aus einem Javascript Objekt eben mit bestimmten Nodes sehr einfach zu realisieren ist.
                    Grundsätzlich würde ich das JSON anders aufbauen - Du machst ja aus dem JSON mit Deinen Vorschlägen nur halb Gebrauch:
                    Die Datenpunkte der Monate müssen neutral gehalten werden - also ohne Jahreszahl - dann kann man sie auch wieder verwenden.

                    Ist mein Ansatz für euch nachvollziehbar und für euch richtig?

                    Wenn Du es so möchtest. :face_with_rolling_eyes: - Einen komplett anderen Ansatz nämlich in CSV Dateien zu schreiben - bzw. alles automatisch den iobroker erledigen lassen über den SQL Adapter in mySQL zu schreiben, siehst Du am Schluß .

                    Würdet ihr alle Jahre in eine JSON Datei schreiben oder besser pro Jahr eine anlegen?

                    Aus meiner Sicht fast egal - mit leichter Tendenz alles in eine Datei zu schreiben - dann muss man nichts zusammensuchen

                    Wenn alles in einer : Würdet ihr die JSON Liste nach Monaten (a.) oder Jahren (b) aufbauen

                    Nach Jahren - dann braucht man es auch nur 1 mal im Jahr wegschreiben. Allerdings nicht mit Jahreszahlen in den Eigenschaften der Objekte

                    Also statt sowas

                    b. GAS-Month :{ Jan2021:Wert, Feb2021:Wert, Mrz2021:Wert………. u.s.w.}

                    :{ Jan2022:Wert, Feb2022:Wert, Mrz2022:Wert ………. u.s.w.}

                    dann lieber richtige JSON Objekte schreiben:

                    GAS-Month :{2021{Januar:Wert, Februar:Wert, März:Wert, ...},2022{Januar:Wert, Februar:Wert, März:Wert, ...}, ...}

                    Das kann man dann auch als JSON String in einen DP schreiben und dann jedes Jahr ergänzen.

                    Damit brauchst Du nur die DP Januar-Februar und einen DP Jahr in dem die Jahreszahl drin steht und einen DP in dem Du den gesamten JSON Monatsverbrauch reinschreibst.

                    Der DP mit der Jahreszahl triggert Dein Blockly, Flow, Script und einmal im Jahr wird Dein JSON um ein weiteres Jahresobjekt ergänzt. Sprich Du liest den DP - wandelst es in ein JS Objekt um und ergänzt es um ein Jahresobjekt.

                    Kann ich gezielt in das JSON Array schreiben oder muss ich das immer gesamt neu zusammensetzten und ablegen

                    Du kannst auch ein Array aus Jahresobjekten machen - mir egal - wandelst es dann wieder in JSON String um und schreibst es wieder in DP. Also gezielt kann man ein JSON parsen - in ein JS Array mit Push schreiben und dann stringfy - st Du es wieder. Blockly kann das auch mit Boardmitteln und NodeRed selbstverständlich auch.

                    Hat einer zufällig ähnliches gemacht und hat ein Basis JS das ich verwenden könnte.

                    Hab ich nicht - aber von einer einfach Alternative mit NodeRed scheinst Du nicht begeistert zu sein.

                    Solle jemand einen Lösung mit Blockly habe nehme ich natürlich auch gerne.

                    @liv-in-sky hat Dir ja ein Blockly geschrieben - also brauch ich mir da ja keine Mühe mehr zu machen.

                    Ich möchte später die verschiedenen Jahre dann nebeneinander zeigen. In meiner handgeführten EXCEL List sieht das so aus

                    Nun schreibst Du ja nicht, wie Du es in Zukunft machen willst - ob weiterhin in Excel oder nicht.
                    Falls in Excel - dann hab ich hier noch eine Lösung - aber leider wieder in einer von Dir - nach Malen mit Zahlen - implementierten Tool:

                    Hier ein fertiger mit bunten Kästchen erstellter Flow ;), der aus bestehenden Datenpunkten in eine CSV Datei schreibt, die man dann in Excel direkt bearbeiten kann - aber das nur am Rande: https://forum.iobroker.net/topic/49120/datenpunkt-in-log-oder-csv-file-schreiben/3?_=1636967115461

                    Und zu allerletzt - um noch eine Alternative zu nennen - die eigentlich alles fertig für Dich macht?

                    • Warum installierst nicht den History Adapter - oder wie ich das mache - den SQL Adapter schreibst in eine Datenbank. Das gibts schon fix und fertig in iobroker vorbereitet und ist eine Stärke des Systems.
                      Ich habe bewusst mySQL genommen - da es hierfür ein Add-In in Excel gibt - dass Dir dann leicht diese Werte in Excel - quasi auf Knopfdruck importieren lässt. Ausserdem kann man dann auch die Grafiktools wie Flot und Grafana nehmen um die Werte direkt - also automatisiert ohne Dazutun in Balkendiagrammen dynamisch anzeigen zu lassen.

                    Das aber nur als grundsätzlich Alternativen. So wie Du schreibst - willst Du das alles lieber selbst machen - und hast Dich ja auf JSON Strings festgelegt.

                    MoppedmanM Offline
                    MoppedmanM Offline
                    Moppedman
                    schrieb am zuletzt editiert von
                    #17

                    @mickym

                    Danke für die ausführliche Antworten

                    Bevor ich darauf eingehe, ist unser Start das beste Beispiel dafür das der Empfänger einer Kommunikation darüber entscheidet was er versteht und nicht der Sender mit dem was er hofft zu schreiben. Ich hätte wohl besser formuliert.....

                         ... habe seit 30 Jahren NICHT mehr programmiert...
                    

                    In der Zeit hat sich die IT rasend entwickelt und viele Begriffe wie Web Services, Objekt Orientierte Programmierung, HTML, XML, CSS, JSON usw. kann ich trotz meiner Zeit von damals nur halbwegs sicher einordnen. Ich bin also ganz im Gegenteil wie von dir verstanden kein Profi mit viel Erfahrung.

                    Beziehe auch @OliverIO mit ein da er ja auch kommentiert hat.

                    1. History / SQL adapter

                    Ich habe beide laufen und schreibe die Verbauchsdaten dort auch weg. Bei der ViSu habe ich am Anfang einzelne FLOT Diagramme erstellt die auf die DB zugreifen und die dann aufgerufen. Später bin ich aber auf die weit dynamischeren Widgets von @Scrounger umgestiegen der da für mich klasse Arbeit gemacht hat.

                    In der DB liegen also die Verbäuche welche bei Veränderung kontinuierlich weitergeschrieben werden. Bei Gas ist das der Verbrauch in m³ vom Zähler, wobei mein Gasversorger aber in ct / kWh zzgl. Monatspauschale abrechnet. In einem Blockly berechne ich die monatlichen Verbäuche (in m³ und kWh) und die daraus resultierenden Kosten welche ich dann (noch) in eigene Datenpunkte wegschreibe.

                    Nur diese berechneten Datenpunkte will ich nicht für jedes Jahr/Monat neu anlegen sondern hatte gedacht diese gesammelt in einem JSON String abzuspeichern. JSON deshalb weil SCROUNGER auch das "JSON Chart" widget gebaut hat, mit dem ich Grafiken noch individueller zusammenbauen könnte. Ich muss mich allerdings erst noch eingehender mit diesem Widget beschäftigen wie es die Daten aufbereitet benötigt.

                    Mir ist klar das ich diese Berechnung prinzipell auch mit SQL machen könnte, habe da aber auch keine Erfahrung mit. Daher ist es sehr warscheinlich das ihr das viel schneller und besser über SQL hinbekommt als ich mit meinen heutigen Möglichkeiten. Sicherlich ein weiteres Thema das ich mir bei Gelegenheit erarbeiten sollte.

                    1. JSON Array

                    Beim Aufbau des JSON Array fehlte mir einfach die Erfahrung die Frage richtig zu formulieren und die Syntax fachgerecht zu verwenden.

                    Ich werde eurem Rat folgen richtige JSON Objekte aufzubauen. Ich werde dann mal ein wenig rumspielen ob ich einzelne JSON Strings pro Jahr als DP ablege oder mehrere Jahre in einem String konsolidiere.

                    @liv-in-sky hat mir ja ein Blockly mit JS Funktion geschickt die das steuert. Da kann ich mal gut dran üben

                    1. CSV / EXCEL

                    CSV wäre eine Alternative für die reine Datenablage und im Austausch mit EXCEL sicherlich sehr gut. Mein Hand-EXCEL Liste will ich aber wenn möglich los werden.

                    Danke für eure ausführliche Hilfe

                    Gruß aus dem rheinischen

                    1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL liv-in-sky

                      @moppedman

                      verstehe noch nicht, was nicht funktioniert

                      Image 3.png

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <variables>
                         <variable id="Yo-sR,)1p{%_-AL{/R~8">nameV</variable>
                         <variable id="Cr5y^e0%VvXf5p0V4o4z">jahr</variable>
                         <variable id="}9RkDSspMkUg|wK5$(7/">monat</variable>
                         <variable id="MIyal/kMP;f0$|yy)Gj_">monatWert</variable>
                         <variable id="MViv0:wuz[6T-G3mU_@;">existingArr</variable>
                         <variable id="Gj9bdS9]0Ya@f*[dvE5)">monthlyWrite</variable>
                         <variable id="kDanh0PIL*lONZc9j!T{">month</variable>
                         <variable id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</variable>
                         <variable id="l;@8AN1xGg%0z$6UmOka">year</variable>
                         <variable id=")rdufh4k7Q`2)*iFQ;Su">existingData</variable>
                       </variables>
                       <block type="procedures_defcustomreturn" id="*8,68gpgeMSEE10.tYBY" x="138" y="38">
                         <mutation statements="false">
                           <arg name="nameV" varid="Yo-sR,)1p{%_-AL{/R~8"></arg>
                           <arg name="jahr" varid="Cr5y^e0%VvXf5p0V4o4z"></arg>
                           <arg name="monat" varid="}9RkDSspMkUg|wK5$(7/"></arg>
                           <arg name="monatWert" varid="MIyal/kMP;f0$|yy)Gj_"></arg>
                           <arg name="existingArr" varid="MViv0:wuz[6T-G3mU_@;"></arg>
                           <arg name="monthlyWrite" varid="Gj9bdS9]0Ya@f*[dvE5)"></arg>
                         </mutation>
                         <field name="NAME">erstelleJson</field>
                         <field name="SCRIPT">DQoNCmlmIChtb250aGx5V3JpdGUpDQoNCnsgbGV0IGhlbHA9bmFtZVYramFocg0KbGV0IGhlbHBPYmo9ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjpuYW1lVittb25hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOm1vbmF0V2VydA0KICAgIA0KICAgIH0NCiAgLy9sb2coSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpKSAgDQogICBsZXQgICBnZXRBcnI9ZXhpc3RpbmdBcnJbaGVscF0NCiAvL2xvZyhnZXRBcnIpDQogICAgDQogICAgZ2V0QXJyLnB1c2goaGVscE9iaikNCiAgICANCiAgIC8vIE9iamVjdC5hc3NpZ24oZXhpc3RpbmdBcnJbaGVscF0saGVscE9iaiApOw0KDQpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdBcnIpOw0KfSBlbHNlew0KICAgdmFyIGhlbHBlcjE9bmFtZVYramFociANCiAgLy8gbG9nKGhlbHBlcjEpDQogICBsZXQgc291cmNlPXt9Ow0KICAgbGV0IGVtcHR5PVtdDQogICANCiAgIA0KICAgc291cmNlW2hlbHBlcjFdPWVtcHR5DQogICBleGlzdGluZ0FycltoZWxwZXIxXT1lbXB0eQ0KDQogICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nQXJyKTsNCn0=</field>
                         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                       </block>
                       <block type="variables_set" id="(jgKTX7i}0zcCryj?;m1" disabled="true" x="138" y="113">
                         <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                         <value name="VALUE">
                           <block type="time_get" id="Tk/z$J:P,Dv~*E6~Ku,Q">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation>
                             <field name="OPTION">Mts</field>
                             <field name="LANGUAGE">de</field>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="mG+zEA48Z.SBPj(^+dWl" disabled="true">
                             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                             <value name="VALUE">
                               <block type="time_get" id="M!sX]6@(0bx2c|8_B!,k">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                 <field name="OPTION">custom</field>
                                 <field name="FORMAT">JJJJ</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="A~yViSGHr1aSMLhdP445">
                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                 <value name="VALUE">
                                   <block type="text" id="y/W}(q8;In@aNZ|g4Y4{">
                                     <field name="TEXT">Dez</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="i`=@98oNknyec#Bd@]Q;">
                                     <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                     <value name="VALUE">
                                       <block type="math_number" id="{5$bMgJnDvM:P*[g9IDG">
                                         <field name="NUM">2021</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="4^;/,jvdR*O*,FNs1i[^">
                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                         <value name="VALUE">
                                           <block type="convert_json2object" id="6;ir0:KsF2:}66F6hji0">
                                             <value name="VALUE">
                                               <block type="text" id="ylrYBguk]IH?uo-MmhzU">
                                                 <field name="TEXT">{"GAS2020":    [{"Monat":"GASSep","Value":1400},{"Monat":"GASOkt","Value":14400}]}</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="variables_set" id="FFZbmZO3E?)b%x:RW!5K">
                                             <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                             <value name="VALUE">
                                               <block type="math_number" id="z^{r%aAV(@jpFbcLQI4d">
                                                 <field name="NUM">888</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id=".($:#xIaM,N@G,Sp)VXF">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="9L#b(,Q%Wm(%3(y88J{C">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="text_join" id="3IRU.W`Ul#_VrB7fDniB">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="1x~=SSJOAOT|fFo%|^iW">
                                                         <field name="TEXT">ist - am anfang ... </field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="variables_get" id="(tGTyH#dq+cZ}=~VVYVF">
                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="comment" id="9SW+ssD-Mr}.w)$:-Qu!">
                                                     <field name="COMMENT">schreibt neues jahr</field>
                                                     <next>
                                                       <block type="debug" id="F/wTao~c7Mf8*[%b1N3h" disabled="true">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="Tn5_xUOA1r]xE2he,H45">
                                                             <field name="TEXT">test</field>
                                                           </shadow>
                                                           <block type="procedures_callcustomreturn" id="v!l-R^X!6k9X2|0j18U-">
                                                             <mutation name="erstelleJson">
                                                               <arg name="nameV"></arg>
                                                               <arg name="jahr"></arg>
                                                               <arg name="monat"></arg>
                                                               <arg name="monatWert"></arg>
                                                               <arg name="existingArr"></arg>
                                                               <arg name="monthlyWrite"></arg>
                                                             </mutation>
                                                             <value name="ARG0">
                                                               <block type="text" id="C,gQL)M+g4ZymM#IR,Q=">
                                                                 <field name="TEXT">GAS</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG1">
                                                               <block type="variables_get" id="cLpbaUykF7,9f(5g!~1n">
                                                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG2">
                                                               <block type="variables_get" id="_RX@6$DQi%hwQVIP+#C,">
                                                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG3">
                                                               <block type="math_number" id="AIzN}C$bwwC*mrprE6@f">
                                                                 <field name="NUM">0</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG4">
                                                               <block type="variables_get" id="!qcB1`[y)Vn+VlUBUc~2">
                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                               </block>
                                                             </value>
                                                             <value name="ARG5">
                                                               <block type="logic_boolean" id="`_U[K56cE^9vF]xuJw4?">
                                                                 <field name="BOOL">FALSE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="variables_set" id="vtIpFe!(ezjQqGz_$(Dm">
                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                             <value name="VALUE">
                                                               <block type="procedures_callcustomreturn" id=";8Dn57JhCz|ViUKDAT_q">
                                                                 <mutation name="erstelleJson">
                                                                   <arg name="nameV"></arg>
                                                                   <arg name="jahr"></arg>
                                                                   <arg name="monat"></arg>
                                                                   <arg name="monatWert"></arg>
                                                                   <arg name="existingArr"></arg>
                                                                   <arg name="monthlyWrite"></arg>
                                                                 </mutation>
                                                                 <value name="ARG0">
                                                                   <block type="text" id="smNk{FB$_DoJ$UrCXX?v">
                                                                     <field name="TEXT">GAS</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG1">
                                                                   <block type="variables_get" id="+:r6F`a5})k6+8/NKl9L">
                                                                     <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG2">
                                                                   <block type="variables_get" id="?et!R9jb85!p[(KbS=Ke">
                                                                     <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG3">
                                                                   <block type="math_number" id=")-X9_2w=r!R9:0glR$}n">
                                                                     <field name="NUM">0</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG4">
                                                                   <block type="variables_get" id="F-9aCroA!?lrn5!}iExU">
                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ARG5">
                                                                   <block type="logic_boolean" id=",IPJZWX/YV2WhDf{LX|%">
                                                                     <field name="BOOL">FALSE</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="debug" id=".bJ[,cYO^gl3U/tTriWn">
                                                                 <field name="Severity">log</field>
                                                                 <value name="TEXT">
                                                                   <shadow type="text" id="6|EUM=zUmLuBxa/gn2wx">
                                                                     <field name="TEXT">test</field>
                                                                   </shadow>
                                                                   <block type="text_join" id="qxP~,X!tHdAwq]~Ij=pe">
                                                                     <mutation items="2"></mutation>
                                                                     <value name="ADD0">
                                                                       <block type="text" id="MKQu-RvBq/@zdTQ.?vL7">
                                                                         <field name="TEXT">plus jahr ... </field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD1">
                                                                       <block type="variables_get" id="ZBfbV}J0luIi`6hrV)1_">
                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="comment" id="7dOi-c7~zw;N8}ZK{TNd">
                                                                     <field name="COMMENT">schreibt neuen monat</field>
                                                                     <next>
                                                                       <block type="debug" id="17H9qQ`KpAD3FUn@yN+Q" disabled="true">
                                                                         <field name="Severity">log</field>
                                                                         <value name="TEXT">
                                                                           <shadow type="text">
                                                                             <field name="TEXT">test</field>
                                                                           </shadow>
                                                                           <block type="procedures_callcustomreturn" id="D7G3Lwxx14I1VuMu=IbW">
                                                                             <mutation name="erstelleJson">
                                                                               <arg name="nameV"></arg>
                                                                               <arg name="jahr"></arg>
                                                                               <arg name="monat"></arg>
                                                                               <arg name="monatWert"></arg>
                                                                               <arg name="existingArr"></arg>
                                                                               <arg name="monthlyWrite"></arg>
                                                                             </mutation>
                                                                             <value name="ARG0">
                                                                               <block type="text" id="F6OH=|6d,v(iJhp41s9H">
                                                                                 <field name="TEXT">GAS</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG1">
                                                                               <block type="variables_get" id="%SUf*xnUI^n_]:=Yk~~+">
                                                                                 <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG2">
                                                                               <block type="variables_get" id="yi7oWY/37fQSX@=W8[=H">
                                                                                 <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG3">
                                                                               <block type="variables_get" id="hjwO*`5{h;D1I[cjKA5;">
                                                                                 <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG4">
                                                                               <block type="convert_json2object" id="|==G`p5*sbI~MkV^3iN6">
                                                                                 <value name="VALUE">
                                                                                   <block type="variables_get" id="cN#fMQk#s0bT2LUmdxga">
                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG5">
                                                                               <block type="logic_boolean" id="W`YOv`[qvg*KU~/{Ib5L">
                                                                                 <field name="BOOL">TRUE</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <next>
                                                                           <block type="variables_set" id="/cKRsM4Q3stuVb^RvSJl">
                                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                             <value name="VALUE">
                                                                               <block type="procedures_callcustomreturn" id="DR`ri2.2z:;a*loZR6]j">
                                                                                 <mutation name="erstelleJson">
                                                                                   <arg name="nameV"></arg>
                                                                                   <arg name="jahr"></arg>
                                                                                   <arg name="monat"></arg>
                                                                                   <arg name="monatWert"></arg>
                                                                                   <arg name="existingArr"></arg>
                                                                                   <arg name="monthlyWrite"></arg>
                                                                                 </mutation>
                                                                                 <value name="ARG0">
                                                                                   <block type="text" id="N8#fAS%epe7XzvK$?po(">
                                                                                     <field name="TEXT">GAS</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ARG1">
                                                                                   <block type="variables_get" id="j~BAJ_fkAx.xgI4[qUkk">
                                                                                     <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ARG2">
                                                                                   <block type="variables_get" id="uyH~onV:(^v;T?8Y:vs[">
                                                                                     <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ARG3">
                                                                                   <block type="variables_get" id="5dQCR2dIxZ+0[_o:GRLa">
                                                                                     <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ARG4">
                                                                                   <block type="convert_json2object" id="8[ulx%`tyk9n|AY9];)f">
                                                                                     <value name="VALUE">
                                                                                       <block type="variables_get" id="x}`NAoH6sE:M;VTPJOxz">
                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ARG5">
                                                                                   <block type="logic_boolean" id="7m]4k/i+8T}WIJw?CTho">
                                                                                     <field name="BOOL">TRUE</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <next>
                                                                               <block type="debug" id="Y([zpWpDM[r:W[D)cdu|">
                                                                                 <field name="Severity">log</field>
                                                                                 <value name="TEXT">
                                                                                   <shadow type="text" id="1-ku,~f-/Jy[wrlWC^nb">
                                                                                     <field name="TEXT">test</field>
                                                                                   </shadow>
                                                                                   <block type="text_join" id="im!CaMr%`D9]L],6MDa-">
                                                                                     <mutation items="2"></mutation>
                                                                                     <value name="ADD0">
                                                                                       <block type="text" id="_]{QyDNIre1;:c=MDD$.">
                                                                                         <field name="TEXT">plus Dez ... </field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ADD1">
                                                                                       <block type="variables_get" id="t#wdE}i+ZaZG[EYtEj%b">
                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <next>
                                                                                   <block type="variables_set" id="mm`1RMvi)`#:npnVgMbg">
                                                                                     <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                     <value name="VALUE">
                                                                                       <block type="procedures_callcustomreturn" id="F)7B?X/Mzb}dEP9APu3O">
                                                                                         <mutation name="erstelleJson">
                                                                                           <arg name="nameV"></arg>
                                                                                           <arg name="jahr"></arg>
                                                                                           <arg name="monat"></arg>
                                                                                           <arg name="monatWert"></arg>
                                                                                           <arg name="existingArr"></arg>
                                                                                           <arg name="monthlyWrite"></arg>
                                                                                         </mutation>
                                                                                         <value name="ARG0">
                                                                                           <block type="text" id="7SrPihbOwyTGa}ub0M47">
                                                                                             <field name="TEXT">GAS</field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ARG1">
                                                                                           <block type="variables_get" id="(wN)tThS*Rg:zPpZ|NcU">
                                                                                             <field name="VAR" id="l;@8AN1xGg%0z$6UmOka">year</field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ARG2">
                                                                                           <block type="text" id="DX?W*vzUM_#=(gO3tXkW">
                                                                                             <field name="TEXT">Jan</field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ARG3">
                                                                                           <block type="math_number" id="F[AcwvIO/mwaw}2E=7(j">
                                                                                             <field name="NUM">999</field>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ARG4">
                                                                                           <block type="convert_json2object" id="VGt~U[;Hv#HA9hq/?WYb">
                                                                                             <value name="VALUE">
                                                                                               <block type="variables_get" id="aRof?P$tZiY/;8kDmG+/">
                                                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                               </block>
                                                                                             </value>
                                                                                           </block>
                                                                                         </value>
                                                                                         <value name="ARG5">
                                                                                           <block type="logic_boolean" id="2=R3XC12;d7q6.Z|Vx!@">
                                                                                             <field name="BOOL">TRUE</field>
                                                                                           </block>
                                                                                         </value>
                                                                                       </block>
                                                                                     </value>
                                                                                     <next>
                                                                                       <block type="debug" id="}Fcf1x}$o.~S[NK4#xIi">
                                                                                         <field name="Severity">log</field>
                                                                                         <value name="TEXT">
                                                                                           <shadow type="text" id="~Jj#vY2}=y|;-hnvYk0m">
                                                                                             <field name="TEXT">test</field>
                                                                                           </shadow>
                                                                                           <block type="text_join" id="RRa[kxP*d+6=igUC3~O!">
                                                                                             <mutation items="2"></mutation>
                                                                                             <value name="ADD0">
                                                                                               <block type="text" id="dqa^Y.%jE^0vKe`mE$[m">
                                                                                                 <field name="TEXT">plus Jan ... </field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <value name="ADD1">
                                                                                               <block type="variables_get" id="4R:PFDAN[se=|R[prq~f">
                                                                                                 <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                               </block>
                                                                                             </value>
                                                                                           </block>
                                                                                         </value>
                                                                                         <next>
                                                                                           <block type="variables_set" id="@A)d9|O|^8E7CR[Vp$-J">
                                                                                             <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                             <value name="VALUE">
                                                                                               <block type="procedures_callcustomreturn" id="TI@o-CnM7f0bwMT2OMSL">
                                                                                                 <mutation name="erstelleJson">
                                                                                                   <arg name="nameV"></arg>
                                                                                                   <arg name="jahr"></arg>
                                                                                                   <arg name="monat"></arg>
                                                                                                   <arg name="monatWert"></arg>
                                                                                                   <arg name="existingArr"></arg>
                                                                                                   <arg name="monthlyWrite"></arg>
                                                                                                 </mutation>
                                                                                                 <value name="ARG0">
                                                                                                   <block type="text" id="B(CKRceHi{l?da5WX.X4">
                                                                                                     <field name="TEXT">GAS</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ARG1">
                                                                                                   <block type="text" id="4.Q`$jIt)1T+{Yl[e%)p">
                                                                                                     <field name="TEXT">2020</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ARG2">
                                                                                                   <block type="text" id=",UkU;)qw8W]g1ANC0.5F">
                                                                                                     <field name="TEXT">Nov</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ARG3">
                                                                                                   <block type="math_number" id="YHIz}Qn/LKrZiBxz%@++">
                                                                                                     <field name="NUM">111</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ARG4">
                                                                                                   <block type="convert_json2object" id="?J=lUX!g{}aCW{*VGijZ">
                                                                                                     <value name="VALUE">
                                                                                                       <block type="variables_get" id="]BULU3|%z?,#div?}f|-">
                                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="ARG5">
                                                                                                   <block type="logic_boolean" id="f_#TILv}k[8M9Brndt$,">
                                                                                                     <field name="BOOL">TRUE</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                               </block>
                                                                                             </value>
                                                                                             <next>
                                                                                               <block type="debug" id="u7HA2NPRL)Q-:Cg!%nT(">
                                                                                                 <field name="Severity">log</field>
                                                                                                 <value name="TEXT">
                                                                                                   <shadow type="text">
                                                                                                     <field name="TEXT">test</field>
                                                                                                   </shadow>
                                                                                                   <block type="text_join" id="V``[(4az-!XCEDSwAl,N">
                                                                                                     <mutation items="2"></mutation>
                                                                                                     <value name="ADD0">
                                                                                                       <block type="text" id="yDs~U(?sHsxBRLYeXLuz">
                                                                                                         <field name="TEXT">plus Nov 2020 ... </field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                     <value name="ADD1">
                                                                                                       <block type="variables_get" id=":WV}yjHREXxD{~=Maohu">
                                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <next>
                                                                                                   <block type="update" id="s|8:iMvK7wb$%Sj(Z7u]">
                                                                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                     <field name="OID">0_userdata.0.KOR-DatenPunkte.Test-Ordner.Gas-Verbrauch_JSON</field>
                                                                                                     <field name="WITH_DELAY">FALSE</field>
                                                                                                     <value name="VALUE">
                                                                                                       <block type="variables_get" id="^U^Yc*c(bjc$Qk:%Xz0@">
                                                                                                         <field name="VAR" id=")rdufh4k7Q`2)*iFQ;Su">existingData</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                   </block>
                                                                                                 </next>
                                                                                               </block>
                                                                                             </next>
                                                                                           </block>
                                                                                         </next>
                                                                                       </block>
                                                                                     </next>
                                                                                   </block>
                                                                                 </next>
                                                                               </block>
                                                                             </next>
                                                                           </block>
                                                                         </next>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                       <block type="convert_json2object" id="8ej}[w(cn_%4!9J+UsEL" disabled="true" x="912" y="1162"></block>
                       <block type="variables_get" id="N@0h]LKD5ngjO^jtBDGy" disabled="true" x="937" y="1288">
                         <field name="VAR" id="kDanh0PIL*lONZc9j!T{">month</field>
                       </block>
                       <block type="variables_get" id="v=01~P)1GzgYiF*Ilr:}" disabled="true" x="913" y="1312">
                         <field name="VAR" id="rT]pzS@~MIEM-go_?AVG">Verbrauch-Aktuell</field>
                       </block>
                       <block type="text" id="pHO5*B=MNVP/*6QWi^S5" x="528" y="1791">
                         <field name="TEXT">GAS</field>
                       </block>
                      </xml>
                      

                      MoppedmanM Offline
                      MoppedmanM Offline
                      Moppedman
                      schrieb am zuletzt editiert von
                      #18

                      @liv-in-sky

                      Das funktioniert bei mir auch, habe aber folgende Fragen zum Verständis wann und warum du Konvertierungen einsetzt.

                      Am Anfang weist du der Variable "existingData" einen Wert zu und setzt dabei einen String (JSON ??) über eine Konvertierung JSON zu Objekt ein.

                      • Warum setzt du hier eine Konvertierung ein ?

                      Im weiteren Verlauf wenn du ein neues Jahr anlegst übergibst du "exsistingArr" den Inhalt von "existingData" wobei du KEINE Konvertierung verwendest.

                      Beim Schreiben der einzelnen Monate jedoch übergibst du "exsistingArr" den Inhalt von "existingData" MIT Konvertierung.

                      Warum ist das so ?

                      Gruß aus dem rheinischen

                      liv-in-skyL paul53P 2 Antworten Letzte Antwort
                      0
                      • MoppedmanM Moppedman

                        @liv-in-sky

                        Das funktioniert bei mir auch, habe aber folgende Fragen zum Verständis wann und warum du Konvertierungen einsetzt.

                        Am Anfang weist du der Variable "existingData" einen Wert zu und setzt dabei einen String (JSON ??) über eine Konvertierung JSON zu Objekt ein.

                        • Warum setzt du hier eine Konvertierung ein ?

                        Im weiteren Verlauf wenn du ein neues Jahr anlegst übergibst du "exsistingArr" den Inhalt von "existingData" wobei du KEINE Konvertierung verwendest.

                        Beim Schreiben der einzelnen Monate jedoch übergibst du "exsistingArr" den Inhalt von "existingData" MIT Konvertierung.

                        Warum ist das so ?

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #19

                        @moppedman

                        • ich habe einfach mal ein json-string (text) zum anfang als grunddaten gewählt
                        • die function braucht ein json-objet und gibt ein json-string aus
                        • zum bearbeiten brauche ich aber ein json-object (konvertierung) - aber aus gewohnheit kommt wieder ein json-string aus der funktion (ohne die wandlung beim return in der function, könnte ich mit dem object direkt weiterarbeiten
                        • am ende schreibe ich dann einen json-string in einen string-datenpunkt - so ist das ganze lesbar im dp
                        • wenn man das ganze nicht mit der grunddaten-variable macht, sondern immer wieder vom dp ausliest, braucht es beim getstate auch eine konvertierung in ein json-object

                        normalerweise, so dachte ich, machst du das einmal im monat und im januar zusätzlich einmal
                        du rufst also die function einmal im monat auf, holst aus dem dp ein json-string, konvertierst zu json object, übergibst das der function und sicherst das ergebnis der funktion direkt, ohne konvertierung, in den dp (das macht ja dir funktion)

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        paul53P MoppedmanM 2 Antworten Letzte Antwort
                        0
                        • MoppedmanM Moppedman

                          @liv-in-sky

                          Das funktioniert bei mir auch, habe aber folgende Fragen zum Verständis wann und warum du Konvertierungen einsetzt.

                          Am Anfang weist du der Variable "existingData" einen Wert zu und setzt dabei einen String (JSON ??) über eine Konvertierung JSON zu Objekt ein.

                          • Warum setzt du hier eine Konvertierung ein ?

                          Im weiteren Verlauf wenn du ein neues Jahr anlegst übergibst du "exsistingArr" den Inhalt von "existingData" wobei du KEINE Konvertierung verwendest.

                          Beim Schreiben der einzelnen Monate jedoch übergibst du "exsistingArr" den Inhalt von "existingData" MIT Konvertierung.

                          Warum ist das so ?

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #20

                          @moppedman sagte: Warum setzt du hier eine Konvertierung ein ?

                          Man kann in Blockly keine Objekte durch direkte Eingabe erstellen, aber einen String im JSON-Format, der in ein Objekt gewandelt werden kann.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • liv-in-skyL liv-in-sky

                            @moppedman

                            • ich habe einfach mal ein json-string (text) zum anfang als grunddaten gewählt
                            • die function braucht ein json-objet und gibt ein json-string aus
                            • zum bearbeiten brauche ich aber ein json-object (konvertierung) - aber aus gewohnheit kommt wieder ein json-string aus der funktion (ohne die wandlung beim return in der function, könnte ich mit dem object direkt weiterarbeiten
                            • am ende schreibe ich dann einen json-string in einen string-datenpunkt - so ist das ganze lesbar im dp
                            • wenn man das ganze nicht mit der grunddaten-variable macht, sondern immer wieder vom dp ausliest, braucht es beim getstate auch eine konvertierung in ein json-object

                            normalerweise, so dachte ich, machst du das einmal im monat und im januar zusätzlich einmal
                            du rufst also die function einmal im monat auf, holst aus dem dp ein json-string, konvertierst zu json object, übergibst das der function und sicherst das ergebnis der funktion direkt, ohne konvertierung, in den dp (das macht ja dir funktion)

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #21

                            @liv-in-sky sagte: ein json-object

                            Was ist ein json-object?

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            liv-in-skyL 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @liv-in-sky sagte: ein json-object

                              Was ist ein json-object?

                              liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #22

                              @paul53

                              du weißt was ich meine - erkläre es einfach so wie es gehört

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • liv-in-skyL liv-in-sky

                                @paul53

                                du weißt was ich meine - erkläre es einfach so wie es gehört

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #23

                                @liv-in-sky sagte: erkläre es einfach so wie es gehört

                                Das habe ich bereits. Man sollte Neulinge nicht durch falsche Begriffe verwirren.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                liv-in-skyL 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @liv-in-sky sagte: erkläre es einfach so wie es gehört

                                  Das habe ich bereits. Man sollte Neulinge nicht durch falsche Begriffe verwirren.

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #24

                                  @paul53

                                  man sollte leute, die versuchen zu helfen, nicht demutivieren

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @paul53

                                    man sollte leute, die versuchen zu helfen, nicht demutivieren

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von paul53
                                    #25

                                    @liv-in-sky sagte: man sollte leute, die versuchen zu helfen, nicht demotivieren

                                    Ich hoffe, dass das nicht passiert ist!

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    0
                                    • liv-in-skyL liv-in-sky

                                      @moppedman

                                      • ich habe einfach mal ein json-string (text) zum anfang als grunddaten gewählt
                                      • die function braucht ein json-objet und gibt ein json-string aus
                                      • zum bearbeiten brauche ich aber ein json-object (konvertierung) - aber aus gewohnheit kommt wieder ein json-string aus der funktion (ohne die wandlung beim return in der function, könnte ich mit dem object direkt weiterarbeiten
                                      • am ende schreibe ich dann einen json-string in einen string-datenpunkt - so ist das ganze lesbar im dp
                                      • wenn man das ganze nicht mit der grunddaten-variable macht, sondern immer wieder vom dp ausliest, braucht es beim getstate auch eine konvertierung in ein json-object

                                      normalerweise, so dachte ich, machst du das einmal im monat und im januar zusätzlich einmal
                                      du rufst also die function einmal im monat auf, holst aus dem dp ein json-string, konvertierst zu json object, übergibst das der function und sicherst das ergebnis der funktion direkt, ohne konvertierung, in den dp (das macht ja dir funktion)

                                      MoppedmanM Offline
                                      MoppedmanM Offline
                                      Moppedman
                                      schrieb am zuletzt editiert von
                                      #26

                                      @liv-in-sky

                                      Deine Erklärung das du in der JS Funktion ein Objekt benötigst zusammen mit dem Hinweis von @paul53 das ich aus Blockly ein solches Objekt nicht direkt erzeugen kann hat "den Groschen Fallen lassen".

                                      Du hast auch richtig verstanden, dass ich die Werte monatlich schreiben möchte und daher ist dein Vorschlag direkt umsetztbar. Ich möchte nur einmalig die vorhandenen Datenpunkte der letzten 1,5 Jahre auslesen und diese ebenfalls in JSON übertragen.

                                      Danke für die Hilfe an alle. Mache mich jetzt and die Umsetzung.

                                      Gruß aus dem rheinischen

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      785

                                      Online

                                      32.4k

                                      Benutzer

                                      81.6k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe