NEWS
Node-RED Nodes für externe ioBroker Integration
-
@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.
-
@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
-
@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. -
@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. -
@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.
-
@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 -
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.
-
@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? -
@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-
und hier hochladen:
-
@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
-
@marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:
.tgz aus dem Release runter-
Und nochmal danke
-
In der v0.12.0 habe ich noch ein wenig an der Darstellung des History-Node geschraubt (Tab-Darstellung).
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:
-
@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:

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.

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.

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.
-
Exportiere bitte noch die verarbeiteten Datenpunkte aus MQTT.* und alias.* aus dem Objektbaum als JSON und stelle sie hier rein.Ahh, Fehler gefunden. Der letzte Node bekommt durch die Verkettung als ObjectType "any" (als String) mitgegeben, den es so nicht gibt. Ich schleife ja die Suchparameter mit. Als Quickfix diese Eigenschaft im letzen Change-Node einfach löschen.
Ich schau mal, dass ich den Eingabe-Parameter "any" und "null" gleichsetze.
Das ist wie die Geschichte mit der "any"-Key ...
-
@marc-berg Hoffe, ich habs richtig exportiert.
mqtt.0.stTasmota-8.json alias.0.Klima.office.Temperatur.json -
@rewenode sagte in Node-RED Nodes für externe ioBroker Integration:
Hoffe, ich habs richtig exportiert.
ja, sorry. Habe meinen letzten Post editiert.
-
@marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:
Als Quickfix diese Eigenschaft im letzen Change-Node einfach löschen.
Ja passt so
Und keine Eile, das läuft ja noch nicht produktiv.
-
@rewenode sagte in Node-RED Nodes für externe ioBroker Integration:
Sieht fast so aus, als hätte es mit dem msg-object zu tun, was ja komplett durchgeschleift wird.
Die aufgeräumten Objekt-Eigenschaften sind in der v0.12. verfügbar. Bald in der Palette oder jetzt auf Github.
-
Da das Abfragen der Objekteigenschaften und der Aliase doch eng zusammenhängt, habe ich es gleich in den GetObject Node mit eingebaut.
Damit müsstest du nicht mehr den Umweg über fünf Nodes nehmen.
-
@marc-berg sagte in Node-RED Nodes für externe ioBroker Integration:
Da das Abfragen der Objekteigenschaften und der Aliase doch eng zusammenhängt, habe ich es gleich in den GetObject Node mit eingebaut.
Das ist wirklich klasse und eine echte Erleichterung
Danke