Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Daten nur einmal täglich in Influxdb schreiben

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Daten nur einmal täglich in Influxdb schreiben

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

      Hallo,

      habe mir gerade die Influxdb installiert, funktioniert auch alles soweit. 😁

      Jetzt würde ich gerne die Werte aus dem Smartmeter Adapter einmal täglich in die Datenbank schreiben.
      Es genügt mir z.B. nachts wenn die Sonne untergegangen ist den Wert des eingespeisten Stroms der PV einmal täglich zu erfassen.
      Konnte aber nicht wirklich herausfinden wie ich dies lösen kann.

      Jemand einen hilfreichen Tip für mich?

      Gruß
      Thomas

      S 1 Reply Last reply Reply Quote 0
      • S
        SpacerX @Murph last edited by SpacerX

        @murph Es gibt die Variante mit Blockly direkt in die Datenbank schreiben oder Wert in Datenpunkt schreiben und bei Veränderung in die Datenbank loggen.

        M 1 Reply Last reply Reply Quote 0
        • M
          Murph @SpacerX last edited by Murph

          @spacerx
          Mit Blockly?
          Wie muss ich mir das vorstellen?
          Veränderungen hab ich gelesen, bedeutet das die Veränderung des Wertes, abgesehen davon das ich bestimmte Werte ausschließe, immer geschrieben werden?

          Edit:
          hab gerade in Blockly mal geschaut...
          Mal sehen ob das funktioniert was ich zusammen gezimmert habe.

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

            @murph said in Daten nur einmal täglich in Influxdb schreiben:

            @spacerx
            Mit Blockly?
            Wie muss ich mir das vorstellen?
            ..

            Hier ein Beispiel, wie ich das mit meinem Gasverbrauch geregelt habe ..

            201e54f1-f21c-4faf-9556-0efebf7e0644-image.png

            zeit=zeit-12*3600*1000 // Vortag 12:00 Uhr mittags
            sendTo('influxdb.0', 'storeState', {
                id: ziel,
                state: {ts: zeit, val: wert, ack: false, from: ziel}
            }, result => console.log('added'));
            

            Der Quelltext der JavaScript-Funktion ist unten dargestellt.

            Im Datenpunkt tempTag wird der Verbrauch über den Tag aufsummiert. Die Blockly-Anweisung dataInfluxDB habe ich in einen CRON-Job eingeschlossen, der um 0:00 Uhr aktiv wird und die Daten schreibt. Damit diese korrekt dem vergangenen Tag zugewiesen werden, korrigiere ich den Zeitstempel um 12h.

            Die sog. Arrow Function in Zeile 5 kannst du selbstverständlich weglassen.

            M D 2 Replies Last reply Reply Quote 2
            • M
              Murph @legro last edited by

              @legro Danke!
              Schau ich mir mal an...

              Möchte mir ja auch noch eine Funktion einbauen um den Ertrag des Tages anzuzeigen.
              Bekomme als Wert ja nur die gesamte Einspeisung...

              1 Reply Last reply Reply Quote 0
              • D
                Dieter_P @legro last edited by Dieter_P

                @legro said in Daten nur einmal täglich in Influxdb schreiben:

                @murph said in Daten nur einmal täglich in Influxdb schreiben:

                @spacerx
                Mit Blockly?
                Wie muss ich mir das vorstellen?
                ..

                Hier ein Beispiel, wie ich das mit meinem Gasverbrauch geregelt habe ..

                201e54f1-f21c-4faf-9556-0efebf7e0644-image.png

                zeit=zeit-12*3600*1000 // Vortag 12:00 Uhr mittags
                sendTo('influxdb.0', 'storeState', {
                    id: ziel,
                    state: {ts: zeit, val: wert, ack: false, from: ziel}
                }, result => console.log('added'));
                

                Der Quelltext der JavaScript-Funktion ist unten dargestellt.

                Im Datenpunkt tempTag wird der Verbrauch über den Tag aufsummiert. Die Blockly-Anweisung dataInfluxDB habe ich in einen CRON-Job eingeschlossen, der um 0:00 Uhr aktiv wird und die Daten schreibt. Damit diese korrekt dem vergangenen Tag zugewiesen werden, korrigiere ich den Zeitstempel um 12h.

                Die sog. Arrow Function in Zeile 5 kannst du selbstverständlich weglassen.

                Vielen Dank für Dein Beispiel. Möchte das gerne nutzen um den Ölverbrauch je Tag zu speichern.

                Kannst Du evtl. sagen ob diese manuelle Speicherung auch nur wieder manuell ausgelesen werden kann oder kann zB Flot darauf auch zugreifen?

                Thx

                L C 2 Replies Last reply Reply Quote 1
                • L
                  legro @Dieter_P last edited by

                  @dieter_p said in Daten nur einmal täglich in Influxdb schreiben:

                  Kannst Du evtl. sagen ob diese manuelle Speicherung auch nur wieder manuell ausgelesen werden kann oder kann zB Flot darauf auch zugreifen?

                  Die auf diese Weise in InfluxDB geschriebenen Daten unterscheiden sich natürlich nicht von jenen, die etwa via InfluxDB-Adapter geschrieben wurden. Sie können also ganz normal wie alle Daten aus InfluxDB verwendet werden.

                  D 1 Reply Last reply Reply Quote 1
                  • D
                    Dieter_P @legro last edited by

                    @legro
                    Danke. Habe erfolgreich die Tagesverbräuche von diesem Jahr eben so in die influxdB geschrieben/nachgetragen.

                    Leider findet zB Flot diese Werte nicht. Mag sein, das es daran liegt das sie ja jetzt "manuell" geschrieben wurden und nicht über die Konfiguration eines Datenpunktes in der Admin Oberfläche. In der Datenbank drin sind sie defintiv, das sehe ich zB mit Grafana, das ich eigentlich nicht nutzen möchte. Aber egal, dank Deinem schönem Beispiel sollte auch ein Auslesen aus der dB hinzubekommen sein.

                    L Homoran 2 Replies Last reply Reply Quote 0
                    • L
                      legro @Dieter_P last edited by

                      @dieter_p said in Daten nur einmal täglich in Influxdb schreiben:

                      Leider findet zB Flot diese Werte nicht. Mag sein, das es daran liegt das sie ja jetzt "manuell" geschrieben wurden und nicht über die Konfiguration eines Datenpunktes in der Admin Oberfläche. ..

                      Nun kenne ich Flot nur vom Hörensagen. Ich nutze Grafana und habe noch keinen Unterschied in der Verwendung der in InfluxDB gespeicherten Daten feststellen können; es ist definitiv gleichgültig, ob die Daten vom Adapter oder über sendTo in die Datenbank geschrieben wurden.

                      Sei versichert: Auch der Adapter verwendet letztendlich auch bloß sendTo, um die Daten in InfluxDB zu schreiben.

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Dieter_P last edited by

                        @dieter_p sagte in Daten nur einmal täglich in Influxdb schreiben:

                        Leider findet zB Flot diese Werte nicht.

                        ist der zugehörige Datenpunkt für influx konfiguriert?
                        wie sieht da der Datenverlauf aus?

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          Dieter_P @Homoran last edited by Dieter_P

                          @homoran said in Daten nur einmal täglich in Influxdb schreiben:

                          @dieter_p sagte in Daten nur einmal täglich in Influxdb schreiben:

                          Leider findet zB Flot diese Werte nicht.

                          ist der zugehörige Datenpunkt für influx konfiguriert?

                          Nein, die Werte werden vom Blockly/Skript s.o. direkt in die Datenbank geschrieben. Entsprechend verwundert das auch nicht wirklich, da dies so auch extern von irgendeiner anderen Software passieren könnte ohne das Flot bzw. das IOBroker-Umfeld diesen DatenPunkt/Datenbezeichnung (gasTag) kennt.

                          Ob es Sinn macht diesen in IObroker anzulegen und für influx zu konfigurieren ohne dass der DP etwas schreibt also nur damit er "bekannt" ist, scheitert daran das er nur mit der ID: "gasTag" im root Verzeichnis liegen müßte, ob man das tun sollte, weiß ich nicht.

                          @legro Thx, ja am Ende was in der dB steht ist gleich. Auf dem Weg dahin ist es nur anders bzw. Flot benötigt nimmt nur per Auswahlmenü Datenpunkte die über die IObrokerObfläche dafür konfiguriert worden sind. Grafana ist da freier bzw. nicht so tief integriert in IObroker.

                          Also mein temporäres Fazit: Was ich am IOBroker/InfluxAdapter vorbei in die dB schreibe muß ich dann auch wieder selbst herauslesen -> eigene Queries bauen und in DPs schreiben.

                          Homoran L 3 Replies Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @Dieter_P last edited by

                            @dieter_p sagte in Daten nur einmal täglich in Influxdb schreiben:

                            Nein, die Werte werden vom Blockly/Skript s.o. direkt in die Datenbank geschrieben

                            wie soll flot dann da ran kommen?
                            Flot greift auf die historischen Daten des Influxdb-Adapters zu.
                            Wenn da nichts konfiguriert ist, sieht flot auch nichts.

                            1 Reply Last reply Reply Quote 0
                            • K
                              klassisch Most Active last edited by

                              Zu den influx- Mechanismen kann ich nichts beitragen.
                              Meine Erfahrung aber ist, daß gerade Energie- und Verbrauchsdaten ein Schatz für Optimierungen darstellen. Und da kommt es nicht nur auf tägliche Energiemengen an, sondern auch auf Leistungen und zeitliche Verläufe.
                              Deshalb sage ich mir: Alle Daten wegschreiben (gut, bei Smartmeter wird über 30 Sekunden gemittelt), Speicherplatz ist heute billig.
                              Zusätzlich mache ich Tages-,Wochen-, Monats-, Jahresstatistik, wobei man das mittlerweile wohl auch über fertige Adapter machen lassen kann.

                              Kurzum - Ein Wert pro Tag wäre mir zu wenig. Man kommt immer wieder zu Fragestellungen, wo man gerne mehr Daten hätte.

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

                                @klassisch said in Daten nur einmal täglich in Influxdb schreiben:

                                .. Zusätzlich mache ich Tages-,Wochen-, Monats-, Jahresstatistik, wobei man das mittlerweile wohl auch über fertige Adapter machen lassen kann. ..

                                Hier habe ich dokumentiert, wie ich Tages-, Wochen-, Monats- und Jahreswerte generiere und verwalte.

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

                                  @dieter_p said in Daten nur einmal täglich in Influxdb schreiben:

                                  ... Grafana ist da freier bzw. nicht so tief integriert in IObroker ..

                                  Das mag ich einfach nicht glauben. Der Adapter verwendet doch ebenfalls bloß sendTo. Vielleicht erwartet Flot sog. Metadaten, die ich in meinem Beispiel nicht schreibe.

                                  Wenn du dir genauer ansehen möchtest, was man sendTo übergeben kann, schau dir diese Anleitung auf GitHub an.

                                  Vorsicht! Der Beispielcode enthält noch immer Fehler. In den Adapterbezeichnungen steht history statt influxdb. Auch ist im erste Beispiel die Klammersetzung falsch: statt eckige Klammern [..] müssen geschweifte {..} verwendet werden, schließlich wird hier ein Objekt übergeben.

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    Dieter_P @legro last edited by Dieter_P

                                    @legro said in Daten nur einmal täglich in Influxdb schreiben:

                                    @dieter_p said in Daten nur einmal täglich in Influxdb schreiben:

                                    ... Grafana ist da freier bzw. nicht so tief integriert in IObroker ..

                                    Das mag ich einfach nicht glauben. Der Adapter verwendet doch ebenfalls bloß sendTo. Vielleicht erwartet Flot sog. Metadaten, die ich in meinem Beispiel nicht schreibe.

                                    So wie @homoran es schreibt. Flot funktioniert nicht ohne die influxdb Instanz bzw. IOBroker. Grafana ist das völlig egal und guckt direkt in die dB.

                                    Hier mal das Auswahlmenü von Flot:
                                    0414b0ad-8a66-4a84-a8c3-3ddcf845b813-grafik.png

                                    Aber am Ende ist es halt so, wie es ist und ich komme damit zu recht. Sonstige Lösungen wären aufwendiger, haben Lücken oder gefallen mir wie Grafana eingebettet im VIS auf Grund der benötigten Ladezeit nicht. Insofern die Werte per Query wieder manuell aus der dB holen und alles tip top!

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators last edited by

                                      @legro natürlich sind die Daten jetzt wahrscheinlich korrekt in der Datenbank (mit sendTo).
                                      @Dieter_P aber zum rausholen benötigt flot Zugriff auf den Datenpunkt. und das geht über den influxdb-Adapter sowie einen konfigurierten Datenpunkt dafür.
                                      und zwar der DP muss konfiguriert werden unter dessen ID der Wert direkt in die InfluxDB geschrieben wurde.
                                      Dann wird flot auch die am Adapter vorbei geschriebenen Werte sehen!

                                      Wo ist denn das Problem?

                                      D 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @Dieter_P last edited by

                                        @dieter_p sagte in Daten nur einmal täglich in Influxdb schreiben:

                                        Hier mal das Auswahlmenü von Flot:

                                        und wo ist der DP ausgewählt?
                                        oder soll flot die Werte aller IDs auf einmal darstellen?

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

                                          @dieter_p said in Daten nur einmal täglich in Influxdb schreiben:

                                          .. Ob es Sinn macht diesen in IObroker anzulegen und für influx zu konfigurieren ohne dass der DP etwas schreibt also nur damit er "bekannt" ist, scheitert daran das er nur mit der ID: "gasTag" im root Verzeichnis liegen müßte, ob man das tun sollte, weiß ich nicht. ..

                                          Die IDs vom InfluxDB-Adapter und sendTo müssen doch vermutlich bloß gleich lauten. Also anstelle „gasTag“ die (sehr lange) ID eintragen, die der Adapter generiert und schon sollte doch alles funktionieren.

                                          Aber wenn bereits alles zu deiner Zufriedenheit funktioniert, ist ja alles gut.

                                          Homoran 1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @legro last edited by

                                            @legro sagte in Daten nur einmal täglich in Influxdb schreiben:

                                            Die IDs vom InfluxDB-Adapter und sendTo müssen doch vermutlich bloß gleich lauten.

                                            genau das schreibe ich die ganze Zeit

                                            @homoran sagte in Daten nur einmal täglich in Influxdb schreiben:

                                            der DP muss konfiguriert werden unter dessen ID der Wert direkt in die InfluxDB geschrieben wurde.

                                            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

                                            506
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            32
                                            3007
                                            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