[gelöst] syntax error Fhem set

Begonnen von Chris_XXX, 08 August 2024, 13:49:49

Vorheriges Thema - Nächstes Thema

Chris_XXX

Hallo zusammen,

ich habe folgendes Problem. Dieser Befehl:
set mqtt publish awtrix_TC001/custom/PV {"icon": "87","lifetime":"10","duration":"7","text": [{"t": "Hallo ","c":"FFFFFF"},{"t": "Sepp","c": "FF0810"}]}macht genau das was er soll wenn ich ihn in der Befehlszeile eingebe.
Wenn ich das Ganze aus in ein Notify einbauen möchte: 
fhem("set mqtt publish awtrix_TC001/custom/PV {"icon": "87","lifetime":"10","duration":"7","text": [{"t": "Hallo ","c":"FFFFFF"},{"t": "Sepp","c": "FF0810"}]}"); bekomme ich den Fehler
syntax error at (eval 27486013) line 3, near ""set mqtt publish awtrix_TC001/custom/PV {"icon"

Weiß jemand woran das liegt? Geht das überhaupt oder habe ich da schon einen grundlegenden Denkfehler?

Danke und Gruß
Christian

DeeSPe

Einfach die " innerhalb des set Befehls gegen ' austauschen oder die " maskieren mit \".

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Oder die " des set austauschen mit '.
fhem('set mqtt publish awtrix_TC001/custom/PV {"icon": "87","lifetime":"10","duration":"7","text": [{"t": "Hallo ","c":"FFFFFF"},{"t": "Sepp","c": "FF0810"}]}');
Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Chris_XXX

So einfach kann es sein wenn man weiß wie  :-[
Vielen Dank.
Ich habe noch eine Bonusfrage: Wie kann ich das erste Hallo gegen eine $Variable ersetzen? Wenn ich einfach Hallo gegen $Variable ersetzte wird einfach nur $Variable übergeben.
fhem('set mqtt publish awtrix_TC001/custom/PV {"icon": "87","lifetime":"10","duration":"7","text": [{"t": "Hallo ","c":"FFFFFF"},{"t": "Sepp","c": "FF0810"}]}');

MadMax-FHEM

#4
Zitat von: Chris_XXX am 08 August 2024, 14:35:09Ich habe noch eine Bonusfrage: Wie kann ich das erste Hallo gegen eine $Variable ersetzen? Wenn ich einfach Hallo gegen $Variable ersetzte wird einfach nur $Variable übergeben.
Wollte schon schreiben, dass diese Variante bei Verwendung von Variablen nicht geht ;)

Da dann die Variante mit dem escapen, also Vorschlag eins und dann sollte das gehen...

'$Variable' -> Text wie er ist, also einfach $Variable (hast du ja gemerkt)

"$Variable" -> Inhalt von $Variable

EDIT: vermutlich so:
fhem("set mqtt publish awtrix_TC001/custom/PV {\"icon\": \"87\",\"lifetime\":\"10\",\"duration\":\"7\",\"text\": [{\"t\": \"$Variable \",\"c\":\"FFFFFF\"},{\"t\": \"Sepp\",\"c\": \"FF0810\"}]}");
Ich glaube es geht auch mittels p(String) oder pp(String) (nutze ich aber nicht und müsste ich selber erst nachschlagen)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Hallo,

nach kurzem Test sollte es klappen die einfachen Hochkomma durch qq() zu ersetzen:

Zitatfhem(qq(set mqtt publish awtrix_TC001/custom/PV {"icon": "87","lifetime":"10","duration":"7","text": [{"t": "$a ","c":"FFFFFF"},{"t": "Sepp","c": "FF0810"}]}));

Gruß Thomas

Chris_XXX

Sehr cool! Danke euch. Funktioniert 1a