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

      Idee:
      Könnte ich nicht mit einer INIT Node schon mal alle Flow Variablen anlegen, sodass falls NR neu startet, ich auf jeden Fall direkt 22 Variablen habe, die dann eben nach und nach aktualisiert werden? Oder ist das Quatsch?

      Das habe ich ja vorgeschlagen:

      Eine andere Alternative wäre es die Flow Variable sensors in einen Datenpunkt zu sichern und dann die Flow Variable einmal zu initialisieren. (@frankyboy73 hat das ja schon soweit auch erklärt) Dann musst Du nicht warten bis die 22 Sensoren sich gemeldet haben, sondern es wird einfach der Zustand von vorher hergestellt und jedes Update über die In-Nodes schreibt die Tabelle sofort.

      Also die Flow Variable als JSON Objekt in einem Datenpunkt wegschreiben und dann bei Neustart die Flowvariable initialisieren.

      a571bb7b-e4f7-4ad9-b3f8-5450c81e1133-image.png

      Hier einfach die iobroker Nodes mit dem von Dir gewählten DP zur Speicherung der Flowvariablen eintragen:

      [
         {
             "id": "3753aa96.538f06",
             "type": "ioBroker get",
             "z": "54b226bc.0793e8",
             "name": "",
             "topic": "",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1120,
             "y": 1320,
             "wires": [
                 [
                     "59b672af.9b248c"
                 ]
             ]
         },
         {
             "id": "f0f365a4.3aab28",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "Init sensors",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": true,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "true",
             "payloadType": "bool",
             "x": 930,
             "y": 1320,
             "wires": [
                 [
                     "3753aa96.538f06"
                 ]
             ]
         },
         {
             "id": "c6ba225c.b8298",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "sensors",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1470,
             "y": 1320,
             "wires": [
                 []
             ]
         },
         {
             "id": "59b672af.9b248c",
             "type": "json",
             "z": "54b226bc.0793e8",
             "name": "",
             "property": "payload",
             "action": "",
             "pretty": false,
             "x": 1290,
             "y": 1320,
             "wires": [
                 [
                     "c6ba225c.b8298"
                 ]
             ]
         },
         {
             "id": "fe0c10f6.af6d8",
             "type": "json",
             "z": "54b226bc.0793e8",
             "name": "",
             "property": "payload",
             "action": "",
             "pretty": false,
             "x": 1250,
             "y": 1140,
             "wires": [
                 [
                     "fc2153a3.81aef"
                 ]
             ]
         },
         {
             "id": "fc2153a3.81aef",
             "type": "ioBroker out",
             "z": "54b226bc.0793e8",
             "name": "",
             "topic": "",
             "ack": "false",
             "autoCreate": "false",
             "stateName": "",
             "role": "",
             "payloadType": "",
             "readonly": "",
             "stateUnit": "",
             "stateMin": "",
             "stateMax": "",
             "x": 1430,
             "y": 1140,
             "wires": []
         }
      ]
      

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

        @mickym

        Hatte meine Nachricht abgeschickt während deine Nachricht kam und das dann nicht gesehen :S
        Danke für die Bestätigung! Dann werde ich das bei Gelegenheit mal ausprobieren.

        Das mit dem Objekt habe ich in der Tat nun verstanden 🙂

        Wenn ich nun zb. nicht die ID in der Tabelle haben möchte, sondern lieber den Namen, kann ich doch in der Funktion die die Flow Variable setzt das hier machen:

        flow.set('sensors.' + msg.topic + '.name',"Multisensor Büro");
        

        Und dann in der Tabelle aus der "Id" Spalte eine "Name" Spalte machen.
        Die Namen würde ich dann über die Init der Variablen über ein Json Objekt machen, oder?

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

          @schmetterfliege Nein das musst Du additiv machen. Also zusätzlich - Du musst aber id nicht in der Tabelle anzeigen, so dass diese dort nur die Namen auftauchen.

          id muss vorhanden sein, damit die ui_table Array Objekte den zugehörigen Zeilen zuordnen kann.

          Hier mal was aus der Original Doku zum Lesen: 😉 http://tabulator.info/docs/5.0/data

          00d9b3f3-bf18-41e0-b683-9083f959e109-image.png

          PS: Du kannst froh sein, dass ich mich mit der ui_table schon mal beschäftigt habe. Werde irgendwann dann auch mal einen Erklärungsthread aufmachen - das wird aber ein längeres Projekt. Vor 2 Wochen hätte ich Dir das alles noch nicht erklären können. 😉 😉

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

            Hi, zum Thema Push oder Poll, hätte ich auch noch ne Anmerkung.
            Ja, wenn ich viel polle, den Intvall der Abfrage sehr klein setze, belastet das bestimmt das System, vor allem wenn ich das an vielen Stellen einsetze.
            Da muss man abwägen wo man was einsetzt. Ich habe z.B. ne Tabelle der IpAdressen meiner Tasmotageräte über die ich auch per Klick auf die Webobfläche der jeweiligen Geräte komme.(Danke an mickym) Die Ip ändert sich eigentlich nie, da polle ich per Injekt einmal bei Start bzw. ne Minute danach und dann täglich (bräuchte ich eigentlich nicht täglich machen) aber das belastet mein System nicht wirklich. Der Vorteil daran ist, die Geräte werden mir Alphabetisch in meiner Tabelle angezeigt, mache ich das per Push also per Iobroker In Node habe ich die Geräte in der Reihenfolge der eingegangenen Nachrichten, also sehr durcheinander. Das ist auf jeden Fall bei der template Node so, ich weiß nicht ob das bei der table Node besser ist.

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

              @frankyboy73 Was Du machen kannst ist, das Pollen über die ui-control Node übernehmen zu lassen. Sprich wenn die Seite angezeigt wird, werden die Infos abgefragt. Damit muss man das System nicht mit zeitlichen Pollen belasten, sondern die Infos werden auf Bedarf abgerufen.

              Darüber trigger ich zum Beispiel den Neuaufbau meiner Wetterseite:

              369df55a-1ab3-4f46-8683-23a1ab8c5554-image.png

              [
                 {
                     "id": "d6b412e7.53ece",
                     "type": "ui_ui_control",
                     "z": "c36e56fc.dc8418",
                     "name": "",
                     "events": "change",
                     "x": 120,
                     "y": 2340,
                     "wires": [
                         [
                             "6df57f3f.ad2e"
                         ]
                     ]
                 },
                 {
                     "id": "6df57f3f.ad2e",
                     "type": "switch",
                     "z": "c36e56fc.dc8418",
                     "name": "nur Wetter Tab",
                     "property": "name",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "eq",
                             "v": "Wetter",
                             "vt": "str"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 140,
                     "y": 2420,
                     "wires": [
                         [
                             "3703a69f.7fd61a"
                         ]
                     ]
                 }
              ]
              

              Das heißt über den Namen Deines Tabs - der Deine Tabelle enthält triggerst Du den Neuaufbau - zum Beispiel das Abfragen der Tabelle für Deine template Node.

              Damit ersparst Dir dann den manuellen Refresh über den Button. 😉 Ausser natürlich wenn die Seite immer offen ist, dann macht ein Refresh Button natürlich Sinn (wobei das auch der Refresh Button im Browser sein kann - der funzt nämlich auch 😉

              F 1 Reply Last reply Reply Quote 0
              • F
                frankyboy73 @mickym last edited by

                @mickym Wow, also das wusste ich bis jetzt noch nicht. Ich kann also auswerten welche Dashboardseite ich gerade aufrufe und darauf reagieren. Ist ja super, danke für den Tipp, da gibts ja schon wieder so viele Möglichkeiten für. Mein Smarthome wird glaube ich nie fertig.

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

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

                  Mein Smarthome wird glaube ich nie fertig.

                  Dann wär es Dir langweilig. 😉

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    frankyboy73 @mickym last edited by frankyboy73

                    @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?"

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

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

                      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?"

                      Schön ist es ja Dinge zu wissen, wovon der andere nichts ahnt - damit werden ja solche Aussagen ins rechte Licht gerückt ohne das man den anderen blos stellt. 😉

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        frankyboy73 @mickym last edited by

                        @mickym Das ist echt ne tolle Funktion. erstmal, wie du schon geschrieben hast zum aktulalisieren und ausgeben bestimmter Werte, aber auch zu Überwachung wer darauf zugreift und das eventuell zu sperren, bzw. je nach dem wer darauf zugreift ne andere Ausgabe zu machen.

                        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 das musst Du additiv machen. Also zusätzlich - Du musst aber id nicht in der Tabelle anzeigen, so dass diese dort nur die Namen auftauchen.

                          id muss vorhanden sein, damit die ui_table Array Objekte den zugehörigen Zeilen zuordnen kann.

                          Hier mal was aus der Original Doku zum Lesen: 😉 http://tabulator.info/docs/5.0/data

                          00d9b3f3-bf18-41e0-b683-9083f959e109-image.png

                          PS: Du kannst froh sein, dass ich mich mit der ui_table schon mal beschäftigt habe. Werde irgendwann dann auch mal einen Erklärungsthread aufmachen - das wird aber ein längeres Projekt. Vor 2 Wochen hätte ich Dir das alles noch nicht erklären können. 😉 😉

                          @mickym

                          Scheint Schicksal gewesen zu sein 😛
                          Aber klar - ich kann allgemein froh sein dass es Leute wie dich/euch überhaupt gibt und dieses ganze "DYI" Smarthome zu einer so tollen Sache zu machen!

                          4ab85d9e-2b4a-4342-823b-ade699fff7c8-image.png
                          D.h. hier muss Id auf jeden Fall drin bleibe, und ich muss eine 4. Spalte "Name" hinzufügen... aber wo stelle ich ein dass die Id nicht angezeigt werden soll? Finde in der Doku nichts dazu - oder ich bin zu doof es zu finden weil es anders benannt ist als ich es nennen würde^^.

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

                                            Support us

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

                                            864
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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