Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst]Unplausible Werte in influxDB editieren ?

    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

    [Gelöst]Unplausible Werte in influxDB editieren ?

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

      Dazu wäre es interessant zu erfahren, wie Du ein Backup Deiner Iflux-Datenbank machst... Da die Influxdb ein eigenständiges Programm auf Deinem Rechner darstellt unterliegt das backuppen der Datenbank Deiner Handarbeit und nicht z.B. dem backitup-Adapter des ioBroker. Es gibt Lösungen für das Backup der Datenbank - google liebt dich. Aber so lange Du das nicht eingestellt hast sind Deine Daten imho verloren...

      A 1 Reply Last reply Reply Quote 0
      • L
        lemuba @Aiouh last edited by

        @Aiouh

        Hilft Dir wahrscheinlich auch nicht mehr - aber ich habe in meiner Iobroker Dietpi VM Instanz ein influxdb_backup.sh Script erstellt, dass hat nur eine Zeile...:

        sudo influxd backup -portable -database iobroker -host 127.0.0.1:8088 /tmp/iobroker_influx_backup

        iobroker ist der Name der Datenbank - ein Restore des Backups/meiner kompletter Wetterstation-Daten hat schon einwandfrei funktioniert...

        Werde dieses "manuelle" Backup noch zeitnah automatisieren. Leider macht es noch nicht der Backitup Adapter....

        1 Reply Last reply Reply Quote 0
        • A
          Aiouh @XxJooO last edited by

          @XxJooO
          Hi, ich mache bister kein extra Datenbank Backup, sondern ein komplettes des virtuellen Servers auf dem die DB läuft. Der ioBroker wird jede Nacht mit BackitUp und zusätzlich der Server per VM Imagebackup gesichert.
          Zu Dumm dass ich vor meinen Löschversuchen kein Backup gezogen habe. Normalerweise mach ich sowas auch in meiner Testumgebung, dafür hab ich sie ja, warum nicht auch dieses mal ? Einfach nicht aufgepasst.
          Auf jeden Fall wieder dazu gelernt.

          1 Reply Last reply Reply Quote 0
          • A
            Aiouh @crunchip last edited by

            @crunchip Hallo, ich nochmal...
            Ich versuche gerade alle Werte unter einem bestimmten Wert zu löschen

            > delete from "javascript.0.Eigene_Datenpunkte.Zisterne_Volumen" where value < 7500
            ERR: shard 61: fields not supported in WHERE clause during deletion
            

            das klappt so noch nicht. Da es sich um mehrere hundert Werte handelt, die wahllos über Wochen verstreut sind, ist das Löschen mit "timestamp" echt mühsam.
            Gibt es keine andere Lösung ?

            crunchip F 2 Replies Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @Aiouh last edited by

              @Aiouh ich bin da auch nicht so fit drin, wie welche Möglichkeiten angewendet werden können.
              @SBorg ist da etwas fitter in sowas, vllt kann er dir helfen.

              1 Reply Last reply Reply Quote 0
              • F
                ftd @Aiouh last edited by

                @Aiouh

                siehe https://docs.influxdata.com/influxdb/v1.8/query_language/manage-database/#delete-series-with-delete
                DELETE does not support fields in the WHERE clause

                Alternative:

                1. Export der Daten als CSV
                2. In Excel importieren
                3. Werte mit kleiner 7500 entfernen
                4. Neue Daten mit INSERT wieder in die Datenbank schreiben

                Was ist falsch an den 7500 Litern in der Zisterne?

                A 1 Reply Last reply Reply Quote 0
                • A
                  Aiouh @ftd last edited by

                  @ftd

                  Danke, wenn ich das script hinbekomme und damit künftig die falschen Werte vermeiden kann, tue ich mir das mit Export-Cleanup-Insert an, vorher eher nicht.

                  Tja, falsch daran ist, dass ich immer wieder Spitzen nach unten bekomme die eben falsch sind.
                  Woher die kommen weiss ich nicht. Wolte die falschen Werte per script abfangen, das klappt aber noch nicht (mein Jscript know how ist quasi Null. Ich mach hier trial and error).

                  https://forum.iobroker.net/topic/33837/zulauf-einer-zisterne-in-liter-h-berechnen/35

                  305d2577-65b6-4f02-9ea2-a580864f73e8-grafik.png

                  Vielleicht stelle ich auch den ioBroker komplett um auf MySQL, dort funktioniert "normales" SQL... muss mal lesen ob es da Nachteile gibt

                  XxJooO 1 Reply Last reply Reply Quote 0
                  • XxJooO
                    XxJooO @Aiouh last edited by

                    @Aiouh

                    zeig doch mal Dein Skript. Spontan fällt mir ein, dass gerade an warmen Tagen Kondenswasser entweder die Messung durch Kurzschluss verfälscht oder eben der Abstand nicht korrekt gemessen werden kann, wenn Wasser auf dem Sensor steht...

                    Zum Skript fällt mir spontan ein:
                    Ich würde nicht den gemessenen Wert loggen, da Du ja sonst nicht verhindern kannst, dass er geloggt wurde, bevor Du ihn auf Plausibilität geprüft hast. Ich würde also eine Hilfsvariable loggen, die immer bei einer Werteänderung neu befüllt wird. Nur dann wenn der Wert =0 oder wenn der Wert in einer bestimmten Zeit um mehr als x-dm abgenommen hat, den letzten Wert davor in die Hilfsvariable nehmen und die aktuelle Messung ignorieren. Nur so als Denkanstoß...

                    Grüße

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      Aiouh @XxJooO last edited by Aiouh

                      @XxJooO Der Sensor ist ein sehr präziser Drucksensor, der wird (hoffe ich) keine Fehler produzieren. Ich vermute eher dass das mit dem Script, Laufzeiten, timeouts, Einfluss durch andere Scripts...zu tun hat.
                      Bin natürlich für jede Hilfe dankbar (die mir das von die beschriebene Verfahren "zusammenbaut", denn Programmieren kann ich nicht 😞 )
                      So siehts aus:

                      const idSpannung = 'modbus.2.holdingRegisters.9_Zisterne_Füllhöhe_U';
                      const idHoehe = 'javascript.0.Eigene_Datenpunkte.Zisterne_Füllhöhe';
                      const idVol = 'javascript.0.Eigene_Datenpunkte.Zisterne_Volumen';
                      const idFluss = 'javascript.0.Eigene_Datenpunkte.Zisterne_Zufluss';
                      
                      const L = 49.735; // Länge in dm
                      const R = 8; // Radius in dm
                       
                      function u2h(U) {
                         let h = (U-120) /24; // a und b durch konstante Werte ersetzen
                         if(h > 2 * R) h = 2 * R;
                         setState(idHoehe, Math.round(h * 100) / 10, true); // in cm mit 1 Nachkommastelle
                         return h; // in dm
                      }
                      
                      function h2V(h) {
                         let V = L * (R * R * Math.acos(1 - h / R) - (R - h) * Math.sqrt(h * (2 * R - h)));
                         setState(idVol, Math.round(V), true);
                         return V; // in l
                      }
                      
                      var h = u2h(getState(idSpannung).val);
                      var lastV = h2V(h);
                      var timer = null;
                      var lc = getState(idSpannung).lc; 
                      
                      on(idSpannung, function(dp) {
                          h = u2h(dp.state.val);
                          let V = h2V(h);
                          if(V > lastV) {
                             let fluss = 3600000 * (V - lastV) / (dp.state.lc - lc); // l/h
                             lastV = V;
                             lc = dp.state.lc;
                             setState(idFluss, Math.round(fluss), true); 
                             if(timer) clearTimeout(timer);
                             timer = setTimeout(function() {
                                setState(idFluss, 0, true);
                                timer = null;
                             }, 1800000); // 30 Minuten
                          }
                      });
                      
                      
                      A 1 Reply Last reply Reply Quote 0
                      • A
                        Aiouh @Aiouh last edited by Aiouh

                        @Aiouh Damit das hier nicht off-topic wird mach ich mit dem eigentlichen Problem HIER weiter

                        1 Reply Last reply Reply Quote 0
                        • M
                          Michi_Pi @Aiouh last edited by

                          @Aiouh

                          Nun habe ich wieder völlig unplausible Werte drin, hab die auch selektiert, wollte aber beim Löschen einen Datumsbereich angeben und habe zu früh auf return gedrückt
                          (geht das überhaupt mit time >xxx and < yyy ?)

                          Ja das geht, hab das gleiche Problem gehabt und hab es mit dem Befehl im InfluxDBStudio löschen können.

                          DELETE from "Strom_Schlafzimmer_Tagesverbrauch" where time > '2020-11-02T13:34:00Z' and time < '2020-11-03T07:33:00Z'
                          
                          A 1 Reply Last reply Reply Quote 0
                          • A
                            Aiouh @Michi_Pi last edited by

                            @Michi_Pi DANKE !

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            856
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            influxdb
                            6
                            18
                            9798
                            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