FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Chris_XXX am 08 August 2024, 13:49:49

Titel: [gelöst] syntax error Fhem set
Beitrag von: Chris_XXX am 08 August 2024, 13:49:49
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
Titel: Aw: syntax error Fhem set
Beitrag von: DeeSPe am 08 August 2024, 13:59:09
Einfach die " innerhalb des set Befehls gegen ' austauschen oder die " maskieren mit \".

Gruß
Dan
Titel: Aw: syntax error Fhem set
Beitrag von: DeeSPe am 08 August 2024, 14:00:57
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
Titel: Aw: syntax error Fhem set
Beitrag von: Chris_XXX am 08 August 2024, 14:35:09
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"}]}');
Titel: Aw: syntax error Fhem set
Beitrag von: MadMax-FHEM am 08 August 2024, 14:46:25
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
Titel: Aw: syntax error Fhem set
Beitrag von: TomLee am 08 August 2024, 14:52:46
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
Titel: Aw: syntax error Fhem set
Beitrag von: Chris_XXX am 08 August 2024, 15:03:45
Sehr cool! Danke euch. Funktioniert 1a