Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Automatisierung
    5. Datenpunkte in Zukunft - in Influx abspeichern?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datenpunkte in Zukunft - in Influx abspeichern?

    This topic has been deleted. Only users with topic management privileges can see it.
    • MartinP
      MartinP @Andreas 9 last edited by MartinP

      @andreas-9 Mit der Kommandozeilen-Api habe ich schon Datenpunkte in der Influx-DB "Glattgebügelt", wenn es da einen Ausreißer gab, weil eine Änderung eines Blockly-Skriptes fehlerhaft war ...

      Sollte theoretisch auch mit Datenpunkten in der Zukunft gehen ...

      Grafana paart sich ganz gut mit Influx, aber das ist kein Muss... Es gibt auch wohl einen Grafana-Adapter für WeatherUnderground...

      https://github.com/nbrownus/nestflux

      https://grafana.com/blog/2024/12/26/how-to-monitor-your-local-weather-with-grafana/

      Und das noch für die andere Richtung
      https://github.com/nitrogen76/cheapWeather

      Selbst hier im Forum

      https://forum.iobroker.net/topic/58707/wettervorhersage-in-influxdb-grafana-über-javascript

      A 1 Reply Last reply Reply Quote 0
      • A
        Andreas 9 @MartinP last edited by

        @martinp vielen Dank!
        Das hilft wahrscheinlich schon um mich da tiefer einzuarbeiten. Schon mal gut zu wissen, dass es offenbar keine fertige Lösung gibt.

        S 1 Reply Last reply Reply Quote 0
        • S
          stenmic @Andreas 9 last edited by stenmic

          @andreas-9

          so kannst du manuell Daten nach InfluxDB2 schreiben.
          timestamp in der Zukunft ist natürlich möglich.
          Ich nutze das für die Solcast Prognose fürn nächsten Tag.

          2025-04-14 17 42 21.jpg

          Blockly:

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id=",:{hr%rjz2^[24zr^p7a">Datenbank</variable>
             <variable id="Dlo+1PLQemZy?.iB}=Lx">Datenpunkt</variable>
             <variable id="(QRDIt)0edV4EIK+koiO">Wert</variable>
             <variable id=".Et{LjN`7`SMLUgK-W,P">timestamp</variable>
           </variables>
           <block type="procedures_defcustomnoreturn" id="bWK`G{.=CsgMCevgYtUA" x="-112" y="13">
             <mutation statements="false">
               <arg name="Datenbank" varid=",:{hr%rjz2^[24zr^p7a"></arg>
               <arg name="Datenpunkt" varid="Dlo+1PLQemZy?.iB}=Lx"></arg>
               <arg name="Wert" varid="(QRDIt)0edV4EIK+koiO"></arg>
               <arg name="timestamp" varid=".Et{LjN`7`SMLUgK-W,P"></arg>
             </mutation>
             <field name="NAME">Sent2InfluxDB</field>
             <field name="SCRIPT">c2VuZFRvKERhdGVuYmFuaywgJ3N0b3JlU3RhdGUnLCB7DQogICAgaWQ6IERhdGVucHVua3QsDQogICAgc3RhdGU6IHt0czogdGltZXN0YW1wLA0KICAgIHZhbDogV2VydCwNCiAgICBhY2s6IHRydWUsDQogICAgZnJvbTogImphdmFzY3JpcHQuMCIsDQogICAgcTogMH19KTs=</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           </block>
           <block type="on" id="?)2%fU/_=;SjvXtJWEgS" x="-112" y="63">
             <field name="OID">ID auswählen</field>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <statement name="STATEMENT">
               <block type="procedures_callcustomnoreturn" id="K|`4Rwsp:OGK^lG/fyiK">
                 <mutation name="Sent2InfluxDB">
                   <arg name="Datenbank"></arg>
                   <arg name="Datenpunkt"></arg>
                   <arg name="Wert"></arg>
                   <arg name="timestamp"></arg>
                 </mutation>
                 <value name="ARG0">
                   <block type="text" id="*t/+=tEHfwMLx,Fv.xB+">
                     <field name="TEXT">influxdb.0</field>
                   </block>
                 </value>
                 <value name="ARG1">
                   <block type="text" id="lvQN)7R3YJwIKdTMIB/s">
                     <field name="TEXT">_measurement</field>
                   </block>
                 </value>
                 <value name="ARG2">
                   <block type="math_number" id="$g2SHGNScBrEzpn9U8-%">
                     <field name="NUM">0</field>
                   </block>
                 </value>
                 <value name="ARG3">
                   <block type="time_get" id="{i418$+K(_gV~8)iEohh">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                     <field name="OPTION">object</field>
                   </block>
                 </value>
               </block>
             </statement>
           </block>
          </xml>
          

          Fuktion:

          sendTo(Datenbank, 'storeState', {
             id: Datenpunkt,
             state: {ts: timestamp,
             val: Wert,
             ack: true,
             from: "javascript.0",
             q: 0}});
          

          das würde auch gehen:
          2025-04-14 17 48 26.jpg

          A 2 Replies Last reply Reply Quote 0
          • A
            Andreas 9 @stenmic last edited by

            @stenmic Das ist super! Hab mir schon gedacht, dass das so in etwa gehen muss. Ich probiere das gleichfalls aus. Vielen Dank!

            1 Reply Last reply Reply Quote 0
            • A
              Andreas 9 @stenmic last edited by

              @stenmic Toll! Funktioniert!!! 🙂
              shelly.jpg
              Vielen Dank nochmals! 😂

              S 1 Reply Last reply Reply Quote 0
              • S
                stenmic @Andreas 9 last edited by

                @andreas-9 gerne

                MartinP 1 Reply Last reply Reply Quote 0
                • MartinP
                  MartinP @stenmic last edited by MartinP

                  @stenmic Das gibt mir gerade eine Idee für einen Vis View, mit einer Art "Influx-Putzer"

                  Bisher habe ich die Fehlwerte in der Influx-DB immer mit der Kommandozeile geputzt ...

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    stenmic @MartinP last edited by

                    @martinp möchtest du Daten löschen?
                    Da hätte ich auch was…
                    IMG_1099.jpeg

                    MartinP 1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP @stenmic last edited by

                      @stenmic Ja, und das dann natürlich mit Bindings an eine Eingabemaske in vis o. ä. 😉
                      aber wahrscheinlich ist man da auch nur marginal schneller, als wenn man das in der Kommandozeile einfach heruntertippt ...

                      Das Access-Token ist in der Javascript funktion verborgen? Das wäre der einzige Punkt mit signifikantem Optimierungsbedarf... die untenstehende Kommandozeile ist schon SEHR lang, wenn man sie zusammengeklöppelt hat

                      influx delete   --bucket iobroker ...
                      
                      S 1 Reply Last reply Reply Quote 0
                      • S
                        stenmic @MartinP last edited by stenmic

                        @martinp ne, der Token ist im Adapter 🙂

                        Blockly

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <variables>
                           <variable id="0grn+ZZ^A{TEgVTYs)x4">Influxdb</variable>
                           <variable id="7h*q~fZDx{Qg;bxZv02f">Datenpunkt</variable>
                           <variable id="bU67QEX4Pg0|ofer{R)T">Startdatum</variable>
                           <variable id="{fo.)eP%`achV^,#lu7p">Enddatum</variable>
                           <variable id="FY32ON^[.^(}pN3d25;j">Ergebnis</variable>
                         </variables>
                         <block type="procedures_defcustomreturn" id="^3P(QTQ]b)r44*Ap2[$s" x="138" y="-862">
                           <mutation statements="false">
                             <arg name="Influxdb" varid="0grn+ZZ^A{TEgVTYs)x4"></arg>
                             <arg name="Datenpunkt" varid="7h*q~fZDx{Qg;bxZv02f"></arg>
                             <arg name="Startdatum" varid="bU67QEX4Pg0|ofer{R)T"></arg>
                             <arg name="Enddatum" varid="{fo.)eP%`achV^,#lu7p"></arg>
                           </mutation>
                           <field name="NAME">Query</field>
                           <field name="SCRIPT">DQp2YXIgZXJnZWJuaXM7DQpzZW5kVG8oJ2luZmx1eGRiLicrSW5mbHV4ZGIrJycsICdkZWxldGVSYW5nZScsIFsNCiAgICB7aWQ6ICcnK0RhdGVucHVua3QrJycsIHN0YXJ0OiAnK1N0YXJ0ZGF0dW0rJywgZW5kOiAnK0VuZGRhdHVtKyd9DQpdLCANCg0KZnVuY3Rpb24gKHJlc3VsdCkgew0KICAgIGlmIChyZXN1bHQuZXJyb3IpIHsNCiAgICAgICAgY29uc29sZS5lcnJvcihyZXN1bHQuZXJyb3IpOw0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIHNob3cgcmVzdWx0DQogICAgICAgIC8vIGNvbnNvbGUubG9nKCdSb3dzOiAnICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7DQogICAgICAgIGVyZ2VibmlzID0gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTsNCiAgICB9DQp9KTsNCmF3YWl0IHdhaXQoMTAwMCk7DQpyZXR1cm4gZXJnZWJuaXM7DQo=</field>
                           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                         </block>
                         <block type="variables_set" id="Qpo#umj?Zy%]d6sR7az+" x="138" y="-792">
                           <field name="VAR" id="FY32ON^[.^(}pN3d25;j">Ergebnis</field>
                           <value name="VALUE">
                             <block type="procedures_callcustomreturn" id="~HE?3SQL+/75:(Ix}#^V">
                               <mutation name="Query">
                                 <arg name="Influxdb"></arg>
                                 <arg name="Datenpunkt"></arg>
                                 <arg name="Startdatum"></arg>
                                 <arg name="Enddatum"></arg>
                               </mutation>
                               <value name="ARG0">
                                 <block type="text" id="=4LUZp0ul,`Gc[P6~=Si">
                                   <field name="TEXT">0</field>
                                 </block>
                               </value>
                               <value name="ARG1">
                                 <block type="text" id="SZ[VuOHvHspXe~`(~DKe">
                                   <field name="TEXT">xxx</field>
                                 </block>
                               </value>
                               <value name="ARG2">
                                 <block type="text" id="5iMW`#nn-(+}AY5A%5+f">
                                   <field name="TEXT">2024-08-17T13:00:00.000Z</field>
                                 </block>
                               </value>
                               <value name="ARG3">
                                 <block type="text" id="hra#F(}ld5]Ul1Nw!n%3">
                                   <field name="TEXT">2024-08-17T13:00:00.000Z</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="debug" id="dBD/LU,q,`5r:-U]Y/Cy">
                               <field name="Severity">warn</field>
                               <value name="TEXT">
                                 <shadow type="text" id="/4edf?_}em?hla,K)f!a">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="variables_get" id="Rovd}jR]w[OI3]21#V]c">
                                   <field name="VAR" id="FY32ON^[.^(}pN3d25;j">Ergebnis</field>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                        </xml>
                        

                        Funktion

                        var ergebnis;
                        sendTo('influxdb.'+Influxdb+'', 'deleteRange', [
                           {id: ''+Datenpunkt+'', start: '+Startdatum+', end: '+Enddatum+'}
                        ], 
                        
                        function (result) {
                           if (result.error) {
                               console.error(result.error);
                           } else {
                               // show result
                               // console.log('Rows: ' + JSON.stringify(result));
                               ergebnis = JSON.stringify(result);
                           }
                        });
                        await wait(1000);
                        return ergebnis;
                        
                        

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        898
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        279
                        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