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. Node-RED Nodes für externe ioBroker Integration

    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

    Node-RED Nodes für externe ioBroker Integration

    This topic has been deleted. Only users with topic management privileges can see it.
    • Marc Berg
      Marc Berg Most Active @peterfido last edited by

      @peterfido sagte in Node-RED Nodes für externe ioBroker Integration:

      Vielleicht eine Option, das Node-Red oder den Rechner darunter neu zu starten.

      Das ist sehr systemspezifisch und kann (unter Aushebelung einiger Sicherheitsvorkehrungen) mit dem exec Node erledigt werden. Es braucht je nach System (Linux/Windows/Container) völlig unterschiedliche Herangehensweisen. Da es mit ioBroker auch nicht direkt etwas zu tun hat, würde ich es nicht integrieren.

      1 Reply Last reply Reply Quote 1
      • Marc Berg
        Marc Berg Most Active @rewenode last edited by

        @rewenode sagte in Node-RED Nodes für externe ioBroker Integration:

        @Marc-Berg Hast du mal getestet, ob deine contrib-iobroker auch unter dem iob-node-red Adapter läuft?

        Ja, das geht. Etwas unschön ist im Moment, dass dann beide Nodes in der Palette in einer Kategorie vermischt sind und man etwas genauer hinschauen muss. In der nächsten Version bekommen sie eine eigene Kategorie.

        Ich dachte daran, jeweils den original-Flow zu adaptieren und dann zu deaktivieren. Dann kann der neue Flow einige Zeit laufen und beobachtet werden, wobei ich (falls nötig) per Knopfdruck wieder auf den alten Flow wechseln könnte.

        So ähnlich mache ich das auch. Schritt für Schritt umstellen, exportieren und in ein eigenes Node-RED importieren.

        Deine notes sind wirklich exzellent dokumentiert. Macht echt Spass, damit zu experimentieren.

        Da hilft natürlich die KI. Den Output muss man dann aber in jedem Fall editieren, denn gern wird da halluziniert und nicht vorhandene Funktionen dazuerfunden. 🙂

        M R 2 Replies Last reply Reply Quote 0
        • M
          MartyBr @Marc Berg last edited by

          @marc-berg
          Ich habe Node-Red auf meiner Synology als Docker installiert und auch die Nodes dort installiert.
          Nun habe ich eine Frage zu Node-Red im allgemeinen. Bei Node-Red innerhalb vom ioBroker konnte man unter Einstellungen den Speicherbedarf/Nutzung einstellen. Ist das auf einen eigenen Node-Red Docker nötig oder nimmt sich hier Node-Red einfach den verfügbaren Speicher?

          Marc Berg 1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @MartyBr last edited by

            @martybr sagte in Node-RED Nodes für externe ioBroker Integration:

            Ist das auf einen eigenen Node-Red Docker nötig oder nimmt sich hier Node-Red einfach den verfügbaren Speicher?

            Im Default nimmt sich Node-RED alles was es bekommen kann. Begrenzen kann man es über die Umgebungsvariable

            NODE_OPTIONS
            

            Musst du mal googlen, die genauen parameter habe ich nicht parat.

            M 1 Reply Last reply Reply Quote 0
            • R
              rewenode @Marc Berg last edited by

              @marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:

              Da hilft natürlich die KI. Den Output muss man dann aber in jedem Fall editieren, denn gern wird da halluziniert und nicht vorhandene Funktionen dazuerfunden.

              Na zu irgendwas muss die ja nützlich sein😁
              Im Ernst, ich setze auch gerne KI für meine kleinen Projekte ein.
              Habe mir vor einiger Zeit einen Mac-Kurzbefehl geschrieben, der mir meine Flows an Hand des Flow-Export dokumentiert.
              Purzelt sowas dann raus.
              SCR-20250704-irlt.png
              Lediglich den Screen-shot füge ich hier von Hand ein. Im Prompt kann ich noch einstellen, wie detailliert ich die Erklärung haben will.

              @marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:

              In der nächsten Version bekommen sie eine eigene Kategorie.

              Will vorher sowieso noch einige Experimente machen.

              @Marc-Berg Gibt es irgendwie die Möglichkeit bei einem State Abo/Get optional die Objektdaten der ID dazu zu bekommen? Bisher habe ich da immer den ioB-List hinterhergeschaltet um letztlich an die Objectdaten (Name/Enums etc) zu kommen.

              Marc Berg 1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @rewenode last edited by

                @rewenode sagte in Node-RED Nodes für externe ioBroker Integration:

                Gibt es irgendwie die Möglichkeit bei einem State Abo/Get optional die Objektdaten der ID dazu zu bekommen? B

                Müsstest du jetzt ähnlich machen. Beim einfachen "in" oder "get" frage ich keine Objektdaten ab.

                57c04b26-b8ac-445a-a15c-4a317ae4d406-grafik.png

                R 1 Reply Last reply Reply Quote 0
                • M
                  MartyBr @Marc Berg last edited by

                  @marc-berg
                  Danke für die Antwort. Da es ja ein Docker für Node-Red ist, kann sich Node-Red hier aus dem vollem bedienen.
                  👍

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

                    @marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:

                    Müsstest du jetzt ähnlich machen. Beim einfachen "in" oder "get" frage ich keine Objektdaten ab.

                    Ja, das tut es genau so gut.

                    1 Reply Last reply Reply Quote 0
                    • Marc Berg
                      Marc Berg Most Active @MartyBr last edited by

                      @martybr sagte in Node-RED Nodes für externe ioBroker Integration:

                      kann sich Node-Red hier aus dem vollem bedienen.

                      Naja, ein Auge sollte man trotzdem darauf haben. Angenommen, man begrenzt den Container selbst (hier im Beispiel 512MB), dann muss man auch Node-RED (bzw. Node.js) begrenzen (hier 400MB), damit der Container im Extremfall nicht gekillt wird.

                      services:
                        node-red:
                          image: nodered/node-red
                          mem_limit: 512m                    # Docker Limit: 512MB
                          environment:
                            - NODE_OPTIONS=--max-old-space-size=400 
                      
                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MartyBr @Marc Berg last edited by MartyBr

                        @marc-berg
                        Okay, werde ich dann so umsetzen.

                        Edit: Wird diese Einstellung im compose.yaml eingetragen?

                        Edit 2:
                        Ja, wird in der Compose.yaml eingetragen.

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

                          @marc-berg Bin grad dabei etwas intensiver zu testen.
                          Sag mal, gibt es irgendeine Möglichkeit an die ENUMS eines Objects zu kommen?
                          Da sind ja üblicherweise die Räume/Batteriebetrieben usw hinterlegt.
                          Bei den alten Nodes gibt es zumindest die ioB-List-node, die zum Objekt die ENUMS mit auswirft. Ideal wäre, wenn die ENUM zum getObj mit ausgeben würden.

                          Marc Berg 1 Reply Last reply Reply Quote 0
                          • Marc Berg
                            Marc Berg Most Active @rewenode last edited by

                            @rewenode sagte in Node-RED Nodes für externe ioBroker Integration:

                            Ideal wäre, wenn die ENUM zum getObj mit ausgeben würden.

                            So ist das, wenn man Funktionen nicht selbst braucht und einsetzt ...

                            Ich werde die Ausgabe der Enums optional machen und so in das Objekt einbetten:

                            {
                            	"type": "channel",
                            	"common": {
                            		"name": {
                            			"en": "AZThermostat"
                            		},
                            		"role": "thermostat"
                            	},
                            	"_id": "alias.0.Haus.Arbeitszimmer.AZThermostat",
                            	"native": {},
                            	"acl": {
                            		"object": 1636,
                            		"owner": "system.user.admin",
                            		"ownerGroup": "system.group.administrator"
                            	},
                            	"from": "system.adapter.admin.0",
                            	"user": "system.user.admin",
                            	"ts": 1692695747121,
                            	"enumAssignments": {
                            		"rooms": [
                            			{
                            				"id": "enum.rooms.Arbeitszimmer",
                            				"name": "Arbeitszimmer",
                            				"type": "rooms",
                            				"members": [
                            					"alias.0.Haus.Arbeitszimmer.AZThermostat",
                            					"alias.0.Haus.Arbeitszimmer.BlindAZ1",
                            					"alias.0.Haus.Arbeitszimmer.BlindAZ2"
                            				]
                            			}
                            		],
                            		"functions": [],
                            		"other": []
                            	}
                            }
                            

                            Außerdem ist es dann wohl auch eine gute Idee, die Enums separat suchen und filtern zu können.

                            R 1 Reply Last reply Reply Quote 3
                            • R
                              rewenode @Marc Berg last edited by

                              @marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:

                              Ich werde die Ausgabe der Enums optional machen und so in das Objekt einbetten:

                              Langsam bekomme ich echt ein schlechtes Gewissen;-( Ich hoffe, du genießt erstmal das Wochenende.
                              Herzlichen Dank und schönen Sonntag

                              Marc Berg 1 Reply Last reply Reply Quote 0
                              • Marc Berg
                                Marc Berg Most Active @rewenode last edited by Marc Berg

                                @rewenode

                                Danke und geht schon ... 🙂

                                Mit der v0.10.0 sind die Enum-Funktionalitäten nun integriert. Da ich auch noch kräftig an der Code-Struktur geschraubt habe, zunächst nur als Beta über Github.

                                In der v0.11 gibt es später noch einen "SendTo" Node und dann ist auch erstmal gut mit neuen Funktionen.

                                R 1 Reply Last reply Reply Quote 1
                                • R
                                  rewenode @Marc Berg last edited by

                                  @marc-berg Habe mir die CHANGELOG auf Github durchgelesen. Klingt großartig👍
                                  Inzwischen habe ich mir auch wieder einen ioB-Testcontainer erstellt und mit einigen Daten gefüllt um mal etwas intensiver testen zu können.
                                  Kannst du mir noch kurz sagen, wie ich die contrib-nodes im ioB Container direkt aus Guthub installieren kann?

                                  R 1 Reply Last reply Reply Quote 0
                                  • Marc Berg
                                    Marc Berg Most Active last edited by

                                    @rewenode sagte in Node-RED Nodes für externe ioBroker Integration:

                                    wie ich die contrib-nodes im ioB Container direkt aus Guthub installieren kann?

                                    .tgz aus dem Release runter-

                                    a8936104-7526-49ae-afd1-21f1c29346bc-grafik.png

                                    und hier hochladen:

                                    5c9ddd95-be59-4741-ac24-4caed67bd017-grafik.png

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

                                      @rewenode sagte in Node-RED Nodes für externe ioBroker Integration:

                                      Kannst du mir noch kurz sagen, wie ich die contrib-nodes im ioB Container direkt aus Guthub installieren kann?

                                      Ah, ich seh schon die 0.10 in der Palette. Danke 😀

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

                                        @marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:

                                        .tgz aus dem Release runter-

                                        Und nochmal danke😀

                                        1 Reply Last reply Reply Quote 0
                                        • Marc Berg
                                          Marc Berg Most Active last edited by

                                          In der v0.12.0 habe ich noch ein wenig an der Darstellung des History-Node geschraubt (Tab-Darstellung).

                                          c836d237-dcb2-47ab-9b8b-07adcae23363-grafik.png

                                          Außerdem kann man im Node jetzt einstellen, wie man mit fast zeitgleich eintreffenden Queries umgehen möchte, die ja auch mal länger laufen können:

                                          f526838e-6f8f-430f-a777-93ce7b5a1ec2-grafik.png

                                          R 1 Reply Last reply Reply Quote 1
                                          • R
                                            rewenode @Marc Berg last edited by rewenode

                                            @marc-berg Bin da auf ein Problem gestossen. Könnte evtl. ein Bug sein oder an meiner Vorgehensweise liegen.

                                            Ich arbeite relativ intensiv mit alias-states. Hauptsächlich um Sensoren schnell wechseln zu können.
                                            So ist der alias-state: alias.0.Klima.office.Temperatur halt die Temp im Office.
                                            Diesem State ist der Ort (enum.rooms.ground_floor.office) zugewiesen.

                                            Der Sensor selbst(base) ist irgend ein Temperatursensor, der auch schnell mal gewechselt werden kann.
                                            Zum Test grad der Temp-Sensor einer Tasmota-Steckdose: "mqtt.0.stTasmota-8.tele.SENSOR"
                                            Diese wiederum hat eigene Eigenschaften, die ich i.d.R. ebenfalls in enums abgelegt habe. Da ist dann halt der Hardwaretyp/Batterie etc. hinterlegt.

                                            Ich habe mir da so Listen gebastelt z.B. „offene Fenster“, die dann neben dem Status auch gleich signalisieren, wenn die Batterie zur Neige geht. Kurz, machmal brauche ich neben dem State auch das eigentliche (base) Objekt.

                                            Mit den alten iob-Nodes bin ich immer folgendermaßen vorgegangen:

                                            05351d6b-942e-4c64-9b95-4a497d6730a6-2025-07-07_14-30-51.png 

                                            Umständlich aber funktioniert.

                                            Jetzt versuche ich das mit deinen nodes. Da nehme natürlich statt der iob-list-node die „WS ioB getObj+Enum.
                                            Die Node ansich tut einen hervorragenden Job und ist extrem flexibel.
                                            da5596ea-0600-4883-97fc-4c2f1dd53750-2025-07-07_15-46-04.png 
                                            Obwohl der topic korrekt gesetzt ist, bekomme ich den Fehler, wenn ich als letztes das base object abfragen will.
                                            Frage ich das base object separat ab, läuft alles bestens.
                                            44721575-357a-4cc0-8b6e-af330c09fe7f-lE mgrto.srtasmota-e.png
                                            
                                            Sieht fast so aus, als hätte es mit dem msg-object zu tun, was ja komplett durchgeschleift wird.

                                            Getestet mit V0.10 externes NR und ioB NR Adapter.

                                            [
                                               {
                                                   "id": "6447bedc408b2e69",
                                                   "type": "iobget",
                                                   "z": "347707a21df4b745",
                                                   "name": "alias.0.Klima.office.Temperatu",
                                                   "state": "",
                                                   "outputProperty": "payload",
                                                   "server": "156c0c01949ae8c4",
                                                   "x": 410,
                                                   "y": 1000,
                                                   "wires": [
                                                       [
                                                           "6de201bbfc7ed4c2"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "4535ffb1c50b52c8",
                                                   "type": "inject",
                                                   "z": "347707a21df4b745",
                                                   "name": "alias.0.Klima.office.Temperatur",
                                                   "props": [
                                                       {
                                                           "p": "payload"
                                                       },
                                                       {
                                                           "p": "topic",
                                                           "vt": "str"
                                                       }
                                                   ],
                                                   "repeat": "",
                                                   "crontab": "",
                                                   "once": false,
                                                   "onceDelay": 0.1,
                                                   "topic": "alias.0.Klima.office.Temperatur",
                                                   "payload": "",
                                                   "payloadType": "date",
                                                   "x": 410,
                                                   "y": 940,
                                                   "wires": [
                                                       [
                                                           "6447bedc408b2e69"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "0ad59e53d2561a23",
                                                   "type": "debug",
                                                   "z": "347707a21df4b745",
                                                   "name": "debug 79",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "true",
                                                   "targetType": "full",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 640,
                                                   "y": 1060,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "6de201bbfc7ed4c2",
                                                   "type": "change",
                                                   "z": "347707a21df4b745",
                                                   "name": "state -> msg.alias_status",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "alias_status",
                                                           "pt": "msg",
                                                           "to": "state",
                                                           "tot": "msg"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 390,
                                                   "y": 1060,
                                                   "wires": [
                                                       [
                                                           "0ad59e53d2561a23",
                                                           "3abb390c37ed8d21"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "1ac08b45ac708426",
                                                   "type": "comment",
                                                   "z": "347707a21df4b745",
                                                   "name": "get alias status",
                                                   "info": "",
                                                   "x": 100,
                                                   "y": 1000,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "8f216fcf8b8e7ac9",
                                                   "type": "debug",
                                                   "z": "347707a21df4b745",
                                                   "name": "debug 80",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "true",
                                                   "targetType": "full",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 640,
                                                   "y": 1200,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "3abb390c37ed8d21",
                                                   "type": "iobgetobject",
                                                   "z": "347707a21df4b745",
                                                   "name": "",
                                                   "objectId": "",
                                                   "outputProperty": "payload",
                                                   "outputMode": "single",
                                                   "objectType": "",
                                                   "useWildcard": false,
                                                   "includeEnums": true,
                                                   "enumTypes": "all",
                                                   "server": "156c0c01949ae8c4",
                                                   "x": 380,
                                                   "y": 1120,
                                                   "wires": [
                                                       [
                                                           "49f35147ddc3fd53"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "49f35147ddc3fd53",
                                                   "type": "change",
                                                   "z": "347707a21df4b745",
                                                   "name": "topic -> base obj \\n alias obj -> msg.alias_obj",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "alias_obj",
                                                           "pt": "msg",
                                                           "to": "payload",
                                                           "tot": "msg"
                                                       },
                                                       {
                                                           "t": "set",
                                                           "p": "topic",
                                                           "pt": "msg",
                                                           "to": "payload[0].common.alias.id",
                                                           "tot": "jsonata"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 390,
                                                   "y": 1200,
                                                   "wires": [
                                                       [
                                                           "8f216fcf8b8e7ac9",
                                                           "1b8c6ab33d293cac"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "0356d0709e59121b",
                                                   "type": "comment",
                                                   "z": "347707a21df4b745",
                                                   "name": "set alias_obj \\n and base topic",
                                                   "info": "",
                                                   "x": 100,
                                                   "y": 1200,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "a7ff286eeb7f78c2",
                                                   "type": "comment",
                                                   "z": "347707a21df4b745",
                                                   "name": "get alias obj with \\n alias and enum",
                                                   "info": "",
                                                   "x": 100,
                                                   "y": 1120,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "b1a54bf0257b02aa",
                                                   "type": "comment",
                                                   "z": "347707a21df4b745",
                                                   "name": "set alias_status to \\n state",
                                                   "info": "",
                                                   "x": 110,
                                                   "y": 1060,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "1b8c6ab33d293cac",
                                                   "type": "iobgetobject",
                                                   "z": "347707a21df4b745",
                                                   "name": "",
                                                   "objectId": "",
                                                   "outputProperty": "payload",
                                                   "outputMode": "single",
                                                   "objectType": "",
                                                   "useWildcard": false,
                                                   "includeEnums": true,
                                                   "enumTypes": "all",
                                                   "server": "156c0c01949ae8c4",
                                                   "x": 380,
                                                   "y": 1280,
                                                   "wires": [
                                                       [
                                                           "109f927759f1cd95"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "109f927759f1cd95",
                                                   "type": "debug",
                                                   "z": "347707a21df4b745",
                                                   "name": "debug 81",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "true",
                                                   "targetType": "full",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 700,
                                                   "y": 1280,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "156c0c01949ae8c4",
                                                   "type": "iob-config",
                                                   "name": "Test-ioB",
                                                   "iobhost": "iobroker",
                                                   "iobport": "8081",
                                                   "user": "",
                                                   "password": "",
                                                   "usessl": false
                                               }
                                            ]
                                            

                                            Marc Berg 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            658
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            communication node-red
                                            5
                                            89
                                            1644
                                            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