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. ioBroker Ojekt in Node abfragen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ioBroker Ojekt in Node abfragen

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

      ich habe ein (Eigenbau) LED Matrix Display dem ich per MQTT einen String zur Anzeige schicken kann. Damit möchte ich nun abwechselnd Stati wie Temperaturen oder Ereignisse wie Türklingel anzeigen.
      Die Temperaturen kommen unregelmässig von Sensoren rein und werden in ioB Objekten abgelegt, sind dann also Stati die zu irgendeiner Zeit abgefragt werden können.
      Als Lösung habe ich mir vorgestellt in NR zyklisch alle 10 s eine Message zu erzeugen mit Index 0...n der immer hochzählt. Im Node müsste dann Variable[Index] an den Ausgang weitergeleitet werden.
      Diese Triggermessage ist jetzt einfach, aber wie könnte ich eine Parameterliste von ioB Objekten als Parameter übergeben oder im Flow ablegen? Und kann ich in einem (Function)Node auf ioB Objekte zugreifen?

      1 Reply Last reply Reply Quote 0
      • J
        JojoS last edited by JojoS

        konnte mir selber helfen, wenn man weiss wie es geht ist es einfach 🙂
        Man kann Daten in einem Flow oder global speichern, ich habe im Flow ein Array erzeugt das man mit flow.get/flow.set holen/schreiben kann.
        Ein 'register ioBroker objects' schreibt die Topics von angeschlossen ioBroker Objekten in das Array. Ein anderer Node löst zyklisch ein 'ioBroker get' mit den Topics aus dem Array aus und schreibt die gelesenen Werte in das Display.
        Wirklich eine geniale Kombination der ioBroker und NodeRed.

        1 Reply Last reply Reply Quote 0
        • J
          JojoS last edited by JojoS

          ich habe das noch weiter verfeinert, mit dem 'ioBroker get object' hole ich beim Start die Objektnamen die später abgefragt werden sollen. Kann man in dem 'get object' den Statusnamen begrenzen? Oder nur die _id holen? Ich habe schon mit dem 'Attribut' in dem Node gespielt aber ohne Erfolg.
          Habe auch gesehen das seit kurzem eine 'object list' gibt die dafür evtl. auch geeignet wäre.

          0fd66e1d-8115-40f5-8729-7b2dc708628c-grafik.png

          R 1 Reply Last reply Reply Quote 0
          • R
            rewenode @JojoS last edited by

            @JojoS sagte in ioBroker Ojekt in Node abfragen:
            ... Kann man in dem 'get object' den Statusnamen begrenzen? Oder nur die _id holen? Ich habe schon mit dem 'Attribut' in dem Node gespielt aber ohne Erfolg.
            ..
            Da kannst du z.B. den simple-API Adapter benutzen:

            simple API.png

            Oder gleich den Websocket Adapter wenn es ganz universell sein soll.

            Messiahs 1 Reply Last reply Reply Quote 0
            • J
              JojoS last edited by

              danke, Simple-Api kannte ich auch noch nicht. Mit dem get/state könnte ich dann die states innerhalb eines Nodes holen, aber innerhalb des gleichen Prozesses scheint mir der Weg über HTTP ineffizienter zu sein als der 'iobroker in' node und es ist eine asynchrone Operation.
              Und im oberen Teil hole ich noch keine Werte, da merke ich mir nur die Objektnamen die zyklisch angezeigt werden sollen. Ginge auch über string Konstanten die per cut & paste aus der Objektliste geholt werden, so kann die Auswahlliste im get Object Node benutzen.

              R 1 Reply Last reply Reply Quote 0
              • R
                rewenode @JojoS last edited by

                @JojoS Mit dem ioBroker-In bekommst du nur die States aus der State-db nicht die Namen des zugehörigen Objectes aus der Object-db. Jedenfalls kenne ich das so.
                Die Simple-API kann auch darauf zugreifen.
                Mit der Effizienz hast du recht.
                Aber wie gesagt, wenn es richtig effizient sein soll, nimm Websocket.

                1 Reply Last reply Reply Quote 0
                • J
                  JojoS last edited by

                  dafür habe ich ja das 'ioBroker get Object' benutzt, das liefert Namen + alle Attribute, den Namen kann man bequem aus dem Objektbaum auswählen. Sieht etwas einfacher aus als die SimpleAPI Variante.
                  Aber viele Wege führen da zum Ziel.

                  Was die 'Attribut' Einstellung in dem Node macht hatte ich auch rausgefunden: da kann das Ergebnis alternativ zur msg.payload reingeschrieben werden. Das steht noch nicht im Hilfetext zum Node.

                  R 1 Reply Last reply Reply Quote 0
                  • R
                    rewenode @JojoS last edited by

                    @JojoS sagte in ioBroker Ojekt in Node abfragen:

                    dafür habe ich ja das 'ioBroker get Object' benutzt

                    Na wieder was gelernt;-) Den gibt es wohl noch nicht so lange. Ich mach nicht mehr wirklich viel mit node-red. Meist nehme ich gleich Javascript her. Der 'ioBroker get Object' ist mir glatt durch die Lappen gegangen.

                    1 Reply Last reply Reply Quote 0
                    • R
                      rewenode last edited by

                      Nachtrag,

                      habs grad getestet, die Ausgaben vom Simple-API-get sind identisch mit dem ioB-get-Object.
                      Gut zu wissen.

                      1 Reply Last reply Reply Quote 0
                      • Messiahs
                        Messiahs @rewenode last edited by Messiahs

                        @JojoS: Geht m.M. auch mit dem"ioBroker List" und einem Topic wie z.B. "hm-rpc.0.*" und regex-Value (z.B. "

                        ^hm-rpc[.]0[.]([A-Za-z0-9]{14})[.]1[.](LEVEL|STATE|ACTUAL_TEMPERATURE|PRESENCE_DETECTION_STATE)$
                        

                        So hole ich mir alle Einträge aus dem Baum "hm-rpc.0" die mit LEVEL, STATE usw. enden.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.1k
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        3553
                        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