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 sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

      EDIT: statt die IDs, Temp und Hum manuell zu setzen, könnte ich die natürlich beim Init mit einer LIST Node auslesen

      Wollte ich Dir gerade vorschlagen. 😉 - aber Du warst mal wieder schneller.

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

        @mickym

        Mit Datenpunkt meinst du doch bestimmt das hier:
        c475c175-958b-4c70-a0ca-64d902cb440b-image.png

        Das würde mir auch in einigen anderen Flows die "Arbeit" ersparen die Namen per Funktion manuell zu setzen.
        (Auch wenn die Arbeit in den anderen Flows ja schon erledigt ist)

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

          @mickym

          Du hängst einfach die list Node - zwischen die In Node und die Change Node.

          In der function Node greifst Du dann auf die Object-Eigenschaften direkt zu

          flow.set('sensors.' + msg.topic + '.temperature',msg.payload.val);
          flow.set('sensors.' + msg.topic + '.name',msg.payload.common.name);
          flow.set('sensors.' + msg.topic + '.id',msg.topic);
          return msg; 
          
          
          S 1 Reply Last reply Reply Quote 0
          • S
            Schmetterfliege @mickym last edited by

            @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

            @mickym

            Du hängst einfach die list Node - zwischen die In Node und die Change Node.

            In der function Node greifst Du dann auf die Object-Eigenschaften direkt zu

            flow.set('sensors.' + msg.topic + '.temperature',msg.payload.val);
            flow.set('sensors.' + msg.topic + '.name',msg.payload.common.name);
            flow.set('sensors.' + msg.topic + '.id',msg.topic);
            return msg; 
            
            

            Greife ich über .common.name auf den Name den ich per IoBroker gesetzt habe zu?
            e2199edc-e987-4b63-bd36-26af526c6264-image.png

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

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

              @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

              @mickym

              Du hängst einfach die list Node - zwischen die In Node und die Change Node.

              In der function Node greifst Du dann auf die Object-Eigenschaften direkt zu

              flow.set('sensors.' + msg.topic + '.temperature',msg.payload.val);
              flow.set('sensors.' + msg.topic + '.name',msg.payload.common.name);
              flow.set('sensors.' + msg.topic + '.id',msg.topic);
              return msg; 
              
              

              Greife ich über .common.name auf den Name den ich per IoBroker gesetzt habe zu?
              e2199edc-e987-4b63-bd36-26af526c6264-image.png

              Ja wenn Du das Objekt über die List Node ausliest:

              345fe790-f9ef-45e0-88c5-f851a36f8b04-image.png

              Das topic in der List Node lässt Du leer, das kommt von der In-Node die ja die List Node triggert.

              ce407b25-255f-4141-9ada-6f28c282a90b-image.png

              Das Objekt mit dem Namen siehst Du ja hier in der Debug Ausgabe:

              {"type":"state","common":{"name":"Bad Thermometer Temperature","type":"number","unit":"°C","read":true,"write":false,"role":"value.temperature"},"from":"system.adapter.zigbee.0","user":"system.user.admin","ts":1639232322550,"_id":"zigbee.0.00158d0003f4bf3e.temperature","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enums":{"enum.functions.temperature":"Temperatur","enum.functions.humidity":"Feuchtigkeit","enum.rooms.bath":"Bad"},"val":24.31,"ack":true,"q":0,"lc":1639232322550}
              

              Du musst halt in der List Node angeben - dass Du gerne das GANZE Objekt haben willst:

              97d36a2e-1e27-4029-a97a-12b2e275b3f4-image.png

              und den Wert halt auch.

              Über das Enums-Objekt kannst Du dann auch noch auslesen, welchen Räumen und Funktionen der Datenpunkt zugeordenet ist:
              5cf3c9ca-360a-4530-bfe1-3cc4129eeb3a-image.png

              siehst ja oben in dem Wert auch.

              Leider ist das im iobroker so, dass das alles vom Gerät nach unten vererbt wird. Also auch wenn ich bei Temperatur nur Temperatur als Funktion eingebe - wird das vom Gerät überschrieben, wenn dort beide Optionen angehakt sind und wie man das ändern kann habe ich auch keine Ahnung.

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

                @mickym

                Ich glaube ich bin grade zu doof dafür haha

                Ich habe eine Inject Node, mit der ich das Topic in die List Node schiebe:
                82530296-5800-4b2f-aeba-56a07be87c7d-image.png
                a7684945-8316-43dc-992c-08955e9686ae-image.png
                Und der Debug Output ist dann ein Array von allen Datenpunkten, die dieses Zigbee Device hat:
                d4c24378-25a3-44a7-8638-173f1bc377c7-image.png
                Da stehen unter common.name auch alle Namen drin - aber eben die der ganzen Datenpunkte.
                Den Namen vom Device finde ich da aber nicht, sondern nur die Namen der 9 Datenpunkte 😞
                40a74c7f-153f-44ef-be2e-6d6202360c5e-image.png

                EDIT: habe mittendrin ein anderes Zigbee Device genommen, also ob es 10 oder 9 DP sind spielt keine Rolle.
                Der Punkt ist: Den Namen vom Zigbee Device bekomme ich nicht, sondern nur die Namen der DP unter dem Zigbee Device

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

                  @schmetterfliege Keine Wild cards- die iobroker IN Node liefert doch alles - wenn Du es mit einer Inject Node versuchst nimm das topic der In- Node und ich glaube ich habe weder von Wildcards noch von Array ausgabe gepostet.

                  KEINE Wildcards, kein topic spezifizieren - sondern so wie ich es gepostet habe,.

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

                    @mickym

                    Also statt dem Inject mache ich eine IN node mit dem Zigbee Device OHNE ".*" ?

                    Also muss die IN Node so aussehen?
                    0470948b-6df9-4265-a74c-5d71054241ff-image.png

                    mickym 2 Replies Last reply Reply Quote 0
                    • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            852
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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