NEWS
Externes node-RED und ioBroker. Wie verbinden ?
-
@dreistein said in Externes node-RED und ioBroker. Wie verbinden ?:
Ein Punkt für eine Externe Version sind die Updates.
Der Adapter im ioBroker ist ein Jahr "hinterher".Wie bekomme ich denn Datenpunkte vom ioBroker in nodered bei externer Version?
@mickym Die externe Version habe ich abgeschaltet, im ioBroker nodered gelöscht und neu installiert, jetzt bekomme ich das Programm nicht mehr geöffnet.
Was läuft hier noch falsch? -
@alex303 sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Was läuft hier noch falsch?
was sagt denn
iob diag
in der Langfassung?
ohne Kenntnis des Zustands ist Hilfe nicht möglich -
@alex303 Wie @Homoran schon sagte - kann ich nicht in Dein System schauen und ob wirklich Dein externes NodeRed wirklich weg ist. Du kannst ja mal Deiner NodeRed Instanz unter dem iobroker einen anderen Port zuweisen und schauen, ob das geht. Aber letztlich hast Du ein Problem mit Deinem System.
Grundsätzlich kann man iobroker mit einem externen NodeRed über mqtt austauschen - aber es gibt keinen direkten Zugriff.
-
@mickym sagte in Externes node-RED und ioBroker. Wie verbinden ?:
einen anderen Port zuweisen
genau das will ich sehen
-
@homoran Wie kann ich mit Putty das Terminal vom ioBroker aufrufen?
ioBroker läuft im Docker der Synology. -
@alex303 sagte in Externes node-RED und ioBroker. Wie verbinden ?:
ioBroker läuft im Docker der Synology.
mit Docker kenne ich mich nicht aus
-
Auf der Suche nach genau dieser Lösung bin ich auch hier vorbei gekommen: https://github.com/ioBroker/ioBroker.node-red/issues/124
Das ist der zugehörige Feature Request...MfG,
André -
geht nicht!!!
-
@mickym Sehr konstruktiver Beitrag!
Ich glaube, dass es aktuell nicht geht kann man diesem Thread und dem Feature Request ganz gut entnehmen. Wollte nur sicherstellen, dass andere User, die Google bedienen können, (evtl. schneller) zur gleichen Erkenntnis gelangen... Weiß ehrlich gesagt nicht warum dich das jetzt getriggert hat...Dass es allerdings nicht geht, finde ich persönlich sehr schade. Gerade in Bezug auf containerisierte Umgebungen strebt man ja bekanntlich eher nach der Unabhängigkeit und Isolation der einzelnen Services, statt diese in andere Software zu inkludieren und Abhängigkeiten zu schaffen.
Ich sehe technisch keinen Grund warum es keine ioBroker Nodes für NodeRED geben können sollte. Immerhin können es "die Anderen" ja auch.Ich persönlich werde für meine custom Alexa Integration jetzt den Umweg über MQTT gehen um NodeRED aus ioBroker heraus lösen zu können. Schade.
MfG,
André -
@andre sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Ich sehe technisch keinen Grund warum es keine ioBroker Nodes für NodeRED geben können sollte. Immerhin können es "die Anderen" ja auch.
geben können wäre auch meiner Meinung nach möglich.
im Moment sind sie aber nur Bestandteil des Adapters und nicht als "Einzelmodul" verfügbar -
@homoran sagte in Externes node-RED und ioBroker. Wie verbinden ?:
im Moment sind sie aber nur Bestandteil des Adapters und nicht als "Einzelmodul" verfügbar
Das hat technische Gründe, weil die ioBroker-Nodes aktuell ganz normal mit den
adapter-utils
implementiert wurden. Also die nodes kommunizieren genau auf dem gleichen Weg mit dem js-controller, wie jede andere Instanz auch. Das hat den Vorteil, dass man das Rad nicht neu erfinden musste.Möchte man das nun extern auslagern, müsste man diese Nodes gegen irgendetwas verbinden (rest-api, sockets, ...) mit Authentication und allem drum und dran.
Bei der Rest-API kann man sich auch für State-Changes usw. "anmelden" und bekommt dann einen HTTP-Push: https://github.com/ioBroker/ioBroker.rest-api?tab=readme-ov-file#subscribe-to-the-states-or-objects-changes
Das könnte man jetzt schon genau so in Node-RED selbst bauen (mit den HTTP-Nodes).
-
So z.B.
[ { "id": "e4524f82656cd957", "type": "tab", "label": "Flow 2", "disabled": false, "info": "", "env": [] }, { "id": "ac1e2c56d66e6954", "type": "http in", "z": "e4524f82656cd957", "name": "ioBroker State Change", "url": "/ioBroker/stateChange", "method": "post", "upload": false, "swaggerDoc": "", "x": 220, "y": 120, "wires": [ [ "1d7f4181f4024d03", "b59cdb052b959c5e" ] ] }, { "id": "a3320f282da607bf", "type": "inject", "z": "e4524f82656cd957", "name": "Register for state changes", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 240, "y": 60, "wires": [ [ "2438b2516da0d404" ] ] }, { "id": "18d235b5987d73d7", "type": "http request", "z": "e4524f82656cd957", "name": "ioBroker Subscribe", "method": "POST", "ret": "txt", "paytoqs": "ignore", "url": "", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 770, "y": 60, "wires": [ [ "3558d8854fd87800" ] ] }, { "id": "2438b2516da0d404", "type": "function", "z": "e4524f82656cd957", "name": "Set url and payload", "func": "const nodeRedIp = '10.10.9.27:1880';\nconst ioBrokerIp = '10.10.2.51';\n\nconst stateId = '0_userdata.0.test';\n\nmsg.url = `http://${ioBrokerIp}:8082/rest-api/v1/state/${stateId}/subscribe`;\nmsg.payload = {\n url: `http://${nodeRedIp}/ioBroker/stateChange`\n};\n\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 60, "wires": [ [ "18d235b5987d73d7" ] ] }, { "id": "3558d8854fd87800", "type": "debug", "z": "e4524f82656cd957", "name": "debug 3", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 980, "y": 60, "wires": [] }, { "id": "1d7f4181f4024d03", "type": "http response", "z": "e4524f82656cd957", "name": "", "statusCode": "", "headers": {}, "x": 450, "y": 160, "wires": [] }, { "id": "b59cdb052b959c5e", "type": "switch", "z": "e4524f82656cd957", "name": "Just a test?", "property": "payload.test", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 470, "y": 120, "wires": [ [], [ "375c837e9615b225" ] ] }, { "id": "375c837e9615b225", "type": "debug", "z": "e4524f82656cd957", "name": "debug 4", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 680, "y": 120, "wires": [] } ]
- Erfordert im ioBroker die rest-api
- In diesem Beispiel ist die rest-api als web-Extension konfiguriert (ansonsten url anpassen)
-
@haus-automatisierung sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Bei der Rest-API kann man sich auch für State-Changes usw. "anmelden" und bekommt dann einen HTTP-Push: https://github.com/ioBroker/ioBroker.rest-api?tab=readme-ov-file#subscribe-to-the-states-or-objects-changes
Du hast mal wieder absolut recht!
Danke für den Schubs in diese Richtung und das Beispiel. Für einfaches lesen/schreiben (bei mir geht es aktuell primär um states schreiben) würde sogar simple-api reichen. Der Witz ist, dass ich eine vergleichbare Lösung (abseits von Node-RED) sogar schon für eine handvoll States im ioBroker nutze.MfG,
André -
Ich bin zu doof.
Wenn ich deine Node kopiere, kommt eine Fehlermeldung. Klar. Falsche IP's und fehlender Adapter.
Bisher nur Simple Api vom WEB Adapter benutzt, oder besser gekannt.
Angapsst. Läuft.
Nodes Kopiert. Dein Flow gelöscht. Nichts geht mehr.
Funktioniert das alles nur mit dem Node Red adapter von ioBroker ?Wo ist da der (mein) Fehler ?
Den auf das Triggern von Node Red Nodes durch den ioBroker habe ich ewig gesucht und nichts gefunden.
Falls dir Ideen ausgehen für Videos. Ich hätte da eine
-
@dreistein sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Funktioniert das alles nur mit dem Node Red adapter von ioBroker ?
Nein - genau darum ging es doch hier. Um eine externe Installation von Node-RED.
@dreistein sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Falls dir Ideen ausgehen für Videos. Ich hätte da eine
Das sind ja absolute Basics und das habe ich (meiner Meinung nach) schon zig mal gezeigt. Was fehlt Dir an Infos? Wie man die rest-api anspricht?!
-
@dreistein sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Wenn ich deine Node kopiere, kommt eine Fehlermeldung.
Beim kopieren? Beim Import? Oder beim Ausführen? Was denn genau für eine Meldung? Ich habe das mit Node-RED 3.1 getestet und es werden nur Standard-Nodes verwendet.
-
UI, jetzt wird es für mich kompliziert.,
Deine Nodes, bei mir in Flow 2 markiert, und in meinen "Spielplatz" kopiert.
IP's angepasst.
Deploy.
Werte änderungen im '0_userdata.0.test' werden über 'Debug 4' angezeigt. (Dein Flow)
Dein Flow (Flow2) deaktivert. Keine Änderung wird mehr angezigt.
Bei mir wäre das dann z.b. Debug 31.Antwort: Alles OK
Und die Antworten kommen nur einmal irgendwo an.
Wenn man verschieden Abos in verschiedenen Flows hat, kommt die Antwort, scheinbar zufällig, und nur einmal
an irgendeinem "Http In Node" an.
Ziemlich verwirrend das ganze. -
@dreistein sagte in Externes node-RED und ioBroker. Wie verbinden ?:
und nur einmal
an irgendeinem "Http In Node" an.Naja Du brauchst ja nur eine http-In Node. Dort kommen alle abonnierten Nachrichten an. Oder Du müsstest für jeden State eine eigene URL anlegen (finde ich etwas nervig).
-
Schade. Funktioniert dann nicht wie erhofft.
Alle Trigger laufen auf einen Node. Eher suboptimal.
Dann eben doch HA.Danke für deine Mühe.
-
@dreistein sagte in Externes node-RED und ioBroker. Wie verbinden ?:
Alle Trigger laufen auf einen Node. Eher suboptimal.
Mh? Einfach eine Switch-Node dahinter und gut.
Oder eben jede Subscription auf einer eigenen Url registrieren.