@saschame da ich jetzt einige Stunden darauf verwendet habe, eine Variable in den zu sendenden Text einzubauen, will ich mein Ergebnis hier teilen; vielleicht hilft's ja jemandem.
Ich habe zunächst das Blockly-Beispiel von Elzershark aus seinem Forum genommen, wo immerhin schon neben fixem Text ein Variablenwert ergänzt wurde. Ich habe das Beispiel auf einen Variablenwert reduziert - also die festen Texte entfernt- , mir den JS-Code kopiert und diesen dann in einem JS-Skript laufen lassen. Ging auch. Dann wollte ich eine globale Funktion definieren, an die ein zuvor konstruierter String zum Senden übergeben wird. Dann wurd's erwas kompliziert mit 2 Sorten Anführungszeichen und Kommata. Verstanden hab ich es nicht 100%ig - auch weiß nicht nicht was .join('') am Ende bewirkt - , aber so funktioniert es immerhin:
Globale Funktion:
function SignalSend (SignalText) {
exec((['signal-cli -u +49172xxxxxxx send -m ', SignalText ,' +49172xxxxxxx'].join('')));
return;
}
let DAX = "'Der DAX steht bei " + getState('0_userdata.0.DAX30').val + " Punkten.'";
SignalSend (DAX);
Es geht auch ohne Text in der simplen Form
let DAX = getState('0_userdata.0.DAX30').val;
Doch wenn man Text vor den Wert stellt, muss man m.E. den String mit einem Hochkomma vorne beginnen lassen und hinter dem Wert ein Hochkomma in Anführungsstrichen folgen lassen, also:
let DAX = "'Der DAX liegt jetzt etwa bei " + getState('0_userdata.0.DAX30').val + "'";
Nachtrag:
Damit man sich keine Gedanken machen muss und einfach grundsätzlich einen "normalen" String an die globale Funktion übergeben kann, würde ich in der Globalfunktion zwei Hochkommata zwischen Anführungsstrichen ergänzen. Selbst wenn sie nicht gebraucht werden , stören sie wohl nicht:
exec((['signal-cli -u +49172xxxxxxx send -m ',"'"+ SignalText +"'",' +49172xxxxxxx'].join('')));