Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Datenpunkte in JSON aufbereiten [gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Datenpunkte in JSON aufbereiten [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @mickym last edited by 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)

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @OliverIO last edited by 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.

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

          @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

          1 Reply Last reply Reply Quote 1
          • Moppedman
            Moppedman @liv-in-sky last edited by

            @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-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @Moppedman last edited by 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>
              

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

                @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

                1 Reply Last reply Reply Quote 0
                • Moppedman
                  Moppedman @liv-in-sky last edited by

                  @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-sky paul53 2 Replies Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Moppedman last edited by

                    @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)

                    paul53 Moppedman 2 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @Moppedman last edited by

                      @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.

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @liv-in-sky last edited by

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

                        Was ist ein json-object?

                        liv-in-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @paul53 last edited by

                          @paul53

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

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @liv-in-sky last edited by

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

                              @paul53

                              man sollte leute, die versuchen zu helfen, nicht demutivieren

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @liv-in-sky last edited by paul53

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

                                Ich hoffe, dass das nicht passiert ist!

                                1 Reply Last reply Reply Quote 0
                                • Moppedman
                                  Moppedman @liv-in-sky last edited by

                                  @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.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  738
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

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