Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Verfügbarkeit von Sensoren über Node Red überwachen

    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

    Verfügbarkeit von Sensoren über Node Red überwachen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Schmetterfliege last edited by

      @schmetterfliege Oh bitte - lass den Flow wie er ist und hänge die list Node dazwischen - wie ich sie gepostet habe:

      0d59a74c-10c5-4caf-a84d-8f5e62b01bee-image.png

      S 1 Reply Last reply Reply Quote 0
      • S
        Schmetterfliege @mickym last edited by

        @mickym

        aaaaaah, von den IN Nodes redest du!
        Ich war die ganze Zeit in einem Test Flow in dem ich nur per Inject den namen von einem bestimmten Zigbee Device auslesen wollte

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Schmetterfliege last edited by

          @schmetterfliege sie Screenshot - lass die In-Node wie sie waren!!!! -

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Schmetterfliege last edited by mickym

            @schmetterfliege Na das kannst Du auch machen - das ist für das System sogar besser - die Namen nur einmal auszulesen.

            Das ist eigentlich besser. Warte mal - ich mach das dann mal:

            Dann musst aber die function Nodes wieder auf den ursprünglichen Stand zurück setzen.

            S 1 Reply Last reply Reply Quote 0
            • S
              Schmetterfliege @mickym last edited by Schmetterfliege

              @mickym

              Ok, ich warte :D.

              Habe mal die list Node so wie von dir beschrieben hinzugefügt:
              5ef7701e-7dc8-48ed-80a1-d612fe8669cf-image.png
              Der Output den ich abgreife sieht dann so aus:
              b4f493c4-ed3d-4bed-942e-b097764e65bf-image.png
              Und da ist - wie ich auch erwarte würde - nur der Name von dem DP Temperature - und der heißt Temperature^^
              Weil: es wird ja nur der DP temperature und humidity weitergegeben

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Schmetterfliege last edited by

                @schmetterfliege Ok - wir machen es dann so - wie ursprünglich mach die list Nodes wieder da raus und wir suchen die Namen aus den Geräten

                S 1 Reply Last reply Reply Quote 0
                • S
                  Schmetterfliege @mickym last edited by Schmetterfliege

                  @mickym
                  Ich glaube der Weg mit den List Nodes funktioniert bei dir, weil du den Datenpunkten andere Namen gegeben hast.
                  Bei dir hat der DP für die Temperatur den Namen "Bad Thermometer Temperature".

                  Bei mir heißen die bei allen devices einfach nur "Temperature", "Humidty" etc.
                  0a116f03-9246-4847-90af-6eaef35cde1f-image.png
                  Nur das "Device" hat den von mir gesetzten Namen.
                  Gibt es da eine Option dass der Name den ich im Zigbee Adapter vergebe auch in die ganzen DP übernommen wird?
                  Oder hast du die alle Manuell umbenannt?

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Schmetterfliege last edited by mickym

                    @schmetterfliege Ich mach das gleich mit den Geräten - wie gesagt bau den Flow wieder auf das Original auf heute morgen zurück- Ich habs gleich - Geduld!!!!

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      Schmetterfliege @mickym last edited by Schmetterfliege

                      @mickym

                      Schon passiert 🙂

                      Keine Hektik, versprochen! 🙂
                      Ich wundere mich bloß wieso man aus den DP die Namen auslesen kann, nicht aber den Namen vom Device selbst, also quasi dem "Ordner" in dem die einzelnen DP drin sind^^

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Schmetterfliege last edited by

                        @schmetterfliege So hier liest Du die Zigbee Namen aus und werden der ID zugeordnet:

                        2cf463b3-0261-450b-8a9a-7ea681fcff4c-image.png

                        In diesem Fall lesen benötigen wir auch keine Werte sondern lesen nur die Objekte vom Typ Gerät:

                        84bd4975-62c5-457a-951c-9b95b776e37c-image.png

                        [
                           {
                               "id": "7d289068.84697",
                               "type": "ioBroker list",
                               "z": "54b226bc.0793e8",
                               "name": "",
                               "topic": "zigbee.0.*",
                               "objType": "device",
                               "regex": "",
                               "asArray": "false",
                               "onlyIDs": "false",
                               "withValues": "false",
                               "x": 520,
                               "y": 1740,
                               "wires": [
                                   [
                                       "fc64b9ea.67b448"
                                   ]
                               ]
                           },
                           {
                               "id": "73e620e7.4e983",
                               "type": "inject",
                               "z": "54b226bc.0793e8",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "true",
                               "payloadType": "bool",
                               "x": 360,
                               "y": 1740,
                               "wires": [
                                   [
                                       "7d289068.84697"
                                   ]
                               ]
                           },
                           {
                               "id": "41298ffe.872ed",
                               "type": "debug",
                               "z": "54b226bc.0793e8",
                               "name": "",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "false",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 1190,
                               "y": 1740,
                               "wires": []
                           },
                           {
                               "id": "fc64b9ea.67b448",
                               "type": "change",
                               "z": "54b226bc.0793e8",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "change",
                                       "p": "topic",
                                       "pt": "msg",
                                       "from": "/",
                                       "fromt": "str",
                                       "to": ".",
                                       "tot": "str"
                                   },
                                   {
                                       "t": "change",
                                       "p": "topic",
                                       "pt": "msg",
                                       "from": "zigbee\\.0\\.(.*)$",
                                       "fromt": "re",
                                       "to": "$1",
                                       "tot": "str"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 710,
                               "y": 1740,
                               "wires": [
                                   [
                                       "dbecb3d4.1d80a"
                                   ]
                               ]
                           },
                           {
                               "id": "dbecb3d4.1d80a",
                               "type": "function",
                               "z": "54b226bc.0793e8",
                               "name": "Gerätenamen auslesen",
                               "func": "flow.set('zigbee.' + msg.topic + '.name',msg.payload.common.name);\n\n// return msg; \n",
                               "outputs": 1,
                               "noerr": 0,
                               "initialize": "",
                               "finalize": "",
                               "libs": [],
                               "x": 970,
                               "y": 1740,
                               "wires": [
                                   [
                                       "41298ffe.872ed"
                                   ]
                               ]
                           }
                        ]
                        

                        Das einmalige Einlesen in der Inject Node kannst selbst setzen.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Schmetterfliege @mickym last edited by

                          @mickym

                          Vielen Dank!

                          Mein Problem habe ich damit auch endlich kapiert!
                          Um den Namen vom "Device" auszulesen, muss ich zigbee.0 auslesen, nicht das einzelne Device

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Schmetterfliege last edited by

                            @schmetterfliege Ja in dem Fall ist es wichtig - dass der Device Filter der List Node funktioniert - das war leider auch nicht immer so. Sonst bekommst nämliche mit dem Wildcard alle Datenpunkte unter zigbee.0. geliefert.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              Schmetterfliege @mickym last edited by Schmetterfliege

                              @mickym

                              Ich habs irgendwie wieder kaputt gemacht..
                              Lassen wir mal das mit der aktualisierung weg, ich möchte nur per Knopfdruck eine Test Tabelle erstellen:
                              a19cf2b3-0f52-42c0-8cac-82cb5c582f26-image.png
                              Wenn ich da links triggere, bekomme ich die 18 Flow Variablen die ich haben möchte. Die sind auch alle korrekt, mit id, name, temp und hum.
                              Die Switch Node schaut ob ihm Namen "Multisensor" vor kommt, damit erhalte ich die 18 relevanten Sensoren.
                              Die Tabelle ist so konfiguriert:
                              be5f766a-8095-4248-bdb7-4fbf56172327-image.png
                              Aussehen tut sie aber so:
                              7f66bb10-a25e-494f-beb5-fb708326346c-image.png
                              An der Join Node sollte das nicht liegen, oder? Die sieht so aus:
                              deda2384-9d98-419a-bfae-2a1bca43abaa-image.png

                              Die Function node sieht so aus:
                              7090bcf9-0eaf-46ff-9d7c-5b500a803104-image.png

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Schmetterfliege last edited by

                                @schmetterfliege Was hat den die Gerätenname Node in dem Flow zu suchen?

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  Schmetterfliege @mickym last edited by

                                  @mickym

                                  Der heißt nur so, mit dem setze ich doch die Flow Variablen, oder nicht?

                                  mickym 2 Replies Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @Schmetterfliege last edited by mickym

                                    @schmetterfliege Mit der Gerätenamen Node setzt Du nur die Namen in den Objekten der Flow variablen.

                                    Deswegen ist dieser Teil völlig unabhängig von den Werten und sollte mit der Tabelle gar nichts zu tun haben. Die ID wolltest Du gar nicht in der Tabelle haben und warum ist dann dies in der ui_table. Die id dient nur der internen Adressierung.

                                    So und Dein Flow geht deswegen nicht, weil die split Node nichts zum aufteilen hat. Du musst ja erst die payload mit dem Inhalt der Flowvariablen füttern. 😉

                                    Trenn bzw. lass mal das Namen auslesen völlig getrennt vom eigentlich Flow.

                                    So sollte Dein Flow aussehen:

                                    16c46fc3-e45c-4e25-a00e-055ebe08c2c7-image.png

                                    und wenn Du die Ausgabe der Flow variablen testen willst - dann hängst Du eine Inject Node vor die setze msg. payload

                                    Aus meiner function Node - kommt nichts raus. 😉

                                    2a847cf5-e6d5-48e3-a9aa-2aee4064a7df-image.png

                                    Das return.msg habe ich auskommentiert. 😉

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Schmetterfliege last edited by

                                      @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                                      @mickym

                                      Der heißt nur so, mit dem setze ich doch die Flow Variablen, oder nicht?

                                      Wenn Du allerdings code in Deiner function Node verwendest - den ich nicht kenne - dann weiß ich es natürlich nicht. 😉

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        Schmetterfliege @mickym last edited by Schmetterfliege

                                        @mickym

                                        Die Change Node vor dem Split hat gefehlt, das hat das Problem gelöst! 🙂

                                        Wie gesagt, den Teil mit dem aktualisieren hab ich für den Test komplett weggelassen, da ich einfach nur eine neue Tabelle einmalig erzeugen wollte um zu schauen ob die sich richtig aufbaut.

                                        Ich hab den eigentlichen Flow jetzt wie von dir beschrieben (bis auf die extra Test Node oben).
                                        992b55f6-efd4-4966-ba65-4f07d1ce98e1-image.png

                                        Das setzt die Variablen, es erstellt aber nicht automatisch die Tabelle mit den Namen.
                                        Die kommt nur, wenn ich eine zweite INIT Node oben an den Change Node (wie von dir beschrieben) hänge.
                                        Nur wenn NR jetzt neu startet und beide gleichzeitig triggern, dann wird die Tabelle doch auch nicht gebaut, weil er sie baut bevor die Gerätenamen da sind?

                                        Mit anderen Worten:
                                        13882aaf-6ce8-4e31-99ad-61a9d331bb72-image.png
                                        Ich möchte, dass das rot markierte, also das was die Gerätenamen generiert, die Namen sofort in die Tabelle einträgt.
                                        Aber genau das tut sie eben nicht, sondern vermutlich erst wenn mal ein Sensor ein Update macht? (oder ich manuell die change node direkt darüber triggere)

                                        mickym 2 Replies Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Schmetterfliege last edited by mickym

                                          @schmetterfliege Die Init Node - hatte ich ja geschrieben - die muss halt einmalig trigger - da musst halt den Haken setzen. Dann sind die Namen doch direkt nach NR Start verfügbar. Die Werte kommen erst peu a peu, wenn Du die halt unbedingt einmalig initialisieren willst - dann musst halt noch zusätzliche list Nodes zum Auslesen benutzen.

                                          Also noch den Haken in der Init Node - dann werden die Namen sofort nach Systemstart gesetzt.

                                          ee2f6351-ba5b-4e70-90a3-625f2ce96d8c-image.png

                                          Manchmal scheine ich mich doch nicht klar auszudrücken:

                                          4b8adfdc-aa66-4ac6-a99a-12ab481850d9-image.png

                                          S 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Schmetterfliege last edited by mickym

                                            @schmetterfliege Die Namen werden aber natürlich erst gelesen wenn Du etwas getriggert ist. - wenn Du das nicht willst. Dann gibt halt aus der function Node eine Nachricht aus, wenn alles fertig ist. Das geht mit einer trigger Node.

                                            Kommentiere aus der Namens -function Node die return msg; wieder ein:

                                            1e02aa0a-7398-46ae-9b55-7c56867a6fb5-image.png

                                            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

                                            899
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            426
                                            49804
                                            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