Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX node for node-red

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

    Hi Jumper
    Yes, because you are using the "Ultimate Filter" in red. The upper pin exits only "true" values, the second pin, only "false".
    Please paste this code into your flow and examine how i changed it.
    Code:
    [
    {
    "id": "ea8482b4.dd602",
    "type": "knxUltimate",
    "z": "b01baf95.baaab",
    "server": "f7bf83b4.775238",
    "topic": "5/0/4",
    "outputtopic": "",
    "dpt": "1.001",
    "initialread": false,
    "notifyreadrequest": false,
    "notifyresponse": false,
    "notifywrite": true,
    "notifyreadrequestalsorespondtobus": false,
    "notifyreadrequestalsorespondtobusdefaultvalueifno tinitialized": "",
    "listenallga": false,
    "name": "Windfang Sperre ein",
    "outputtype": "write",
    "outputRBE": false,
    "inputRBE": false,
    "formatmultiplyvalue": 1,
    "formatnegativevalue": "leave",
    "formatdecimalsvalue": 999,
    "passthrough": "no",
    "x": 140,
    "y": 340,
    "wires": [
    [
    "71e96217.ed0d7c"
    ]
    ]
    },
    {
    "id": "71e96217.ed0d7c",
    "type": "trigger",
    "z": "b01baf95.baaab",
    "op1": "",
    "op2": "false",
    "op1type": "pay",
    "op2type": "bool",
    "duration": "5",
    "extend": false,
    "units": "s",
    "reset": "false",
    "bytopic": "all",
    "name": "",
    "x": 340,
    "y": 340,
    "wires": [
    [
    "b2f576f9.2d8a58"
    ]
    ]
    },
    {
    "id": "b2f576f9.2d8a58",
    "type": "function",
    "z": "b01baf95.baaab",
    "name": "Wipe origin",
    "func": "return {payload:msg.payload};",
    "outputs": 1,
    "noerr": 0,
    "x": 510,
    "y": 340,
    "wires": [
    [
    "4148074b.dcc77"
    ]
    ]
    },
    {
    "id": "4148074b.dcc77",
    "type": "knxUltimate",
    "z": "b01baf95.baaab",
    "server": "f7bf83b4.775238",
    "topic": "5/0/4",
    "outputtopic": "",
    "dpt": "1.001",
    "initialread": false,
    "notifyreadrequest": false,
    "notifyresponse": false,
    "notifywrite": true,
    "notifyreadrequestalsorespondtobus": false,
    "notifyreadrequestalsorespondtobusdefaultvalueifno tinitialized": "",
    "listenallga": false,
    "name": "Windfang Sperre ein",
    "outputtype": "write",
    "outputRBE": true,
    "inputRBE": false,
    "formatmultiplyvalue": 1,
    "formatnegativevalue": "leave",
    "formatdecimalsvalue": 999,
    "passthrough": "no",
    "x": 750,
    "y": 340,
    "wires": [
    []
    ]
    },
    {
    "id": "f7bf83b4.775238",
    "type": "knxUltimate-config",
    "z": "",
    "host": "192.168.2.13",
    "port": "3671",
    "physAddr": "1.0.5",
    "suppressACKRequest": false,
    "csv": "",
    "KNXEthInterface": "enp3s0",
    "KNXEthInterfaceManuallyInput": "",
    "statusDisplayLastUpdate": true,
    "statusDisplayDeviceNameWhenALL": true,
    "statusDisplayDataPoint": false,
    "name": "",
    "localEchoInTunneling": false,
    "delaybetweentelegrams": "",
    "delaybetweentelegramsfurtherdelayREAD": ""
    }
    ]
    Zuletzt geändert von TheMax74; 12.06.2020, 10:28.

    Kommentar


      Thanks. Its works.
      But why my flow doesn´t do it?
      I'm a little confused.
      Theoretically, my flow should be okay, right?
      Gruß
      Thorsten

      Meine Installation: EFH mit EIB und Powernet; BJ Triton RTR 5fach; BJ Triton 3/5fach; BJ Wave Fenstermelder; Gira HS; Gira SmartSensor; Gira TK mit Fingerprint und TK-Gateway, Agfeo AS30 mit ST40IP; Dialogic Touch 15" mit Homecockpit und Schnittstelle zur Gira TK-Anlage; ipod Touch 1G und iphone 3G mit WHD iphone Docking-Station; Dreambox 7000; Kathrein UFS 910; Beleuchtung über DALI gesteuert

      Kommentar


        Hi Jumper
        in your flow, there's still the circular reference protection active. If you need to get rid of it (knowing what you're doing), you need to use the code you find at the bottom of this page.
        https://github.com/Supergiovane/node...i/-Protections
        Hope this helped to understand.

        Kommentar


          Hi all,
          for those having facebook, here is knx-ultimate official facebook's page.
          https://www.facebook.com/knxUltimate

          I remember, that you can contact me via github (the better choice), via Facebook page or here in this thread. Please avoid Forum's PM, because i've no notification of new PM's so i may miss your messages.
          Thank you again in trusting knx-ultimate 🤝.

          Kommentar


            xrk
            Hi und sorry, dass ich diesen Thread hier "misbrauche", aber ich fand Deinen Erklärungen zu influxdb sehr gut und möchte das auch gerne einsetzen. Die meisten Tipps habe ich schon übernommen, aber bei der Ablage selbst, bin ich noch unsicher. An anderer Stelle hatte ich gesehen, dass jemand versucht hat, jeden Messwert möglichst in allen Formaten abzuspeichern, daher hatte ich mir in Node-Red eine Funktion geschrieben, die (je nach Datentyp) versucht, folgende Felder sinnvoll zu setzen:
            valueRaw: Original-Messwert als String
            value: Messwert, wie er von Ultimate-KNX kommt
            valueNumeric: valueNumeric,
            valueBool: valueBool,
            valueString: valueString,
            measureunit: msg.payloadmeasureunit,
            groupAddress: msg.topic,
            mainGroup: Bezeichnung der Hauptgruppe (aus GA-Bezeichnung)
            middleGroup: Bezeichnung der Mittelgruppe (aus GA-Bezeichnung)
            location: Raum (aus GA-Bezeichnung)
            device: Gerät (aus GA-Bezeichnung)
            action: Aktion (aus GA-Bezeichnung)

            Das alles wollte ich dann nach Influx schreiben, wobei das meiste tags werden sollten, so hatte ich das bereits vorbereitet, bevor ich Deine Empfehlungen gesehen habe.

            Meine konkreten Fragen:
            - Macht eine Konvertierung denn überhaupt Sinn, oder reicht es (abgesehen von Deiner Konvertierung von Booleans) die Werte einfach so zu schreiben, wie sie als msg.payload von KNX-Ultimate übertragen wird?
            - Wie müsste ich die ganzen anderen Werte an den influx-node übergeben, damit diese als Tags übernommen werde (und nur die GA als measurement)?
            - Könnte ich eine "Mischform" machen, d.h. einige meiner Daten als Tags mit speichern, aber als Wert doch nur den Value von KNX Ultimate?

            Sorry, ist wahrscheinlich etwas wirr, aber vielleicht verstehst Du ja, was ich vorhatte...

            Kommentar


              Zitat von martiko Beitrag anzeigen
              Macht eine Konvertierung denn überhaupt Sinn, oder reicht es (abgesehen von Deiner Konvertierung von Booleans) die Werte einfach so zu schreiben, wie sie als msg.payload von KNX-Ultimate übertragen wird?
              Für mich reicht es aus sie so ins InfluxDB weiterzuleiten/schreiben, wie die vom KNX Ultimate Node kommen (Ausnahme - Booleans, wie ich in Post #198 paar Seiten vorher erklärt habe).

              Zitat von martiko Beitrag anzeigen
              Wie müsste ich die ganzen anderen Werte an den influx-node übergeben, damit diese als Tags übernommen werde (und nur die GA als measurement)?
              Mindestens ein Field ist notwendig um den Datensatz ins InfluxDB speichern zu können, daher nur mit Tags alleine geht es nicht.

              Um Daten in Fields und Metadaten in Tags zu speichern (dies wäre nach InfluxDB Konvention der richtige Weg), übergibt man an InfluxDB Knoten ein Element mit zwei Objekten. Die Daten im ersten Objekt werden als Fields behandelt, die Daten im zweiten Objekt als Tags.

              Hier ein Beispiel als msg.payload mit zwei Objekten (achte auf zwei Sets von geschweiften Klammern):
              Code:
              msg.payload = [{
                  // First object lists the set of named fields (for further info, see InfluxDB Node Help in Node-Red)
                 value: msg.payload,
              },
              {
                 // The second object lists the set of named tags
                 source : msg.knx.source,
                 dpt: msg.knx.dpt,
                 description: msg.devicename,
                 event: msg.knx.event
              }];
              value ist als Field, source, dpt, description und event als Tags.

              Zitat von martiko Beitrag anzeigen
              Könnte ich eine "Mischform" machen, d.h. einige meiner Daten als Tags mit speichern, aber als Wert doch nur den Value von KNX Ultimate?
              Ja, siehe oben.
              Als Beispiel nehmen wir mal eine Wetterstation. Hier der Temperaturwert wäre Field (Daten) und Metadaten (z.B. Aufbauort, dpt, usw.) würden in Tags gespeichrt. Tags werden von InfluxDB indiziert, was die Suche nach diesen schneller macht. Fields werden nicht indiziert.

              Gruß
              Risto
              Zuletzt geändert von xrk; 05.09.2020, 15:44.
              Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“

              Kommentar


                xrk
                Super vielen Dank, das hat mir sehr geholfen. Habe es jetzt so gemacht, dass ich zwar den devicename ausflitte und die sich daraus ergebenden Informationen (Raum etc.) in einzelne Tags speichere, aber auf die Konvertierung verzichte ich... Zum einen ist das ja mehrfache Datenspeicherung und am Ende bringt es bei den entscheidenen Messwerten (Temperaturen etc.) ja eh nicht wirklich was (da sollte von KNX Ulitmate ja schon der korrekte Messerwert kommen).

                Zur Übergabe habe ich aber direkt ein neues Objekt angelegt, von dem ich den Payload mit den zwei Objekten setze und direkt die GA als measurement eintrage, dann konnte ich auf den zusätzlichen Filterknoten verzichten. (keine Ahnung, was da effizienter ist).

                So es aussieht, kommen in influx auch schon die Datensätze an (als measurement sehe ich auch die GA), jetzt warte ich mal ein bisschen ab (von meinem Testbrett kommt ja noch nicht so viel an Daten) dann versuche ich den nächsten Schritt um mir das in Grafana anzuschauen.

                Danke noch mal für Deine tolle Unterstützung!

                Kommentar


                  Hi TheMax74

                  Is it possible to send a dpt19.000 (dateTime) Telegram to KNX? I only found them seperated in your Examples, but i need them combined.

                  Thank you for your Reply
                  samu

                  edit: I searched and tried 1 Hour before I wrote that. I found the solution 5 min after Posting
                  Just send that:
                  Code:
                  return {payload:new Date()};
                  Zuletzt geändert von samu; 10.09.2020, 14:11.

                  Kommentar


                    Hi Samu
                    on the wiki in github page of knx-ultimate, there is an exaustive list of samples.
                    cheers!

                    Kommentar


                      Hello
                      the latest version of knx-ultimate contains more inline samples, directly in the config window, on how to pass messages to the node, based on selected datapoint.

                      Please see the changelog and enjoy.
                      https://github.com/Supergiovane/node...r/CHANGELOG.md

                      And here is the wiki
                      https://github.com/Supergiovane/node...ki/de-Overview

                      Kommentar


                        Hey fbirkholz, can we continue the discussion here, instead of PM? That's better for me, thank you.

                        Kommentar


                          Zitat von TheMax74 Beitrag anzeigen
                          Hey fbirkholz, can we continue the discussion
                          Yes, of cause.

                          Let me split my responses and repeat that everybody can understand:

                          MDT AKH0800 is using a diagnostic string containing information - DPT 16.000

                          in ETS a read is looking like this:
                          Eigenschaft Value
                          DataPointType 16.000 Zeichen (ASCII)
                          DecodedDpValue 57 69 20 48 20 4B 6F 6D 66 6F 72 74 20 30 | Wi H Komfort 0
                          RawDpValue 57 69 20 48 20 4B 6F 6D 66 6F 72 74 20 30
                          While Node Red is showing in debug output:
                          .10.2020, 15:23:20node: Essz-DiagEG-Essz-Diag : msg.payload : string[14]
                          "1" and down the knx node it shows 1 with many small rectangulars
                          Your question as per PM:
                          The datapoint 16.000 is not the same as 16.001
                          16.000 is a single char, 16.001 is a string of 14 chars.


                          ETS auto identified this DP but states:
                          as 16.000 ASCII as well handbook isn't mentioning which DP to use.
                          Now I've changed DP in ETS on Actor to 16.001 + knxdevice on node red, but still see only 1 with tons of rect.

                          and same result like with 16.000 in ETS-Groupmonitor:
                          Eigenschaft Wert
                          DataPointType 16.001 Zeichen (ISO 8859-1)
                          DecodedDpValue 57 69 20 48 20 53 74 61 6E 64 62 79 20 30 | Wi H Standby 0
                          RawDpValue 57 69 20 48 20 53 74 61 6E 64 62 79 20 30
                          thx
                          Franc

                          Kommentar


                            Hi Franc
                            Sorry,correction DPT 16.000 is a char string ASCII, 16.001 is ISO.

                            where do you see the [] ? In the node status or maybe do you have attached a debug node to the knx-ultimate?
                            The MDT AKH0800 uses DPT 16.000, so you was right using 16.000. At least .... as stated in the user manual, attached.
                            Do this: attach a debug node to knx-ultimate and set the DPT to 16.000, then using ETS, send a char to the group address, using datapoint 16.000 and see what happens.
                            https___www_mdt_de_download_MDT_TM_Heating_Actuator_02_pdf.png

                            MY TEST

                            I also tested with my system, by simulating the MDT and for me, it works.
                            Schermata_2020-10-09_alle_18_21_33_png.png
                            Node-RED.png
                            Angehängte Dateien
                            Zuletzt geändert von TheMax74; 09.10.2020, 17:25.

                            Kommentar


                              Zitat von TheMax74 Beitrag anzeigen
                              Hi Franc
                              Sorry,correction DPT 16.000 is a char string ASCII, 16.001 is ISO.
                              It seems it doesnt' matter instead of codepaging - just changed it back :-)
                              By the way - with your screenshots I learned that german (original?) handbook is not 1:1 with english version. In German version I was not able to find DPT description. Will now start to read english manuals for MDT as well :-)

                              I can see the DPT in Status and in debug node

                              knxultimate-dump.PNG
                              Debug states in detail:
                              9.10.2020, 18:28:57node: Essz-DiagEG-Essz-Diag : msg.payload : string[14]
                              "1"

                              Sending a Textstring via group-manager didn't changed anything.

                              thx
                              Franc

                              Kommentar


                                Hi Franc,
                                even if you send only a simple text like "hello" from ETS, it doesn't work?

                                And sorry but... what node is this at right? My debug node doesn't show any status.
                                Anyway, the node sends the correct value, as you wrote
                                9.10.2020, 18:28:57node: Essz-DiagEG-Essz-Diag : msg.payload : string[14]
                                "1"
                                For me, it's maybe related to the language/coding of your browser.
                                Zuletzt geändert von TheMax74; 09.10.2020, 17:57.

                                Kommentar

                                Lädt...
                                X