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 mickym

      @schmetterfliege Nein die ID kannst schon aus der Tabelle schmeissen, aber sie muss in den Objektelementer des Arrays vorhanden sein - muss aber nicht angezeigt werden, deshalb kannst Du die id aus der ui_table Node rausschmeissen bzw. durch name ersetzen. Also einfach property id gegen name austauschen. - Aber wie gesagt Du musst sie in der function Node belassen, die die Objekte schreiben.

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

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

        @mickym Ich kann ja sogar sehen welche IP (Wer) das aufgerufen hat.
        Ne, das wird mit Dir hier nie langweilig.👍
        Wieder etliche Möglichkeiten zum rumprobieren.
        Meine Freundin hat sich gerade den Status unserer Fenster angeschaut😂
        Nennt man das schon stalken?
        Auf jeden Fall weiß ich jetzt das sie das Dashboard auch nutzt, obwohl sie immer sagt "Wer braucht denn sowas?" oder "Wofür soll das gut sein?"

        Das mit der ui-control ist ja in wirklich absolut genial!!
        Zum Thema stalken: dank dem Sensor an der Balkontür und der Telegram Notification weiß ich ganz genau, wann meine Freundin rauchen geht hahaha. War aber natürlich nicht die Intention. Theoretisch bräuchte ich es da nicht, ich nutze die Kontaktsensoren nur um das Licht im Bad oder die Heizungen zu steuern - und die Telegram Notifications sind nur um mir selbst jedes Mal zu bestätigen dass es auch funktioniert hat. Schalte ich die Notifications ab würde ich mir automatisch ständig Sorgen machen dass es nicht funktioniert hat haha

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

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

          @schmetterfliege Nein die ID kannst schon aus der Tabelle schmeissen, aber sie muss in den Objektelementer des Arrays vorhanden sein - muss aber nicht angezeigt werden, deshalb kannst Du die id aus der ui_table Node rausschmeissen bzw. durch name ersetzen. Also einfach property id gegen name austauschen. - Aber wie gesagt Du musst sie in der function Node belassen, die die Objekte schreiben.

          Die Function Nodes beim aktualisieren der Tabelle fasse ich nicht an. Ich erstelle nur ein INIT mit einem JSON Objekt, in dem a) die Tabelle einmalig aufgebaut wird und b) dort die Namen gesetzt werden. Beim Aktualisieren der Daten reicht es ja wenn dort nur ID, Temp und Hum drin sind - die müssen nichts von dem Namen wisssen, richtig?

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

            @schmetterfliege Wieso ist doch kein Problem wenn Du zum Beispiel in einem eigenen Datenpunkt noch ein Objekt speicherst, in dem Du jeder id einen Namen gibst und diesen dann zusätzlich in die function Node schreibst - Du willst Du Deine Tabelle perfekt machen.

            Wenn Du es Dir einfach machen willst - hängst Du eine List Node- zwischen die in Node und die function Node. 7188162d-cc60-4a26-9f1c-02cb0c338843-image.png

            Die List Node ist leider die einzige Node, die Dir das gesamte Objekt ausgibt. Dafür kannst Du dann den Namen nutzen. - Aber Du hast ja schon einen Weg gefunden - ich habe ihn nur noch etwas verbessert. 😉

            So wie Du es machst geht es auch aber Du kannst Dir id, temperature und humidity rausschmeissen - die werden ja über den flow gesetzt.

            Es langt also wenn Du den Namen einfach setzt:

            flow.set('sensors.0158d00073c0c75.name', 'Multisensor Büro');
            

            langt dann für die Initialisierung völlig.

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

              @mickym

              Hab mal ein Beispiel gemacht, wie ich das gelöst hätte:
              ecd1acb0-33c4-4d74-8a8b-1f95aed6e032-image.png
              In der Funktion erstelle ich ja die Variablen und mit der Change Node setze ich die Flow Variablen dann tatsächlich (oder?)
              In genau der Funktion würde ich das nun x22 machen (also für jede ID lege ich temp, hum und name an).

              Und der "Flow" (keine Ahnung wie die heißen) mit dem ich die Werte aktualisiere bleibt wie er ist.
              Da wird also zu der entsprechend Id die Temperatur und Humidity aktualisiert - der Name ist da völlig wurscht und nicht Teil des "Flows".

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

              Wie ich den Namen den ich in IoBroker vergeben habe auslesen kann, habe ich noch nicht rausgefunden:
              6916075e-9edc-4c1d-95b3-e9338c4e1a30-image.png

              mickym 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:

                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
                                            • First post
                                              Last post

                                            Support us

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

                                            541
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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