NEWS
"Nachricht an anderes Script" - mit Ergebnissen [gelöst]
-
Hallo,
ich habe etwas mit dem "Nachricht an anderes Script" herumgespielt.
Das Senden an den 2. Script funktioniert.
Bei dem "Nachricht an anderes Script" gibt es die Möglichkeit "mit Ergebnissen" zu aktivieren.
Aber wie kann ich denn bei "Nachricht empfangen" etwas zurück geben?
Und wie kann ich die Rückgabe bei "Nachricht an anderes Script" auswerten bzw wie kommt das da an?
Bei den "Funktionen" gibt es z.B. "gibt zurück" um einen Wert zurück zu geben.
Bei den "Aktionen" gibt es z.B. so etwas wie "result (stdout)" für den Rückgabewert.
Aber so etwas ähnliches finde ich bei "Sendto" und "Trigger" nicht.
Wenn das Blockly oben läuft kommen diese Testausgaben:2025-04-02 10:34:50.921 - info: javascript.0 (975) script.js.Allgemein.Test-1: (1) Start 2025-04-02 10:34:50.922 - info: javascript.0 (975) script.js.Allgemein.Test-1: (1) Ende 2025-04-02 10:34:51.041 - info: javascript.0 (975) script.js.Allgemein.Test-2: (2) >>Start Test-2<< 2025-04-02 10:34:51.047 - info: javascript.0 (975) script.js.Allgemein.Test-2: (2) Daten: Testinfo 2025-04-02 10:34:51.922 - info: javascript.0 (975) script.js.Allgemein.Test-1: (1) Ergebnis: 2025-04-02 10:34:53.049 - info: javascript.0 (975) script.js.Allgemein.Test-2: (2) >>Ende Test-2<<
Bei dem "http (GET)" kann man ein Timeout einstellen. Kann man das auch hier realisieren?
Wie kann man von "Nachricht empfangen" einen Wert zurück an "Nachricht an anderes Script" bei den Ergebnissen geben?
Bisher konnte ich darüber nichts finden. -
@martinsu sagte: "Nachricht an anderes Script" gibt es die Möglichkeit "mit Ergebnissen" zu aktivieren.
Das Ergebnis liefert die Variable
result
, die man selbst erstellen muss. -
@paul53 sagte in "Nachricht an anderes Script" - mit Ergebnissen ??:
die Variable result, die man selbst erstellen muss.
ist das nicht jetzt diese:
-
@homoran sagte: ist das nicht jetzt diese:
Diese kann man auch verwenden, aber man erhält ein blaues Warnsymbol.
-
@paul53 Danke!
-
@paul53
Und wie übergibt man den Rückgabewert bei "Nachricht empfangen"? -
@martinsu sagte: wie übergibt man den Rückgabewert bei "Nachricht empfangen"?
"Nachricht empfangen" hat keinen Rückgabewert. Bei erfolgreichem Empfang wird {result: true} zurück gegeben, andernfalls {error: 'timeout'}.
-
@paul53
true/false wäre ok,
ich habe es wie oben beschrieben auf 2 Arten getestet,- mit einer Variablen "result"
- und "result (stdout)" (mit dem blauen Dreieck)
Aber bei mir erscheint beides mal:
script.js.Allgemein._Test: (1) Ergebnis: >[object Object]<=>[object Object]<
Was mache ich falsch?
-
@martinsu
Um Daten Scriptübergreifend auszutauschen, kannst Du einen Datenpunkt verwenden. -
@martinsu sagte: Was mache ich falsch?
Es wird ein Objekt zurück gegeben. Wenn es mit weiterem Text verknüpft werden soll, muss es vorher nach JSON konvertiert werden.
-
@paul53
Danke, mit dem "Objekt nach JSON" kommt da true raus. -
@codierknecht
Wenn ich das richtig verstehe, ist "Nachricht an ein anderes Script" nichts anderes als wenn man in einen Datenpunkt die "Daten" schreibt, bei mir im Beispiel ist das "Testinfo".
Und dann in einem anderen Script statt "Ereignis: Nachricht empfangen" ein "Falls Objekt" nimmt und auf den Datenpunkt triggert. -
@martinsu sagte: in einem anderen Script statt "Ereignis: Nachricht empfangen" ein "Falls Objekt" nimmt und auf den Datenpunkt triggert.
Das ist das ursprüngliche ioBroker-Konzept, das ich ausschließlich verwende.
-
@paul53 sagte in "Nachricht an anderes Script" - mit Ergebnissen [gelöst]:
Das ist das ursprüngliche ioBroker-Konzept, das ich ausschließlich verwende.
Dem schließe ich mich an.
"Nachricht an Script" kann man sinnvoll eigentlich nur nach dem Motto "fire and forget" verwenden, wenn man ohne Verwendung eines State ein anderes Script "anschubsen" will aber keinen Rückgabewert benötigt.