Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. NodeRed IO Broker Nodes

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    NodeRed IO Broker Nodes

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Taddy81 last edited by Taddy81

      Hallo Forum,

      ich bin gerade dabei meine NodeRed Skills zu erweitern.

      Ich steh aber etwas auf dem Schlauch. Die folgenden Nodes habe ich bislang noch nie genutzt und auch als Test habe ich das Verhalten getestet, mir ist aber der Anwendungsfall nicht ganz klar. Wofür nutze ich die denn bitte?

      e027e9b2-eeef-4cac-9512-e965d2c658e2-image.png

      haus-automatisierung mickym 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Taddy81 last edited by

        @taddy81 Dir fehlen eher die Grundlagen. Alles im ioBroker ist ein Objekt. Und die Objektdefinition (nicht den State) kannst Du mit dem ersten Baustein holen.

        Oder mit sendTo Nachrichten an bestimmte Instanzen senden (was genau die Instanzen können, hängt dann vom Adapter ab. Siehe pushover, telegram, influxdb, history, ...).

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

          @taddy81 Also es stimmt schon, dass alle "states" auch Objekte sind, das siehst Du ja wenn Du im Admin des iobrokers den tab "Objekte" aufmachst und dann auf den Bleistift klickst - dann findest Du so was:

          12dce4f0-a140-491e-86f3-00ac2f8a9076-image.png

          und auf das kannst Du mit diesen Nodes "teilweise zugreifen".

          Fangen wir mal bei der Node an, die NEU ist und bei der ich froh bin, dass es sie nun endlich gibt, da sie nun ein Defizit zu den Puzzlefreunden ausmerzt

          ec2ba6fe-233d-40a7-b936-7aafbc062021-image.png

          Über diese Node kannst Du ein Kommando an einen Adapter schicken und kommunizierst nicht über Objekte resp. Datenpunkte. So kannst Du SQL Kommandos an einen SQL Adapter schicken, Mqtt publish commandos an den mqtt Adaper ohne erst Datenpunkte zu erstellen usw.

          Ein Beispiel wie so ein Kommando an einen Adapter aussehen könnte, hat @haus-automatisierung auf github erstellt.
          02d14b92-1a73-49bc-bd64-c26bb1fbc48b-image.png
          Leider fehlt der Hilfetext in dieser Node - aber ist auch schwierig, da das Kommando ja auch von Adapter zu Adapter unterschiedlich aussieht. Man muss also bei den Adaptern nachlesen.

          =================================================================================
          So nun zu den anderen Nodes.

          Grundsätzlich kennst Du ja die iobroker-get Node. Sie ist dazu da, wenn Du aktiv in einem Flow Werte oder Objekte auslesen willst und die nicht selbst triggert. Sprich Du nutzt die iobroker get Node um Werte auszulesen, wenn es im Flow erforderlich ist.

          Um es gleich vorwegzunehmen:

          die "iobroker get object" Node kannst Du in meinen Augen vergessen. 👎 👎 👎

          7fbed061-59b9-4baf-9bc4-02f75da6fe54-image.png

          Diese Node ist entweder ein Überbleibsel aus der Vergangenheit und hat in meinen Augen kaum einen Wert, da die Informationen nur teilweise kommen, diese Node unflexibel ist und andere Nodes das besser können.

          Ich würde Dir empfehlen diese Node zu vergessen, da die iobroker list Node WESENTLICH leistungsfähiger ist und Dir mehr Informationen über die Objekte ausgibt.

          Trotzdem noch ein paar Worte zu iobroker get object Node. Der einzige Vorteil eine iobroker-get object Node gegenüber einer iobroker get Node mit der Du das Objekt ausliest ist, dass die Informationen zwar vollständiger sind, aber lange nicht so vollständig wie bei einer list node.

          Wenn man bei einer iobroker-get Node sich das Objekt ausgeben lässt dann

          84c3f974-48a0-47b4-905f-eb1533697820-image.png

          und dann mit einer iobroker get Objekt Node vergleicht, dann stellt man folgendes fest:

          99ab6099-3a44-4c19-b914-2663e953aa6e-image.png

          In der iobroker-get Node findet man nur einen Teil der Objektinformationen, die man in der iobroker get object Node hat. Allerdings fehlen in der get object Node sowohl die timestamps (ts und lc) als auch das value. Für mich ist diese Node obsolet.

          Fazit: Wenn man die paar zusätzlichen Informationen der iobroker-get object Node noch in die normale iobroker-get Node packen würden, könnte man auf die iobroker get object Node verzichten!

          =====================================================================================

          Sehr mächtig und vielseitig ist hingegen die list Node:

          Sie kann alles was die get Nodes können und noch viel mehr. 😉

          Nehmen wir wieder das Objekt dieses Mal als Text

          {
            "common": {
              "read": true,
              "write": true,
              "desc": "Created by Node-Red",
              "role": "state",
              "name": "0_userdata.0.Test.FritzBox7590.Zähler.stündlich",
              "type": "number"
            },
            "native": {},
            "type": "state",
            "from": "system.adapter.node-red.1",
            "user": "system.user.admin",
            "ts": 1713787200217,
            "_id": "0_userdata.0.Test.FritzBox7590.Zähler.stündlich",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            },
            "enums": {},
            "val": 2096572,
            "ack": true,
            "q": 0,
            "lc": 1713787200217
          }
          

          Man sieht hier nicht nur alle Angaben des iobroker-get Object Node, sondern zugleich KANN man sich den Value ausgeben lassen und man sieht die enums.

          Dies ist übrigens die einzige Möglichkeit in NodeRed, um zu sehen, ob ein Datenpunkt einem Raum oder einer Funktion zugeordnet ist. Ein Möglichkeit alle Datenpunkte zu einem Raum auszugeben gibt es nicht - über die List Node kann man sich aber in begrenztem Rahmen helfen.

          Um sowohl die gesamten Objekte zu sehen, muss man sich diese ausgeben lassen.

          53442da2-8691-425e-8562-d4dcd6de2012-image.png

          Nun was macht diese Node aber noch so mächtig (meines Erachtens die mächtigste der iobroker Nodes).

          Nun über den Typ kann man den Typ filtern, so dass man Verzeichnisse etc ausfiltern kann. In den Objekteigenschaften kann man ja den Typ angeben:

          d0f4b5b5-717c-4cc0-83e9-f9d441865901-image.png

          Möchte man alle Objekte haben kann sich die auch über Any ausgeben lassen:

          e0f307e4-7487-4980-bb39-64c4cc706a5e-image.png

          Nun kommt aber das wichtigste man kann sich somit alle Objekte ausgeben lassen, da das die EINZIGE Node, neben der iobroker IN Node ist, die mit Wildcards arbeiten kann. 👍 👍 👍

          Lässt man sich die IDs ausgeben (und hier muss man darauf achten, dass man sich die Werte nicht ausgeben lässt), bekommt man ein Array - das man zum Beispiel für normale iobroker-get verwenden kann, wobei man dann selbst filter kann - ansonsten macht die list Node das automatisch.

          360d51b1-932e-4d7a-b2b2-9a4ddf525934-image.png

          8ed52201-4e49-4ac6-9189-7a4035c757d4-image.png

          Dröselt man das Array auf - kann man es ggf. filtern und sich so alle Values aufeinmal ausgeben lassen.
          Man verschiebt die payload nur auf das topic und füttert die iobroker-get Node und schon hast Du alle Werte Deiner Datenpunkte:

          baac6285-60ab-403d-a969-f141fb229eb8-image.png

          [{"id":"c1ca64643dea9417","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"trigger","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":130,"y":7300,"wires":[["c19c2ca32ebba99f"]]},{"id":"c19c2ca32ebba99f","type":"ioBroker list","z":"289f539dcc33814e","name":"","topic":"0_userdata.0.Test.FritzBox7590.Zähler.*","objType":"","regex":"","asArray":"true","onlyIDs":"true","withValues":"false","x":360,"y":7300,"wires":[["1e42d8b1f596c6ac"]]},{"id":"c655ed398168cc95","type":"debug","z":"289f539dcc33814e","name":"iobroker list","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1210,"y":7300,"wires":[]},{"id":"1e42d8b1f596c6ac","type":"split","z":"289f539dcc33814e","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":610,"y":7300,"wires":[["939b41e3cec38589"]]},{"id":"939b41e3cec38589","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"topic","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":7300,"wires":[["63bcc7a6e65de0da"]]},{"id":"63bcc7a6e65de0da","type":"ioBroker get","z":"289f539dcc33814e","name":"","topic":"","attrname":"payload","payloadType":"value","errOnInvalidState":"nothing","x":1020,"y":7300,"wires":[["c655ed398168cc95"]]}]
          

          will man aber nicht selber filtern - kann die list Node sowas schon out of the box.

          So kann man sich dann die Werte über die val Eigenschaft bereits als einzelne Nachrichten ausgeben lassen.

          bee48b00-de39-4083-aff3-9bef6efeefda-image.png
          223e44c0-65d3-41ab-92ad-7c255b00ec05-image.png

          [{"id":"c1ca64643dea9417","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"trigger","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":130,"y":7300,"wires":[["c19c2ca32ebba99f"]]},{"id":"c19c2ca32ebba99f","type":"ioBroker list","z":"289f539dcc33814e","name":"","topic":"0_userdata.0.Test.FritzBox7590.Zähler.*","objType":"state","regex":"","asArray":"false","onlyIDs":"false","withValues":"true","x":380,"y":7300,"wires":[["c655ed398168cc95","1b84b1a1435a3d51"]]},{"id":"c655ed398168cc95","type":"debug","z":"289f539dcc33814e","name":"iobroker list","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":7260,"wires":[]},{"id":"1b84b1a1435a3d51","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.val","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":7300,"wires":[["649532f0041b3388"]]},{"id":"649532f0041b3388","type":"debug","z":"289f539dcc33814e","name":"iobroker list 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":910,"y":7340,"wires":[]}]
          

          Super praktisch ist, wenn man sich das als Array ausgeben lässt, dann kann man sich ggf. auch JOIN Node sparen wenn man alles in einem Array sich ausgeben lässt.

          59034759-cce6-4064-93a9-ee7ccb28b53e-image.png

          In diesem Fall selektiert man die val Eigenschaft dann einfach via JSONATA aus den Objekten heraus.

          [{"id":"c1ca64643dea9417","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"trigger","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":130,"y":7300,"wires":[["c19c2ca32ebba99f"]]},{"id":"c19c2ca32ebba99f","type":"ioBroker list","z":"289f539dcc33814e","name":"","topic":"0_userdata.0.Test.FritzBox7590.Zähler.*","objType":"state","regex":"","asArray":"true","onlyIDs":"false","withValues":"true","x":380,"y":7300,"wires":[["c655ed398168cc95","1b84b1a1435a3d51"]]},{"id":"c655ed398168cc95","type":"debug","z":"289f539dcc33814e","name":"iobroker list","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":7260,"wires":[]},{"id":"1b84b1a1435a3d51","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.val","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":7300,"wires":[["649532f0041b3388"]]},{"id":"649532f0041b3388","type":"debug","z":"289f539dcc33814e","name":"iobroker list 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":910,"y":7340,"wires":[]}]
          

          Diese Wildcards lassen sich nicht nur am Ende der iobroker Pfade (ids) nutzen sondern auch in der Mitte. Hier werden beide Geräte aus der Struktur erfasst.

          55df7d97-8c62-4b3b-a80e-e0287de64fc2-image.png

          a7ff0024-a478-49d8-adaa-61a8ef49b1bc-image.png

          Zu guter Letzt hast Du noch eine mächtige Möglichkeit alle IDs durch eine RegEx Filter zu jagen. Wenn ich also aus den obigen 10 Objekten nur die wöchentlichen und täglichen Objekte haben will, kann ich das der Node gleich mitgeben.

          7aa02d15-e3b0-48a9-94a8-9de65cb93568-image.png

          Du siehst also - warum ich die iobroker list Node, als einer der mächtigsten iobroker Nodes nenne. 😉

          So ich hoffe, das gibt Dir genügend Ideen zum Ausprobieren.

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

            Wie ich schon sagte, sind die Aufzählungen und Räume im iobroker in meinen Augen unglücklich implementiert und in NodeRed ist die einzige Möglichkeit auf diese Informationen zuzugreifen über die iobroker-list node.

            Um beispielsweise, wie in der Objektansicht nur die states zu selektieren, die die Funktion Licht aufweisen, muss man alle Objekte auswerten.

            0114f095-aff4-4d9b-85ea-267a61b2ba6f-image.png

            Über JSONATA geht das zwar relativ einfach, aber man kann halt leider (auch bei den triggern) nicht auf diese Funktionen und Räume oder sonstigen Aufzählungen zugreifen, wie in Javascript . Aber zumindest ein kleiner Workaround ist möglich.

            ba01762d-d823-499c-94ab-e26572cefb6b-image.png

            An den Screenshot sieht man die iobroker list node mit allen states ergibt 48 Objekte, gefiltert nach der Funktion Licht dann nur noch 21 Objekte.

            Ich persönlich nutze deshalb diese Aufzählungen und Räume nie, sondern speichere mir ggf. eigene Listen ab.

            1 Reply Last reply Reply Quote 1
            • T
              Taddy81 @mickym last edited by

              @mickym Wahnsinn, vielen vielen Dank für deine Mühe und Zeit mir (und vllt noch dem ein oder anderem) die Nodes näher zu bringen.

              Wie hast du dir das ganze wissen drauf geschafft?

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

                @taddy81 sagte in NodeRed IO Broker Nodes:

                Wie hast du dir das ganze wissen drauf geschafft?

                Ich nutze iobroker nur mit Node Red und das beinahe nun 5 Jahre- und auch durch das Supporten hier, lerne ich viel anhand der Problemstellungen. Meine Flows sehen heute auch teilweise anders aus, als vor ein paar Jahren, wenn man immer mehr Möglichkeiten entdeckt. Allerdings bin ich bei alten Flows auch teilweise zu faul, diese neu zu schreiben, da sie ja funktionieren.

                T 1 Reply Last reply Reply Quote 1
                • T
                  Taddy81 @haus-automatisierung last edited by

                  @haus-automatisierung

                  Deine Nachricht empfinde ich als Unterstellung und anscheinend hast du meine Frage falsch verstanden. Wie IOBroker seine Stati speichert ist mir bewusst, nehme aber Objekte aus der Admin Oberfläche. Für die üblichen Arbeiten brauche ich die Definition aber nicht, daher die Frage, was ich mit diesen Nodes genau anstellen kann

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @Taddy81 last edited by

                    @taddy81 Mh? Dann weißt Du doch dass man daraus Meta-Informationen wie Einheit, Datentyp, Min- und Max-Werte usw. lesen kann.

                    1 Reply Last reply Reply Quote 0
                    • T
                      Taddy81 @mickym last edited by

                      @mickym

                      Ich sage nochmals Danke, ich habe mir eine langfristige Auswertung meiner PVDaten erstellt und denke, dass ich mit List Node diese Daten sogar noch besser auswerten kann.

                      1bed4f06-3223-4daa-a121-909103733f36-image.png

                      Sicher nicht die intelligenteste oder effektivste Art mit Daten zu arbeiten, aber das macht NodeRed für mich so einzigartig.
                      Du kannst über die verschiedensten Wege ans Ziel kommen. Und um die Antwort vor weg zu nehmen, ja, mittels Flux könnte ich die Daten auch ohne diesen Aufwand aggregieren. Die FluxSprache finde ich aber furchtbar unintuitiv.

                      Ich bin erst seit einem Jahr mit NodeRed unterwegs, wenn ich mir alleine meine Schaltung für den Heizstab ansehe, dann hat sich da schon eine Menge getan.

                      Version 1 (März 2023)

                      b034c048-82ec-40e8-8b83-e367d43cd8b6-image.png

                      Version Heute

                      5d03ee1b-9bc1-4d7d-9ca4-d61f73ec0270-image.png

                      1 Reply Last reply Reply Quote 1
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      939
                      Online

                      31.7k
                      Users

                      79.7k
                      Topics

                      1.3m
                      Posts

                      node-red
                      3
                      9
                      631
                      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