NEWS
Wert eines ioBroker Datenpunktes als JSON ausgeben
-
Ich habe hierzu schon einen kompletten Flow ins Netz gestellt.
https://forum.iobroker.net/topic/31010/gelöst-shelly-rgbw-steuern
Importiere mal den Flow aus dem Thread und wenn Du noch Fragen hast - helfe ich, wenn ich kann.
Hier nochmal der Flow:
[ { "id": "3830bf94.4817e", "type": "inject", "z": "6e170384.60c96c", "name": "Objekt", "topic": "", "payload": "{\"ison\":true,\"mode\":\"color\",\"red\":254,\"green\":158,\"blue\":91,\"white\":0,\"gain\":4,\"effect\":0,\"power\":0.46,\"overpower\":false}", "payloadType": "json", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 190, "y": 3420, "wires": [ [ "8b0a970c.1b38d8", "e02931c5.85468", "6a06c3af.5aa0fc" ] ] }, { "id": "8b0a970c.1b38d8", "type": "change", "z": "6e170384.60c96c", "name": "rot", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "payload.red", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 410, "y": 3340, "wires": [ [ "f0321cab.0adaa" ] ] }, { "id": "e02931c5.85468", "type": "change", "z": "6e170384.60c96c", "name": "grün", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "payload.green", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 410, "y": 3480, "wires": [ [ "17d1ea55.024256" ] ] }, { "id": "f0321cab.0adaa", "type": "ui_slider", "z": "6e170384.60c96c", "name": "Roter Regler", "label": "Rot", "tooltip": "", "group": "b38597db.715cf8", "order": 0, "width": 0, "height": 0, "passthru": true, "outs": "all", "topic": "", "min": 0, "max": "255", "step": 1, "x": 610, "y": 3340, "wires": [ [ "c9c8c934.43d1c8" ] ] }, { "id": "17d1ea55.024256", "type": "ui_slider", "z": "6e170384.60c96c", "name": "Grüner Regler", "label": "Grün", "tooltip": "", "group": "b38597db.715cf8", "order": 0, "width": 0, "height": 0, "passthru": true, "outs": "all", "topic": "", "min": 0, "max": "255", "step": 1, "x": 620, "y": 3480, "wires": [ [ "785a8552.a5585c" ] ] }, { "id": "6a06c3af.5aa0fc", "type": "change", "z": "6e170384.60c96c", "name": "", "rules": [ { "t": "set", "p": "fobject", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 430, "y": 3620, "wires": [ [] ] }, { "id": "c9c8c934.43d1c8", "type": "change", "z": "6e170384.60c96c", "name": "", "rules": [ { "t": "set", "p": "fobject.red", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 3340, "wires": [ [ "aa46c4cf.934fa8" ] ] }, { "id": "785a8552.a5585c", "type": "change", "z": "6e170384.60c96c", "name": "", "rules": [ { "t": "set", "p": "fobject.green", "pt": "flow", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 3480, "wires": [ [ "aa46c4cf.934fa8" ] ] }, { "id": "aa46c4cf.934fa8", "type": "change", "z": "6e170384.60c96c", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "fobject", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1100, "y": 3400, "wires": [ [ "3cd610b9.19a05" ] ] }, { "id": "24c16160.799c8e", "type": "debug", "z": "6e170384.60c96c", "name": "Json String", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 1250, "y": 3540, "wires": [] }, { "id": "51f0fe94.f0705", "type": "json", "z": "6e170384.60c96c", "name": "", "property": "payload", "action": "", "pretty": false, "x": 1390, "y": 3460, "wires": [ [ "24c16160.799c8e" ] ] }, { "id": "3cd610b9.19a05", "type": "trigger", "z": "6e170384.60c96c", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "1", "extend": true, "units": "s", "reset": "", "bytopic": "all", "name": "", "x": 1290, "y": 3400, "wires": [ [ "51f0fe94.f0705", "f3af5049.4cc4b" ] ] }, { "id": "f3af5049.4cc4b", "type": "debug", "z": "6e170384.60c96c", "name": "Objekt", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 1520, "y": 3380, "wires": [] }, { "id": "b38597db.715cf8", "type": "ui_group", "z": "", "name": "Default", "tab": "dc25fe35.866f", "disp": true, "width": "6", "collapse": false }, { "id": "dc25fe35.866f", "type": "ui_tab", "z": "", "name": "Test", "icon": "dashboard", "disabled": false, "hidden": false } ]
-
Danke für die flotte Antwort.
Wo würde ich dabei meinen Datenpunkt verknüpfen?
-
Ich seh ja aus Deinem Screenshot nur, dass Du selbst Datenpunkte anlegst.
Irgendwo musst Du doch einen Datenpunkt haben, aus dem Du den Status ausliest. Dann zeig mal wie der Kommando String aussehen muss, dass Du als ArtNet Command schickst.
-
@mickym
z.B. diese Inject Node hängt direkt am ArtNet Command
Meinst du das?
Zumindest wird damit der Kanal an welchem der Draht für die grünen LEDs hängt angesteuert und leuchtet... -
@wye
Nein - Du willst das ja nicht mit Inject manuell senden.Es muss doch einen oder mehrere Datenpunkte geben, wo Deine Lampe meldet, welchen Zustand sie gerade hat.
-
@mickym Achso nein.
Bin aktuell ja nur am Testen. Daher habe ich bisher noch keine Abfrage des aktuellen Zustandes.
Das bisherige Ziel belief sich rein darauf 0-255 aus meinem ioBroker Objekt /Datenpunkt zu beziehen und das eben nicht manuell zu machen.
Der Datenpunkt wird letztenslich über die Vis geändert (zwischen 0 und 255) und entsprechend sollte das durch NodeRed laufen...
Verstehst du was ich meine? -
OK - ich verstehe - dann wenn Du vis nutzt willst Du Deine eigenen Datenpunkt auch selbst befüllen.
Im Prinzip kannst Du meinen Flow importieren und statt der Regler nimmst Du einen iobroker in Node.Du setzt also eine Flow Variable und speicherst ein Java-Objekt, dass Du dann via JSON Node in einen String umwandelst.
Oder anderst ausgedrückt Wenn Du Deinen Grünen Wert änderst setzt Du damit fobject.green, Rot = fObject.red usw.
Dieses FObject kannst Du dann via JSON Node in String umwandeln und dann an das ArtNet ausgeben.
Was machst Du denn im Moment in Deiner Funktion?
-
@mickym Könntest du den letzten Absatz etwas genauer ausführen?
Iobroker In Node ist soweit klar... Wie setze ich die Variable in Java? Welchen Node /Baustein verwende ich dafür? -
Wenn Du meinen Flow implementierst und den Inject Node drückst, dann siehst Du unter den Kontextdaten das Objekt bzw. in der Debug Node.
Oben siehst Du das Java Object und dann mit JSON Node in string umgewandelt
-
@mickym Danke für deine Hilfe.
Ich habe den Kopf in den Sand gesteckt bzgl. NodeRed.
Habe das Script von Alex ausprobiert und das sagt mir eher zu und funktioniert auch bereits wie gewünscht mit Input von meiner Vis.
Also nochmals vielen Dank.
Kann/Könnte dann geschlossen werden.