Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX über Node Red in InfluxDB

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

    #16
    Zitat von meti Beitrag anzeigen
    Bei Modbus müsste man, soweit ich weiß, für jedes Register ein Request machen.
    Nein, du kannst direkt mehrere Register mit einem Aufruf abfragen. Hier Frage ich 50 Register ab Position 69 ab:
    Bildschirmfoto 2021-01-21 um 12.56.35.png

    Das ist ein Beispiel für meine PV-Auslesen:
    Bildschirmfoto 2021-01-21 um 12.56.55.png

    Hier frage ich jede Sekunde per Modbus die aktuellen Daten vom Solaredge WR ab. Die Tages/Monats/Jahreswerte hole ich aus der Solaredge-Cloud alle 15min ab. Alle Werte bringe ich auf meine openHab-Items und sehe diese über die App. So habe ich per Smartphone immer sekundengenaue Produktionswerte um zu schauen ob genug Reserve für Spülmaschine o.ä. vorhanden ist. Speichern oder automatisieren tue ich noch nicht. Das HomeConnect von Bosch bekomme ich in Node-Red noch nicht so zum Laufen...

    Wir brauchen hier echt ein Node-Red-Unterforum. So ein geniales Tool.

    Kommentar


      #17
      zeebee Ich sehe schon du bist mein Mann für Node-Red 😉

      Kommentar


        #18
        Ich finde Node Red hat ein eigenes Projektforum verdient.

        Es scheinen sich hier ja doch einige Anwender zu tummeln...
        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


          #19
          Hallo,

          ich möchte euch an meinen Teilerfolg teilhaben lassen und hoffe dass mir jemand bei meinen Problem weiterhelfen kann.

          Also eins mal vorweg KNX Ultimate ist echt super und hat den Filter um nur Änderungen weiterzuleiten schon integriert.
          KNXUltimate.JPG

          Hier mein Flow zum loggen der KNX Daten, ich denke da ist sicher Verbesserungspotenzial, aber ich bin froh dass er mal so läuft 😉
          Flow.JPG

          So schaut die Funktion dazu aus:
          function.JPG

          Und das Ergebnis in der InfluxDB schaut dann so aus:
          influxdb.JPG

          Was mir jetzt noch fehlt ist dass die Werte alle Stunden einmal geschrieben werden, hat dazu einer eine Idee?

          Ich wäre auch für ein Node Red Forum
          Angehängte Dateien

          Kommentar


            #20
            Zitat von uzi10 Beitrag anzeigen
            Kann Node Red schon das neue Influx 2.x Format?
            Ja kann es, zumindest kann man es bei der Verbindung einstellen.
            Influx.jpg

            Kommentar


              #21
              Zitat von heinzi00 Beitrag anzeigen
              Was mir jetzt noch fehlt ist dass die Werte alle Stunden einmal geschrieben werden, hat dazu einer eine Idee?
              Meine Idee (nicht getestet): du brauchst dafür eine Dopplung des Strangs ohne RBE: ein Inject-Node mit Intervall auf 60min, der das KNX-Objekt nochmal in Influx schreibt.

              Kommentar


                #22
                Zitat von heinzi00 Beitrag anzeigen

                Was mir jetzt noch fehlt ist dass die Werte alle Stunden einmal geschrieben werden, hat dazu einer eine Idee?
                Vor dem KNX node einen inject node setzen und den stündlich feuern lassen.

                Kommentar


                  #23
                  Zitat von zeebee Beitrag anzeigen
                  Meine Idee (nicht getestet): du brauchst dafür eine Dopplung des Strangs ohne RBE: ein Inject-Node mit Intervall auf 60min, der das KNX-Objekt nochmal in Influx schreibt.
                  Zitat von megahorst Beitrag anzeigen
                  Vor dem KNX node einen inject node setzen und den stündlich feuern lassen.
                  Ich Danke euch, werde ich ausprobieren. Habe mir gedacht dass es wahrscheinlich nichts bringt vor dem KNX node etwas zu setzen weil er die Daten so oder so von KNX holt, aber da habe ich mich wohl geirrt.

                  Kommentar


                    #24
                    Leider schaffe ich es nicht mit der Inject Node es zum laufen zu bringen, wenn ich sie vor dem KNX Node setze, schreibt er auf den KNX Bus, aber liest keine Werte vom KNX Bus.

                    Kommentar


                      #25
                      So sieht das bei mir aus:

                      inject.jpg
                      read.jpg

                      Kommentar


                        #26
                        megahorst Besten Dank, so funktioniert es jetzt auch bei mir.

                        Kommentar


                          #27
                          Hallo zusammen,

                          ich möchte endlich versuchen Daten von KNX in eine Datenbank zu schreiben. Habe auch schon influxdb in Docker auf der Synology am laufen. Jetzt würde ich gerne die Temperaturwerte vom Taster loggen. Aktuell läuft auf NodeRed KNX easy. Wäre KNX ultimate besser?

                          Könnte mir vielleicht auch jeman dkurz erklären oder aufzeigen wie ich die Nodes anlegen muss? Oben sehe ich was von json und function node. Dachte ich lasse einfach den Wert aus der Gruppenadresse direkt in influxdb schreiben!?

                          Vorab schon mal vielen Dank!
                          MfG
                          Chris

                          Kommentar


                            #28
                            Zu KNX easy kann ich nichts sagen, mit KNX Ultimate ist es in Node RED absolut einfach.

                            Screenshot_2.jpg

                            Ignorier die beiden Debug-Nodes, die haben sonst keine Funktion
                            Der knx-ultimate Node muss im Universalmodus sein, damit er alles empfängt.
                            Funktionsnode:
                            Code:
                            [{"id":"a5018672.cfa578","type":"function","z":"bc30345e.5ba938","name":"KNX to Influx","func":"// Filter DPTs that are not suitable for logging, like time, RGB, etc\nvar forbiddenDptStarts = [\n    \"10.\", // Time\n    \"11.\", // Date\n    \"19.\", // Date/Time\n    \"232.\", // RGB\n];\n\nvar dpt = msg.knx.dpt;\nfor (var i = 0; i < forbiddenDptStarts.length; i++) {\n    if (dpt.startsWith(forbiddenDptStarts [i])) {\n        return null;\n    }\n}\n\n// Boolean values cannot be compacted by InfluxDB into lower resolution retention policies (=database tables)\n// The reason is that the mean/average computation of boolean results in null value in InfluxDB.\n// Thus we turn all booleans into numeric values: false=0, true=100.\n// See Post #200 below for further information about InfluxDB retention policies and compacting data\nvar payloadValue = msg.payload;\nif (typeof payloadValue === 'boolean'){\n     if (payloadValue === true){\n         payloadValue = 100;\n     } else {\n          payloadValue = 0;\n     }\n}\n\nvar newMsg = {\n    measurement: msg.knx.destination,\n    payload: [\n        {\n            value: payloadValue\n        },\n        {\n            source: msg.knx.source,\n            dpt: msg.knx.dpt,\n            //description: msg.devicename,\n            event: msg.knx.event\n        }\n    ],\n    _msgid: msg._msgid\n};\n\nreturn newMsg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":920,"wires":[["99a34bc5.dfe5f8","2e188c1d.c05c14"]]}]
                            Angelehnt an die Vorlage von xrk, habe es aber eben alles über eine einzelne Funktionsnode gelöst.
                            Chris

                            Kommentar


                              #29
                              besten Dank. Da muss ich noch viel lesen um den ganzen code zu verstehen

                              Momentan habe ich eher das Problem, dass ich nicht mal mit node red daten nach influx bekomme (ehostunreach). Das werden wieder schlaflose Nächte
                              MfG
                              Chris

                              Kommentar


                                #30
                                Nachdem ich influxdb 2.0 auf der Syno habe, denke ich muss der ganze String anders aufgebaut sein. Wenn ich mal das Problem mit dem ehostunreach gelöst bekomme, wird sich denke ich der code im function node ergeben
                                MfG
                                Chris

                                Kommentar

                                Lädt...
                                X