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. Neuer Node-Red Adapter 3.x in Latest - Repository

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Neuer Node-Red Adapter 3.x in Latest - Repository

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

      Nachdem ich im Node-RED Bereich des ioBroker-Forums relativ aktiv bin und auch bei den Tests zu dem neuen Major-Release des Node-Red Adapters in der Version 3.0.0 mithelfen durfte, habe ich mich in Abstimmung mit @apollon77 dazu bereit erklärt ein paar Highlights und Fehlerbehebungen des neuen Major-Releases hier vorzustellen bzw. zu dokumentieren. Teilweise werde ich hier auch ein paar persönliche Schwerpunkte setzen - es aber auch nicht schaffen, alles in einem Posting festzuhalten.

      Ich möchte mich persönlich auf diesem Weg nochmals bei allen Entwicklern (@apollon77, @Bluefox und @jwiesel), die an der Entwicklung und bei der Bereitstellung dieses Node-Red Adapters beteiligt waren, persönlich bedanken!
      Es ist nicht nur ein Meilenstein, weil nun offiziell Node-Red in der Version 2.2.2 enthalten ist und diese ebenfalls ein paar wirkliche Neuerungen und Erleichterungen mit sich bringen, sondern weil in meinen Augen auch die meisten Fehlerbehebungen und Verbesserungen des Node-Red Adapters im Zusammenspiel mit dem iobroker enthalten.

      Da die Sprünge bei den Node-Red Versionen nun doch erheblich waren, hier ein paar Quellen und ein paar Highlights, die inzwischen implementiert wurden.

      Neues Major Release Node-Red Version 2

      In der Version 2.0 sind erst mal die wirklich weit reichensten Änderungen erhalten, die einem das Leben wesentlich erleichtern.

      Einen Überblick vom Node-Red Guru mit einem Video auf Englisch gibt es hier: https://nodered.org/blog/2021/07/20/version-2-0-released

      Ein paar Einstellungen muss man immer noch die settings.js anpassen. Grundsätzlich ist diese Datei vollkommen neu strukturiert und nun wesentlich übersichtlicher aufgebaut.
      Für bestimmte Einstellungen muss man diese immer noch an den bekannten Stellen editieren.

      Wenn man also den "neuen" Monaco Editor im Programmierfenster der function Nodes nutzen möchte, um kontextbezogene Hilfe bzw. Vorschläge zu bekommen, dann muss man das manuell weiterhin in der settings.js machen. Der bisheriger Editor ist "ace", der neue "monaco". Ich bevorzuge eigentlich weiter den bisherigen Editor - aber ist Gewöhnungssache.

      1c1099bd-ca4c-466e-9099-a10aa1f9ea04-image.png

      Eines der gewaltigsten Vorteile der NR Version 2 ist die Installation und das Nutzen externer NodeJS Module in Function Nodes ohne diese installieren zu müssen!!!
      Die Module müssen also nicht in der settings.js bekannt gemacht werden und werden automatisch im
      /opt/iobroker/iobroker-data/node-red/node_modules Verzeichnis installiert. Es ist KEINE Installation über Adaptereinstellungen oder über die Kommandozeile erforderlich.
      Die Module können einfach in den function Nodes über den Setup-Tab bekannt gemacht werden:

      16316e33-96d0-4109-b071-bac6108e053c-image.png

      Beispiele für die Verwendung von NodeJS Bibliotheken in function Nodes gibts in diesem Thread.

      Ansonsten heißen die ehemaligen RBE Nodes nun Filter Nodes:

      f1725060-85cf-4507-9b99-62f8a2425010-image.png

      Wenn es Probleme mit dieser Node gibt - müsst ihr ggf. die rbe Nodes manuell deinstallieren. Im Palettenmanager tauchen die rbe/filter Nodes unter den Core Nodes auf und dürfen nicht mehr als eigenständige Nodes zu sehen sein.

      Die tail Node ist im Gegenzug nicht mehr Bestandteil der Core-Nodes. Wer diese also braucht oder im Einsatz hat muss diese neu installieren: https://flows.nodered.org/node/node-red-node-tail

      Ab der Version 2.1.
      gibt es als Highlight erst mal eine Guided Tour, die alle Neuerungen vorstellt. Allerdings kann man nicht die Vorgängerversionen anschauen - da die aktuelle Version bereits 2.2.2 ist - findet man nun die Guided Tour nur für diese Version, aber eben keine anderen.

      Die aktuelle Guided Tour findet man unter dem Change Log - das sich öffnet sobald man im Hauptmenü auf die aktuelle Versionsnummer klickt. Dort findet man dann ganz oben die Guided Tour.

      9a3e3557-dc9d-4bd9-8ffd-7653d22cb9af-image.png 3e1a5225-4350-4925-9bdb-8fa8a183dd66-image.png

      Die Details vom NR-Guru in Englisch findet man hier - zusammen mit einem Video: https://nodered.org/blog/2021/10/21/version-2-1-released

      Dieses Release vor allem verbessert die Übersichtlichkeit und das Anordnen der Nodes. Man markiert die gewünschten Nodes und kann diese dann über das Menü anordnen:

      fd523360-9619-42ba-8ac8-760cb77d5757-image.png

      Wer schon mal mit Visio oder ähnlichen Tools gearbeitet hat oder Visual Basic um eine GUI zu entwerfen, dem wird das sicher bekannt vorkommen. 😉

      Das wichtigste Menü - um die bessere Übersichtlichkeit zu nutzen - ist im Flows Menü:

      67634f91-3efe-44df-9d9f-bd82158cb2bf-image.png

      Damit kann mal alle Flows, die man gerade nicht braucht verstecken und über den Dialog wieder sichtbar machen oder man klickt in der Flow übersicht auf den Flow und toggelt zwischen versteckt (durchgestrichenes Auge) und sichtbar:

      d9c71a89-66b7-4417-9ad7-13a44890f331-image.png

      Ein weitere Möglichkeit einen Flow zu verstecken ist einfach in dem Tab auf das Auge zu klicken:
      18984b4c-2546-437c-8c94-bdb7b66406d8-image.png

      Eine weitere meines Erachtens sehr erwähnenswerte Neuerung ist, dass man nicht nur für Subflows, sondern auch für Flows Umgebungsvariablen nutzen zu können, um ggf. die Flows zu initialisieren. Dazu braucht man also nicht mehr unbedingt einen Datenpunkt im iobroker zu definieren.

      Bei Subflows sind diese Umgebungsvariablen schon eine gute Erfindung, da man so jede Instanz der Node bzw. des Subflows unterschiedlich initialisieren kann.

      Hier mal ein Beispiel für die Initialisierung eines Flows.
      In den Eigenschaften eines Flows gibt es rechts einen neuen Button, in dem man Umgebungsvariablen definieren kann.

      62165503-91fd-48fb-90b8-2e242c21c8b1-image.png

      In dem Flow kann man dann auf diese Umgebungsvariable zugreifen.

      f32e9b5e-369c-4577-80d2-b369903b8f02-image.png

      Ein weiteres Highlight dieser Version ist für mqtt-Benutzer.
      Man kann die MQTT Nodes nun dynamisch konfigurieren. In der Beschreibung zum mqtt-Broker kann man nun das automatische Verbinden unterbinden - das sehe ich aber nicht als den Hauptvorteil.

      Der Vorteil dieser MQTT Nodes dynamisch zu konfigurieren ist, dass man so ein topic getriggert auslesen kann, was man im iobroker Umfeld mit einer iobroker-get Node macht.
      Allerdings ist das nicht gut dokumentiert in der Hilfe:

      Wenn man die mqtt-In Node dynamisch konfiguriert - bekommt diese einen Eingang und kann dann über msg.topic getriggert das topic auslesen:

      6cab157b-d79b-47ea-9ca4-d78172a94ba2-image.png

      Damit das Ganze aber funktioniert muss man eine action subscribe mitgeben - und wie gesagt das ist alles nicht dokumentiert:

      79c934ee-4437-411d-9e42-15304638897f-image.png

      Ein paar Beispiele für valide actions - gerade auch zum manuelle Aufbau zu einem mqtt Broker gibts hier in dem folgenden Flow:

      [
         {
             "id": "52942541834747c1",
             "type": "mqtt out",
             "z": "54b226bc.0793e8",
             "name": "",
             "topic": "",
             "qos": "",
             "retain": "",
             "respTopic": "",
             "contentType": "",
             "userProps": "",
             "correl": "",
             "expiry": "",
             "broker": "8a6b74c0.3c461",
             "x": 390,
             "y": 3200,
             "wires": []
         },
         {
             "id": "e2f0aae314b88447",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "connect port 1883",
             "props": [
                 {
                     "p": "action",
                     "v": "connect",
                     "vt": "str"
                 },
                 {
                     "p": "broker",
                     "v": "{\"broker\":\"192.168.1.51\",\"port\":1883}",
                     "vt": "json"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 190,
             "y": 3200,
             "wires": [
                 [
                     "52942541834747c1",
                     "c1cfb193f31c86a7"
                 ]
             ]
         },
         {
             "id": "f5ed93bae65b0374",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "connect 1884",
             "props": [
                 {
                     "p": "action",
                     "v": "connect",
                     "vt": "str"
                 },
                 {
                     "p": "broker",
                     "v": "{\"broker\":\"192.168.1.51\",\"port\":1884}",
                     "vt": "json"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payloadType": "str",
             "x": 170,
             "y": 3280,
             "wires": [
                 [
                     "52942541834747c1"
                 ]
             ]
         },
         {
             "id": "c1cfb193f31c86a7",
             "type": "debug",
             "z": "54b226bc.0793e8",
             "name": "",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "true",
             "targetType": "full",
             "statusVal": "",
             "statusType": "auto",
             "x": 440,
             "y": 3120,
             "wires": []
         },
         {
             "id": "1342c8cb6c7d1396",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "disconnect",
             "props": [
                 {
                     "p": "action",
                     "v": "disconnect",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 180,
             "y": 3420,
             "wires": [
                 [
                     "52942541834747c1"
                 ]
             ]
         },
         {
             "id": "a945fa7b989d68d6",
             "type": "mqtt in",
             "z": "54b226bc.0793e8",
             "name": "",
             "topic": "",
             "qos": "2",
             "datatype": "auto",
             "broker": "8a6b74c0.3c461",
             "nl": false,
             "rap": true,
             "rh": 0,
             "inputs": 1,
             "x": 390,
             "y": 3540,
             "wires": [
                 []
             ]
         },
         {
             "id": "a853a0255681f2c0",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "connect",
             "props": [
                 {
                     "p": "action",
                     "v": "connect",
                     "vt": "str"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 200,
             "y": 3120,
             "wires": [
                 [
                     "52942541834747c1"
                 ]
             ]
         },
         {
             "id": "388b902f250d4ab1",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "force  connect 1884",
             "props": [
                 {
                     "p": "action",
                     "v": "connect",
                     "vt": "str"
                 },
                 {
                     "p": "broker",
                     "v": "{\"broker\":\"192.168.1.51\",\"port\":1884,\"force\":true}",
                     "vt": "json"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 190,
             "y": 3340,
             "wires": [
                 [
                     "52942541834747c1"
                 ]
             ]
         },
         {
             "id": "6128f1909cbf8ea4",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "subscribe topic test",
             "props": [
                 {
                     "p": "action",
                     "v": "subscribe",
                     "vt": "str"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "test",
             "x": 180,
             "y": 3540,
             "wires": [
                 [
                     "a945fa7b989d68d6"
                 ]
             ]
         },
         {
             "id": "4c7b8677c28b28d6",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "Unsubscribe topic test",
             "props": [
                 {
                     "p": "action",
                     "v": "unsubscribe",
                     "vt": "str"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "test",
             "x": 209,
             "y": 3606,
             "wires": [
                 [
                     "a945fa7b989d68d6"
                 ]
             ]
         },
         {
             "id": "8a6b74c0.3c461",
             "type": "mqtt-broker",
             "name": "localhost:1883",
             "broker": "192.168.1.51",
             "port": "1883",
             "clientid": "",
             "autoConnect": false,
             "usetls": false,
             "protocolVersion": "5",
             "keepalive": "60",
             "cleansession": true,
             "birthTopic": "",
             "birthQos": "0",
             "birthRetain": "false",
             "birthPayload": "",
             "birthMsg": {},
             "closeTopic": "",
             "closePayload": "",
             "closeMsg": {},
             "willTopic": "",
             "willQos": "0",
             "willRetain": "false",
             "willPayload": "",
             "willMsg": {},
             "sessionExpiry": ""
         }
      ]
      

      Ansonsten kann man im Debug Fenster nun auch die Debug Nodes filtern, die man sehen will, ohne diese im Flow deaktivieren bzw. aktivieren zu müssen. Hab ich aber auch noch nicht benutzt.

      Auf die Highlights der Version 2.2 gehe ich hier erst mal nicht ein - hier verweise ich auf die aktuelle Guided Tour.

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

      Ich halte mich mal an die Liste - und werde diese ggf. mit eine paar Beispielen aufzeigen:

      3.0.0 (2022-03-11)

      IMPORTANT: Node-RED is now v2. Please check your nodes for compatibility! See also https://nodered.org/blog/2021/07/20/version-2-0-released and https://nodered.org/blog/2021/10/21/version-2-1-released

      • (jwiesel) Node-RED updated to 2.2.2

      Nun erst nochmals vielen Dank! - Wie gesagt an dem vorangegangen Post sieht man, dass doch erhebliche Erweiterungen und Verbesserungen mit den neuen Verbesserungen einhergegangen sind.

      • (jwiesel) "Tail" node has been removed from the default palette in Node-RED 2.0. You can reinstall it from node-red-node-tail.

      wurde bereits erwähnt

      • (Apollon77) Automatically create missing folders when node-red creates objects in javascript., node-red. and 0_userdata.0.*

      Hier steckte ein größerer Aufwand dahinter ist nun aber wieder kompatibel mit dem neuen Admin 5 und erstellt nun automatisch Folder Objekte für alle Hierarchieebenen. Ich persönlich habe mich ja sehr darüber mokiert, dass das nun so unflexibel war und bin hier sehr dankbar, dass dieses Problem gelöst ist und man unter 0_userdata.0.* wieder volle Flexibilität hat. Auch Folder Objekte in der Hierarchie können im Nachhinein wieder zu States umgewandelt werden. Als Beispiel werde ich mal meinen Subflow verwenden, um zu demonstrieren, dass die Objekte nun automatisch von der iobroker-out Node angelegt werden.

      Ich hab einfach mal aus den JSONATA Beispielen mal einen JSON String als Beispiel genommen und in eine INJECT-Node gepackt:

      a1267a73-3522-4646-b11e-f42593e2d219-image.png
      Über eine Subflow Variable legt man fest unter welchem Datenpunkt die Struktur angelegt werden soll.

      Das Ergebnis kann sich nun sehen lassen:

      712528bf-8408-43ed-9a19-d3a16136ca7f-image.png

      Man sieht der ganze JSON String wird als Datenstruktur mit den erforderlichen Folder-Objekten von der iobroker-out Node angelegt. Herzlichen Dank nochmals an @apollon77

      • (jwiesel) Added NodeRed parameter httpStatic to instance settings

      Auch das habe ich angeregt, da ich bei jedem Update die settings.js immer anpassen musste und das in meinen Augen ein wichtiger Parameter ist, den man nun in der Adapterkonfiguration festlegen kann.

      76c54ba5-ea69-4dfd-bac8-1af434031a5a-image.png

      Dieses Verzeichnis ist das Basisverzeichnis, um im Dashboard auf eigene Resourcen zugreifen zu können. Das können JS-Programme sein (s. Steelseries Thread) oder bei mir liegen Bilder und Wettericons in diesem Pfad.

      Im Flow ist das dann das Root Verzeichnis:

      Hier zeige ich zum Beispiel ein bestimmtes Icon für das Wetter an:

      619c1387-4ddf-4a0e-a949-c52e6876381a-image.png
      Basis ist also : /images/WetterIcons/ zusammen mit dem http-Static Path - liegt das Verzeichnis auf der Maschine also im Verzeichnis:
      /data/node-red/images/WetterIcons/

      40fe5ce5-5d44-4979-981c-82b74ead5c5b-image.png

      • (bluefox) Added the reading of objects from admin for SelectID dialog

      Das ist meines Erachtens noch offen und funktioniert immer noch nicht.
      Also den Pfad weiterhin manuell rauskopieren oder den Adapter neu starten.

      • (bluefox) Added debug output: Cannot set state of non-existing object

      Das ist meines Erachtens auch eine riesige Verbesserung. Hier gab es in der Vorgängerversion folgenden Eintrag im Log:

      Automatic objects creation is not enabled. You can enable it in the node configuration
      

      Da kommt man auch nicht gleich drauf, dass diese Meldung erzeugt wird, weil eine iobroker-IN oder iobroker-GET Node einen Datenpunkt im iobroker lesen möchte, den es gar nicht gibt.

      Hier mal eine ioBroker IN Node, die auf einen Datenpunkt verweist - der nicht existiert.

      Nun war man in der Vergangenheit mit obiger Meldung aufgeschmissen, weil man

      1. nicht wusste welcher Datenpunkt nicht existiert
        und
      2. man nicht wusste welche Node auf diesen Datenpunkt verweist.

      ac7a449e-5760-4e00-9860-79083761ee34-image.png

      Nun löst der neue Log-Eintrag beide Probleme:

      5727f4605ec73bac: "ioBroker in" Cannot set state of non-existing object "0_userdata.0.testType5".
      

      zum einen weiß man nun welcher Datenpunkt nicht existiert und bekommt auch noch gleich die Node-ID mitgeliefert mit der man die Node in seinen Flows identifizieren kann. Also die ID aus dem LOG kopieren und dann in das Suchfenster der Flows eingeben.
      Mit der Suche wird einem nicht nur die Node angezeigt:

      3e6d891e-c8e6-4bab-99fd-096287a71c7b-image.png

      Durch einen Doppelklick auf die Lupe wird sowohl auf den Flow mit der betroffenen Node gewechselt, diese markiert (oranger Rahmen) und die Definition aufgemacht.
      527d91ef-a74a-4beb-80e5-2eac84c40722-image.png

      Also in meinen Augen ein toller Komfortgewinn.

      • (bluefox) Allow setting of regular expression in the list node in message

      Hier hat nach meinen Tests, sowohl der reguläre Ausdruck nicht richtig funktioniert und zukünftig ist dieser reguläre Ausdruck auch noch dynamisch konfigurierbar.

      Hier wieder ein Anwendungsbeispiel:

      Die folgende iobroker-List Node - kann alle Objekte eines bestimmten Typs mit einem bestimmten Pfad selektieren.
      Hier mal meine Struktur unter 0_userdata.0

      d3884432-46f6-463a-861f-4a7f3486ac2a-image.png

      Über einen regulären Ausdruck möchte ich nun nur die Datenpunkte

      0_userdata.0.testType2
      0_userdata.0.testType3
      0_userdata.0.testType4
      

      herausfiltern.

      Die Definition der List Node sieht also wie folgt aus:

      e05708f5-1c02-4221-8eb7-c58cbc268647-image.png

      Das Topic selektiert alle Objekte unter 0_userdata.0.* (grün markiert) und filtert dann mit dem regulären Ausdruck (gelb markiert) die 3 gewünschten Objekte heraus .

      Die Anforderung war nun auch den Filter dynamisch konfigurieren zu können.

      Nun kann sowohl das Topic (grün), als auch der reguläre Ausdruck (gelb) über msg.regex dynamisch konfiguriert werden!

      90deb17a-a679-4cfa-b69c-ca12b4729537-image.png

      • (bluefox) Allow the filtering of ack=false messages for IN node

      Auch dies macht nun den NR-Fans das Leben viel leichter - hier hatten die Blockly Fans immer einen Vorteil. Wir konnten nie auf ACK=false überprüfen, sondern nur auf true oder egal. Gut es ging umständlich, indem wir das gesamte Objekt auslasen und dann über eine Switch Node filterten.

      Nun kann man auch ACK= false filtern und quasi wie ein HW Adapter agieren:

      2e7b43e8-fa70-40e5-840f-dc013b18da0a-image.png

      Beispiel in Zusammenspiel mit dem YAHKA Adapter, um Endlosschleifen zu vermeiden.
      Man erstellt zum Beispiel einen eigenen Datenpunkt unter 0_userdata.0. Wenn man dann in der HomeApp das Gerät schaltet, wird dieser Datenpunkt mit ACK=false gesetzt. Der Flow filtert dann über ACK=false und der iobroker-In Node den Trigger heraus und schaltet die eigentliche Hardware. Als Rückmeldung setzt der Flow den Datenpunkt mit ACK=true und verhindert so, dass die HW erneut geschaltet wird.

      • (Apollon77) Enhance GetNode rbe/deadband functions to optionally ignore initial value (wurde in Version 3.1.x geändert - und am Ende ergänzt)

      • (Apollon77) Return undefined for GetNode if the state currently has no value set (e.g. because expired or never set)

      Das bisherige Verhalten - hatte einen nicht vorhandenen State einfach ignoriert. Damit konnte man im Flow nicht auf diesen Fall reagieren und ggf. einen State erstellen. Nun hat man folgende Möglichkeiten:

      768b1683-168e-4790-bc2e-8a2f974daf05-image.png

      1. Return nothing
        Das entspricht dem bisherigen Verhalten und nicht vorhandene States werden ignoriert. Eine info wird im iobroker Log geloggt.

      2. Return state value as undefined
        Es wird ein undefined zurückgegeben, egal ob ein Wert nicht existiert oder nicht initialisiert ist. Man muss also in der Folge selbst entscheiden, ob man auf beide Situationen unterschiedlich reagieren will.

      3. Return error
        Ein uninitialisierter Wert wird weiterhin undefined weitergeben, bei einem nicht vorhandenen Wert wird ein Fehler erzeugt. Wird dieser nicht behandelt gibt es nur eine Fehlereintrag im LOG mit dem entsprechenden Datenpunkt, der nicht vorhanden ist.
        In Kombination mit einer Catch-Node kann man diesen Fehler abfangen und den Datenpunkt/State über eine iobroker-out Nodes anlegen.

      • (Apollon77) Allow for GetNode to return an error if a state-id is used for which no object exists, else also return undefined

      Wurde wie vorher besprochen.

      • (Apollon77) Also allow to access system.* states directly

      Das war leider seit der Version 2.x des iobroker NodeRed-Adapters nicht mehr möglich. In der Version 1 ging das. Somit musste man einen Alias bemühen, um den Zustand von beispielsweise Adapter zu überprüfen.

      Nun kann man die Objekte unter system wieder abfragen:

      4de0c45b-f846-447a-94c5-8e453c59e117-image.png

      Damit ist es ohne Umwege wieder möglich - den Zustand von Adapter zu analysieren und ggf. eigene Maßnahmen einzuleiten.

      Vielen Dank auch hierfür.

      • (Apollon77) When RBE function is used on InNode and not value is sent on start still initialize current value internally

      wurde bereits besprochen

      • (Apollon77) Add node-ID in front of all log lines logged by node logic

      Der Komfortgewinn wurde in Zusammenhang bei der Suche von iobroker-IN Nodes, die auf nicht vorhandene Datenpunkte verweisen erläutert.

      • (jwiesel) Changed default setting to "convert data from ioBroker nodes into Strings" to false. Setting will not be changed automatically in instances already existing

      Dies ist wohl eine der wichtigsten Verbesserungen für Anfänger. Wie oft muss man fragen, ob hier der Haken rausgenommen wurde. Nun ist der Standardwert, dass aus dem iobroker gelesene Werte ihren Typ behalten und nicht in Strings umgewandelt werden!

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

      Also nochmals vielen Dank - an alle die an den Verbesserungen mitgewirkt haben und falls es noch Fragen zu meinen Erläuterungen gibt, nutzt den Thread und ich denke neben mir werden auch alle anderen versuchen, hier zu helfen!!!

      Ach ja - noch was Wichtiges: Dieser Node-Red Adapter ist nun mit dem JS 4.0.x Adapter kompatibel!!! - Somit können auch NR-Fans nun wieder das System auf den akuellen Stand bringen!

      ==============================================================================
      Änderungen in Version 3.2.0

      • ListenpunktEnhance GetNode rbe/deadband functions to optionally ignore initial value

      Das ignorieren des Initialwertes entspricht nun dem Verhalten der Filter Node und bedeutet, dass dieser Initialwert nicht gesendet wird, sondern nur zum Initialisieren der Node genutzt wird, um Änderungen zu erkennen.

      Die Beschreibung wurde von Ignore auf Initialize geändert:

      3cab447c-e3a7-467c-b7a1-f461ba4e03a1-image.png

      Will man also den Anfangswert nach Adapterstart oder Neustart der Flows unterdrücken will, nutzt man die Initialisierungsoption - anderenfalls wird dieser Wert - falls Nachrichten bei Start auslesen gewählt ist - gesendet.

      Hier das Bild direkt nach Adapterstart - wenn send msg at start definiert wurde:

      f75c3999-d239-436a-bfcb-84c339ee73f4-image.png

      Falls no msg at start ausgewählt wurde findet die Initialisierung nach dem ersten Update statt.

      Ansonsten stehen wie beim Filter diese Optionen zur Verfügung:

      1. Wert hat sich geändert.
      2. Wert hat sich um einen definierten Wert geändert (also um eine Zahl)
      3. Wert hat sich um einen Prozentsatz geändert.

      In den Fällen 2 und 3 wird größer gleich als Vergleich angewandt.

      Das ganze funktioniert nicht über Wildcards.

      Für alle komplexeren Fälle empfieht es sich die Filter-Node in Kombination zu nutzen.
      In diesem Fall sollte man die iobroker-In Node, wie folgt konfigurieren:

      1. send msg at start
      2. send all events

      Die Filterung konfiguriert man dann über die Filter Node. Da stehen weitere Optionen zur Verfügung. Nutzt man Wildcards in der iobroker-IN Node, und konfiguriert, dass der Filter auf topic Basis arbeitet:

      ddcf1313-5065-47b1-994b-1685794a6585-image.png

      • (Bannsaenger) Added option for in Node to choose topic format (MQTT with / or ioBroker with .). Default: MQTT

      Nach dem Bilder in meinen Augen mehr als 1000 Worte sagen. Das bisherige Verhalten die Hierarchien der Topics mit / zu trennen, wie es unter MQTT üblich ist (grün), kann man sich das topic auch als iobroker Pfade mit einem Punkt zur Trennung der Hierarchieebenen ausgeben lassen (gelb).

      941e64f1-944b-47d0-88be-1f0f0137cfde-image.png

      Zu den letzten beiden Punkten kann ich nicht viel sagen, da ich weder Authentisierung, noch das Ändern der Pfade für den Webzugang genutzt habe.

      • Added new parameter "httpNodeRoot" as httpRoot has been replaced by httpAdminRoot in version 3.0.0.

      • Added extended authentication to instance settings and config
        Hier hat man in der NodeRed Adapter Konfiguration einen eigenen Tab, mit folgenden Optionen:

      1. Keine Authentifizierung
      2. Einfache Authentifizierung - mit Benutzer und Passwort (wobei ich nicht weiß, ob das wirklich noch funktioniert)
      3. Erweiterte Authentifizierung - hier kann man dann verschiedene Benutzer mit einer differenzierten Rechtevergabe definieren.

      5a60bb09-ded0-415a-aa24-dcaa2fa9c8fe-image.png

      Aber wie gesagt - hier muss man selbst Nachlesen welche Rechte es gibt.

      26ce2512-2b1b-4d23-b0d2-5ec9a11cb104-image.png

      Viel habe ich zu Benutzerberechtigungen nicht gefunden: Entweder "read" oder "*" für Vollzugriff. Welche Objekte es gibt, muss man eher ausprobieren. HIer mal die Seite zu BEnutzerberechtigungen: https://nodered.org/docs/user-guide/runtime/securing-node-red#user-permissions

      apollon77 F 2 Replies Last reply Reply Quote 7
      • mickym
        mickym Most Active last edited by mickym

        gelöscht - und in das 1. Posting kopiert - damit das nicht so auseinander gerissen ist. 😉

        1 Reply Last reply Reply Quote 2
        • D
          darkiop Most Active last edited by

          Wow .. changelog Extended, das sollte im eigentlichen Changelog verlinkt werden 😉

          Für mich, als nicht node-red Nutzer, vielleicht der Punkt an dem ich entscheide doch mal etwas Zeit in node-red zu investieren - mal schauen wie steil die Lernkurve ist 😉

          1 Reply Last reply Reply Quote 1
          • J
            Jan1 last edited by

            Was möchte mir diese Warnung mitteilen?

            2022-03-12 07:27:31.096 - warn: node-red.0 (1156817) Cannot enable the dynamic object read as admin has authentication
            
            mickym apollon77 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @Jan1 last edited by mickym

              @jan1 sagte in Neuer Node-Red Adapter 3.0.0 in Latest - Repository:

              Was möchte mir diese Warnung mitteilen?

              2022-03-12 07:27:31.096 - warn: node-red.0 (1156817) Cannot enable the dynamic object read as admin has authentication
              

              Ich bin da leider überfragt - aber liegt wohl daran, dass Du mit einer Authentifizierung arbeitest. Das muss wohl einer der Adapterentwickler beantworten. Vielleicht mal rausnehmen, ansonsten halt Issue eröffnen. Ist ja noch im Beta Status. 😉 - zumindest was den Adapter betrifft, wobei es bei mir nun auch nach ein paar Fehlermeldungen inzwischen erstaunlich ruhig ist. 😉

              J 1 Reply Last reply Reply Quote 0
              • J
                Jan1 @mickym last edited by

                @mickym
                Ja habe ich an und diese Meldung nicht im 2.X Adapter. Läuft alles soweit ich sehen kann, bis auf die neue Warnung.
                Dachte ich mir, dass es mit dem Adapter Login zu hat, wobei ich bei solchen Dingen, die bei mir die Bude kontrollieren eben immer lieber auf Nummer sicher gehe.

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

                  @jan1 Eventuell hast Du ja irgendwelche Credentials in Deiner settings.js gehabt und musst die vielleicht wieder eintragen. Der Aufbau dieser Konfigurationsdatei ist ja wieder neu oder war es in der Adapterkonfiguration? Vielleicht dort ggf. nochmal neu eintragen - aber ich weiß das ehrlich gesagt nicht. Vielleicht besser wenn sich ein Entwickler dazu äußert. Ich bin hier ja nur Anwender.

                  1 Reply Last reply Reply Quote 1
                  • apollon77
                    apollon77 @mickym last edited by

                    @mickym Mega Dank an @mickym für diesen Mega ausführlichen Post!!

                    1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 @Jan1 last edited by apollon77

                      @jan1 sagte in Neuer Node-Red Adapter 3.0.0 in Latest - Repository:

                      2022-03-12 07:27:31.096 - warn: node-red.0 (1156817) Cannot enable the dynamic object read as admin has authentication

                      Der grund ist das deine Admin Instanz SSL aktiv hat du das aber nicht im node-red hast (oder anders rum) ... damit ist die Kommunikation zwischen node-red und admin bezogen auf den "Objekt-ID Selector Dialog" nicht möglich und die Meldung sagt das das aktuell nicht geht.

                      EDIT:
                      Btwww ... warte ... die Meldung sagt das Admin ein passwort gesetzt hat und damit nide-red nicht zugreifen kann ... SSL wäre ne leicht andere Meldung

                      @mickym Kann das vllt ein grund sein warum der Dialog nicht tut? 😉

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        Jan1 @apollon77 last edited by

                        @apollon77
                        Ich habe sowohl im Admin als auch im Node-Red ein User mit Login angelegt. Alles läuft auf HTTPS, sonst wären die Logins eh fün .... 😉
                        Auch der Web Adapter ist mit Authentifikation.

                        Klar, wenn ich alles ohne mache, kommt auch die Warnung nicht mehr.
                        Bist jetzt stört auch nur die Warnung, da augenscheinlich alles läuft.

                        Claus1985 0 1 Reply Last reply Reply Quote 1
                        • Claus1985 0
                          Claus1985 0 @Jan1 last edited by

                          @jan1 Hab die gleiche Fehlermeldung. Kannst Du mir sagen welche Einstellungen Du dafür im Node Red verwendet hast? Wenn ich im Adapter einen User mit Kennwort angebe kann ich anschließend NodeRed nur noch separat mit https im Browser öffnen allerdings bekomme ich die Fehlermeldung immer noch im Log..

                          J apollon77 2 Replies Last reply Reply Quote 0
                          • J
                            Jan1 @Claus1985 0 last edited by

                            @claus1985-0
                            Hast den Web Adapter auch auf HTTPS? Wenn, dann musst alles umstellen.

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

                              @mickym Toller Post. Danke für die ausführlichen Erläuterungen.👍

                              Und auch an die Entwickler einen schönen Dank für die vielen guten Neuerungen/Verbesserungen. @apollon77, @Bluefox und @jwiesel

                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 @Claus1985 0 last edited by

                                @claus1985-0 Langsam!! Wenn die Meldung die ist wie oben hat es NICHTS mit SSL zu tun (dann sieht die Meldung etwas anders aus). Wenn es die Meldung wie oben ist dann iegt es daran das dein Admin ne user/Passwort auth aktiviert hat ... damit kann der node.red prozess (der das passwort ja nicht kennt) nicht mit dem Admin reden

                                J Claus1985 0 2 Replies Last reply Reply Quote 0
                                • J
                                  Jan1 @apollon77 last edited by

                                  @apollon77
                                  Die Meldung hat mit dem "Problem" eigentlich nichts zu tun, sind zwei Baustellen. Wobei ich das zu Beginn der Umstellung auf HTTPS auch hatte, dass der Nod-Red nur noch in einem separaten Browser Fenster lief. Da half eben alles auf HTTPS umstellen und schon läuft er auch wieder im IOBroker Fenster.

                                  Zurück zu der Meldung. Klingt plausibel, nur ist das nun ein Problem, oder kann man es schlicht ignorieren?

                                  apollon77 1 Reply Last reply Reply Quote 0
                                  • apollon77
                                    apollon77 @Jan1 last edited by

                                    @jan1 sagte in Neuer Node-Red Adapter 3.0.0 in Latest - Repository:

                                    Zurück zu der Meldung. Klingt plausibel, nur ist das nun ein Problem, oder kann man es schlicht ignorieren?

                                    Naja der "Object select dialog" tut nicht vollständig (heisst bekommt nicht die aktuellsten Daten und zeigt keine aktuellen Werte an)

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      Jan1 @apollon77 last edited by

                                      @apollon77
                                      Ok, in meinem Fall dann nicht tragisch, da ich mit Node-Red lediglich ein paar Geräte an Alex anbinde.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        mrjeschke last edited by

                                        Moin,

                                        Ich habe gerade Node-Red installiert, weil ich sehen wollte ob ich damit klar komme.
                                        Bei mir fehlt aber der Menü-Punkt Palette verwalten.
                                        Ist das ein Bug oder ein Feature.
                                        Der Eintrag die der config.js

                                         allowInstall: '%%palletmanagerEnabled%%' /** Enable the Palette Manager in the editor */
                                        

                                        sieht aber eher nach einem Bug aus.

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

                                          @maik-0 in der Adapterkonfig: Palettenmanager nutzen anhaken.Keine Änderungen in Dateien machen.

                                          M 1 Reply Last reply Reply Quote 1
                                          • M
                                            mrjeschke @mickym last edited by

                                            @mickym

                                            Sorry, brauch wohl doch ne neue Brille.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            935
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            node-red
                                            14
                                            96
                                            10209
                                            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