Ankündigung

Einklappen
Keine Ankündigung bisher.

Node-Red: regelmäßiges Schreiben von Daten in InfluxDB ohne extra Bustraffic

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Node-Red: regelmäßiges Schreiben von Daten in InfluxDB ohne extra Bustraffic

    Hallo,

    ich kann zwar in die Influx-DB schreiben (das funktioniert auch prima für alle Werte, die so über den Bus laufen), aber was mir echt Probleme macht, ist das automatische, zeitgetriggerte Schreiben in die Datenbank. Hierbei soll jeweils der letzte Wert geschrieben werden, der über den Bus gekommen ist.

    Ich möchte also explizit NICHT jeweils eine Leseanfrage senden (das funktioniert nämlich über KNX Ultimate ohne Probleme), sondern zeitgesteuert einfach den letzten Wert in die Datenbank schreiben, der auf der GA mal gesendet wurde. Das soll in regelmäßige Abständen passieren.

    Was ich damit erreichen will ist, dass ich (ohne extra Bus-Traffic) mitnotieren kann, wieviel Strom beispielsweise meine Deckenlampe verbraucht hat. Auch wenn das nicht ganz korrekt ist (wir vernachlässigen jetzt mal Verluste und Nichtlinearitäten), könnte ich durch Multiplikation des Dimmwertes mit einem Faktor bestimmen, wieviel Leistung ich gerade verbrauche.

    Ich habe mir bereits den Thread angesehen: https://knx-user-forum.de/forum/öffe...05#post1605305 aber leider hier keine Lösung für mein Problem gefunden, da hier zyklisch der Bus abgefragt wird.

    Hat jemand eine Idee? Irgendwie müsste ich mir den letzten Wert innerhalb von Node-Red speichern und bei Bedarf diesen dann weiter geben ...

    Viele Grüße,

    Stefan
    Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

    #2
    Ohne jetzt NR auf'n Schirm zu haben. Eine Linie KNX ultimate Node>> Influx Node (das schreibt Dir die Werte je Event.

    Und dann parallel zum direkten Influx Node noch sowas wie einen Zyklischen Baustein ggf Mal schauen wie so Timermodul im Code ausschaut und sich mit dem Payload vom KNX in einem Function Node selbst einen Node bauen. Und das Ding dann auch auf einen >> Influx Node. Dann kommt ein Wert streng zyklisch und einer eventgetrieben.
    ----------------------------------------------------------------------------------
    "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
    Albert Einstein

    Kommentar


      #3
      Ich würde den KNX-Node in eine Variable schreiben lassen (Change-Node schreibt msg.payload in flow.messwert.

      Über eine Inject-Node schreibst du dann zyklisch den Wert von flow.messwert über den Influx-Node in die Datenbank.
      Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
      KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

      Kommentar


        #4
        Hallo Göran,

        mein Problem ist, dass ich das eventgesteuerte Senden wegen der nachfolgenden Berechnung vermeiden will.

        TheOlli:
        so etwas hatte ich mir gedacht, nur habe ich bei Node-Red das Konzept der Variablen noch nicht ganz auf dem Schirm. Tatsächlich nutze ich bereits globaler Variablen für gewisse Zustände (Tag, Morgen, Abend, Nacht), aber da war ich bisher aus Performance Gründen sehr sparsam. Ich sehe aber, dass das funktionieren könnte. Alternativ dachte ich mir, den letzten Wert jeweils in die Influx DB zu schreiben und dann regelmäßig diesen letzten Wert in eine andere Tabelle zu übertragen. Ist aber an Ende nix anderes wie eine Variable.

        ... ich probiere es erst Mal mit ner Variablen...

        Viele Grüße,

        Stefan
        Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

        Kommentar


          #5
          Sag Bescheid wenn du Hilfe brauchst.

          Olli
          Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
          KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

          Kommentar


            #6
            Hi Stefan,

            ich habe es in Node-Red auch über Variablen realisiert und schreibe diese Werte dann alle 2 Minuten in die Influx-DB.

            Dabei sammle ich Werte aus knx (Temperaturen, kommen bei Änderungen), aus der Fritz-Box (Temperatur einer Dect-Steckdose bei Änderungen), aus meiner PV-Anlage (kommen alle 15 Sekunden) und vom Wetterdienst (Temperatur, kommen alle 10 Minuten).

            Klappt bei mir und für meine Zwecke super.

            Gleiches Angebot wie oben, wenn du Hilfe brauchst einfach melden.

            VG
            R.

            Kommentar


              #7
              Echt super - danke nochmals. Ich habe (globale) Variablen ja schon im Einsatz. Das sollte also möglich sein.

              Viele Grüße,

              Stefan
              Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

              Kommentar


                #8
                OK - globale Variable habe ich hinbekommen, das war kein Problem mit 2 Flows, aber jetzt muss ich mich noch an die Auslese der InfluxDB machen. Ich denke mal, der beste Weg wäre, den letzten Wert aus Influx auslesen, meinen nach 5 min bestimmten Arbeitswert dazuaddieren und dann wieder als neuen Datenpunkt zu speichern.

                So würde ich einen hochlaufenden Stromzähler für die Lampe bekommen. Korrekt?

                Viele Grüße,

                Stefan
                Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

                Kommentar


                  #9
                  Warum möchtest du den Wert zurücklesen?
                  der steht doch noch in der NR-Variable.
                  Mit Heimautomatisierung lassen sich alle Probleme lösen die wir sonst gar nicht hätten...
                  KNX + HUE + SONOS + SIMATIC-S7 + Fritzbox + RasPi mit NodeRed + Telegramm

                  Kommentar


                    #10
                    Ich kann die Frage gut verstehen - da habe ich wohl etwas zu wenig Infos gegeben.

                    Ich will mir einen Energiezähler bauen - also den Verbrauch meiner Deckenlampen mit der Zeit zusammenrechnen. Daher will ich alle 5 min in die Datenbank einen neuen (kumulierten) Verbrauchswert schreiben. Ich kann mir dann ein Diagramm machen, in dem ich das über mehrere Wochen beobachte und daraus schlussfolgere, ob sich der Austausch meiner Halogenlampen lohnt (aktuell meiner Einschätzung nach nur, wenn ich einen deutlichen Qualitätsverlust in Kauf nehme).

                    Das bedeutet, dass ich gerne den letzten Wert aus der InfluxDB lesen möchte und den aktuellen Verbrauch der letzten 5 min dazuaddiere und als neuen Datenpunkt abspeichere.

                    Viele Grüße,

                    Stefan

                    p.s.: ich könnte das natürlich auch in einer node-red Variable speichern - und immer nur das (kumulierte) Ergebnis speichern, aber so hätte ich die Sicherheit bei Neustart von NR auch immer den aktuellsten Wert mitzunehmen.
                    pps.: es gibt wohl auch in influx die Möglichkeit, Werte zu errechnen und damit eine neue Tabelle zu füllen, aber da habe ich mich noch nicht ausreichend beschäftigt.
                    ppps.: die 5 Minuten sind ein Abwägen zwischen Genauigkeit und Datenmengen und für mich völlig ausreichend...

                    Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

                    Kommentar


                      #11
                      Zitat von lobo Beitrag anzeigen
                      es gibt wohl auch in influx die Möglichkeit, Werte zu errechnen und damit eine neue Tabelle zu füllen, aber da habe ich mich noch nicht ausreichend beschäftigt.
                      Das kann auch einfach Grafana bei der Aufbereitung in der Grafik. Und für eine Verbrauchsauswertung ist dann auch eher der Momentanverbrauchswert in relativ kurzer Zeit gespeichert interessant. Ich habe meine Dashboards auch alle nur auf Basis des Momentanverbrauchswertes. Weil ich will ja sehen wann über den Tag wieviel verbraucht wird. Der reine Zählerstand ist da uninteressant weil das im Chart immer eine Linie von links unten nach rechts oben ergibt, halt nur unterschiedlich steil. Mit den Einzelwerten des Momentanverbrauchs kannst schneller Durchschnitte Summe je Tag / Woche usw. ermitteln.
                      ----------------------------------------------------------------------------------
                      "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
                      Albert Einstein

                      Kommentar


                        #12
                        Ist natürlich auch eine Möglichkeit- und habe ich jetzt mal testweise so eingerichtet.

                        Spaßeshalber habe ich mir mal ein paar andere Werte ausummieren lassen. Das war recht einfach, allerdings hat nur die Aufsummier-Funktion korrekt funktioniert. Eigentlich hätte ich ja lieber die Integral-Funktion genutzt - sprich: ich schicke immer den aktuellen Verbrauch (in kW) und Grafana integriert das dann zu kWh. Das hätte den Vorteil, dass ich auch bei Neustarts von Node-red kontinuierlich korrekte Werte speichere. Da ich das nicht hinbekomme, speichere ich aktuell immer entsprechende kWh-Pakete, aber bei Neuanlauf kommt das halt etwas aus dem Tritt. Das ist nicht wirklich relevant, nur etwas unschön.

                        Viele Grüße,

                        Stefan
                        Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

                        Kommentar


                          #13
                          Hallo zusammen,

                          ich habe das Problem mit einem Trigger-Baustein gelöst. Der sendet mir alle 5 Minuten den letzten Wert nach influxdb.

                          image.png ​​
                          image.png

                          Viele Grüße

                          Kommentar

                          Lädt...
                          X