NEWS
Zugriff auf iobroker Name, Type, Role?
-
Kann man von node-red aus auf Name, Type, Role, usw zugreifen (zB um den Namen eines Homematic Device zu bekommen)?
-
ja, das funktioniert ohne Probleme 8-)
Da ich kein JavaScript kann, klicke ich mir einige Programme durch Node-Red zusammen
-
super, kannst du mir sagen wie ich den Namen und Typ eines Datenpunkts abfragen kann?
-
01. NodeRed Öffnen
02. ioBroker Node auf dein Arbeitsbreich ziehen
03. Node Doppelklicken, dann öffnet sich dieses Fenster. Dann bei Topic auf die Schaltfläche mit dem Punkt klicken.
04. Deinen gewünscheten Datenpunkt auswählen (im Beispiel ein CUxD State)
05. Hier siehst du das dein Datenpunkt übernommen worden ist bzw. welchen wert, dann auf Done klicken.
06. Dein Datenpunkt
07. Auf Deploy klicken, damit wird dein erstellter "Entwurf" aktiviert (weiss jetzt nicht wie ich das anders beschreiben soll, mir fehlen die passenden worte)
-
@Nippy: vielen Dank für die ausführliche Erklärung!
Leider möchte ich aber den Namen auslesen und nicht den Wert eines Datenpunkts.
zB kann man bei den Objekten für Homematic (hm-rpc) bei Name statt "HM-ES-PMSw1-Pl MEQ0272904" auch "Kühlschrank" eingeben.
Über die ID des Datenpunktes möchte ich jetzt diesen Namen auslesen.
-
Geh mal in ioBroker in den Reiter Objekte.
Dann suchst du dir den Passenden Aktor aus.
Gehst dann auf der rechten Seite auf den Stift (Links neben dem Mülleimer).
Im Reiter Allgemein, da solltest du den Namen ändern können.
Anschließend einmal NodeRed neu Starten, dann steht dein geänderte Name auch da.
[EDIT] Nochmal Bilder hinzugefügt
-
Hab es jetzt so gelöst, daß ich ioBroker.js in node-red/nodes mit getForeignObject() erweitert habe und common.name als node attribute mitschicke.
Am Schönsten wäre es natürlich, wenn man beim iobroker node payload auswählen könnte:
value
object iobroker-state
object iobroker-object
object iobroker-state and object
1 und 2 gibts ja jetzt schon, aber eben kein Zugriff auf iobroker object (falls ich mich nicht irre :))
-
1 und 2 gibts ja jetzt schon, aber eben kein Zugriff auf iobroker object (falls ich mich nicht irre :)) `
Ja, Node-RED "ioBroker get", "Payload: object" entspricht getState(id). -
Hallo Zusammen,
ich lerne grade die Kombination aus ioBroker und node red genauer kennen.
Die Kombination mit iobroker.vis/hqwidgets&jqui finde ich besonders interessant.
Was mir extrem helfen würde, wäre eine Übersicht/FAQ wie man mit Variablen/States bzw. Events in diesem Dreieck iobroker objects, vis, node-red umgeht.
Wenn man eine bestehende Variable aus dem iobroker nimmt (z.B. den State eines Homematic Actors) ist es ja relativ straight forward. Den State kann man aus dem vis anzeigen und manipulieren, und auch aus node-red anzeigen und manipulieren.
Wie geht es aber wenn man aus Node-Red eine globale Variable befüllen möchte für es kein Actor-Object gibt auf dem ich schreiben könnte.
Nehmen wir als Beispiel eine Variable, die einfach sagt ob die Alarm-Anlage scharf oder unscharf ist.
Diese Variable soll von alle Möglichkeiten gelesen oder geschrieben werden können. Dabei sollen vis und node-red entsprechend state-change Events mitbekommen.
-
Sensor (z.B. Homematic Taster/Schalter) toggelt/schaltet die Variable scharf/unscharf
-
node-red flow schreibt die Variable
-
iobroker.vis zeigt den state change an, egal vorher er kommt.
-
iobroker.vis man kann auf das Widget klicken und toggelt den wert scharf/unscharf
-
node-red bekommt den trigger-event mit, genauso wie iobroker.vis wenn sich die variable ändert und startet einen flow.
-
…
Wahrscheinlich geht das alles schon irgend wie, ich habe aber keine Möglichkeit oder Doku gefunden.
Herzlichen Dank für eine Hilfe oder Erklärung.
Stefan
-
-
Aaaaaalso …
name: Name
type: Datentyp, also string, boolean, number
role: Rolle, die ist interessant für die Visualisierung.
Details und Rollenliste: https://github.com/ioBroker/ioBroker/bl ... A.md#state
-
danke
ich habe den + Button im Object Browser nicht gesehen.
Jetzt mit dem link ist alles klar.
Großes Kompliment an alle ioBroker Macher!
Das ist echt professionell gemacht.
Grüße
Stefan