NEWS
ioBroker Script Funktionen in NR
-
Ich ziehe gerade meine Redmatic NR Installation in eine NR ioBroker um. In meinen Logiken verwende ich z.T. Homematic Methoden, z.B. putParamset, reportValueUsage etc.
In ioBroker liese sich das ja über Skripte, so ähnlich lösen, z.B.
sendTo('hm-rpc.1', 'reportValueUsage', {ID: '00019D89A3647F:2', paramType: 'PRESS_SHORT', params: 1}, res => { log(JSON.stringify(res)); });Gibt es eine Möglichkeit solche Skriptaufrufe auch in NR (z.B. function-node) zu verwenden und den Rückgabewert weiter zu verarbeiten?
-
Ich ziehe gerade meine Redmatic NR Installation in eine NR ioBroker um. In meinen Logiken verwende ich z.T. Homematic Methoden, z.B. putParamset, reportValueUsage etc.
In ioBroker liese sich das ja über Skripte, so ähnlich lösen, z.B.
sendTo('hm-rpc.1', 'reportValueUsage', {ID: '00019D89A3647F:2', paramType: 'PRESS_SHORT', params: 1}, res => { log(JSON.stringify(res)); });Gibt es eine Möglichkeit solche Skriptaufrufe auch in NR (z.B. function-node) zu verwenden und den Rückgabewert weiter zu verarbeiten?
@sineos Nein gibt es nicht. Es gibt ein offenes Issue-Enhancement um via „sendTo“ etwas an andere Adapter zu schicken, ist aber nicht implementiert. Wenn Du hauptsächlich mit NR arbeiten willst, musst im Moment solche Requests über in selbsterstellte Datenpunkte schreiben, die dann ein JS triggern und das Ergebins wieder zur Verfügung stellen, um es in NR weiter zu verarbeiten.
-
@sineos Nein gibt es nicht. Es gibt ein offenes Issue-Enhancement um via „sendTo“ etwas an andere Adapter zu schicken, ist aber nicht implementiert. Wenn Du hauptsächlich mit NR arbeiten willst, musst im Moment solche Requests über in selbsterstellte Datenpunkte schreiben, die dann ein JS triggern und das Ergebins wieder zur Verfügung stellen, um es in NR weiter zu verarbeiten.
-
@sineos sagte in ioBroker Script Funktionen in NR:
Habe ich fast befürchtet. Das ist bitter. Danke für die Antwort.
Ich versuch mal was zu basteln. ;) - Ja Du kannst ja mal einen Daumen nach oben geben - vielleicht bewegt sich dann was:
https://github.com/ioBroker/ioBroker.node-red/issues/291 -
@sineos sagte in ioBroker Script Funktionen in NR:
Habe ich fast befürchtet. Das ist bitter. Danke für die Antwort.
Ich versuch mal was zu basteln. ;) - Ja Du kannst ja mal einen Daumen nach oben geben - vielleicht bewegt sich dann was:
https://github.com/ioBroker/ioBroker.node-red/issues/291 -
@mickym Das wäre klasse. Man kann ja in den NR function nodes auch externe Module laden, aber da bin ich leider auch nicht weiter gekommen, quasi "mal schnell" die ioB script API hier rein zu ziehen.
@sineos Nein das wird nicht gehen. Das habe ich mit @apollon77 schon abgeklärt. Man wird im NR leider nicht die gesamte iobroker JS library angeboten bekommen. Also auch so was wie Objekte löschen etc. musst Du über den JS Adapter machen. Wie gesagt, ich versuche über einen Datenpunkt ein JS anzutriggern und dann muss man sehen.
-
@sineos Nein das wird nicht gehen. Das habe ich mit @apollon77 schon abgeklärt. Man wird im NR leider nicht die gesamte iobroker JS library angeboten bekommen. Also auch so was wie Objekte löschen etc. musst Du über den JS Adapter machen. Wie gesagt, ich versuche über einen Datenpunkt ein JS anzutriggern und dann muss man sehen.
Quasi ein hässlicher work-around, den man auch für andere Sachen anwenden könnte:
on("0_userdata.0.randTrigger", function (obj) { sendTo('hm-rpc.0', 'rssiInfo', {}, res => { setState("0_userdata.0.hmRSSI", res); }); });
Schön ist das aber nicht :expressionless:
-
Quasi ein hässlicher work-around, den man auch für andere Sachen anwenden könnte:
on("0_userdata.0.randTrigger", function (obj) { sendTo('hm-rpc.0', 'rssiInfo', {}, res => { setState("0_userdata.0.hmRSSI", res); }); });
Schön ist das aber nicht :expressionless:
@sineos sagte in ioBroker Script Funktionen in NR:
Schön ist das aber nicht
Aber es zeigt immerhin, wie integrativ der iobroker ist, um so systemübergreifend zum Ergebnis zu kommen. ;)
-
@sineos sagte in ioBroker Script Funktionen in NR:
Schön ist das aber nicht
Aber es zeigt immerhin, wie integrativ der iobroker ist, um so systemübergreifend zum Ergebnis zu kommen. ;)
@mickym said in ioBroker Script Funktionen in NR:
Aber es zeigt immerhin, wie integrativ der iobroker ist, um so systemübergreifend zum Ergebnis zu kommen.
ioB ist klasse, da gibt es keine Frage. Harte Kanten und Ecken gibt es immer, egal bei welchem Produkt. Wichtig ist, dass es eine Lösung gibt. Schöne Lösungen natürlich bevorzugt ;-)
Vielen Dank für Deine Hilfe nochmal @mickym -
Quasi ein hässlicher work-around, den man auch für andere Sachen anwenden könnte:
on("0_userdata.0.randTrigger", function (obj) { sendTo('hm-rpc.0', 'rssiInfo', {}, res => { setState("0_userdata.0.hmRSSI", res); }); });
Schön ist das aber nicht :expressionless:
@sineos So ich hab mal versucht, dass ganze generisch für verschiedene Adapter mit Flow Beispielen zu machen.
Getest habe ich mal MQTT und SQL. Kannst ja mal testen, ob es für Homematic auch tut, ich hab nur kein Homematic deswegen kann ich es mit diesem Adapter nicht testen.Hier mal die Beschreibung in einem eigenen Thread:
https://forum.iobroker.net/topic/57210/nodered-sendto-proxy-mit-jsDie verschiedenen Kommandos könntest Du auch einfach einschleusen, indem Du eine msg.xxx Eigenschaft auf msg.sendTo.command verschiebst bevor ich in der ChangeNode das ganze dann zur payload mache.