Hallo,
ich möchte eine Dummy über Telegram on oder off schalten:
defmod DU_TEST dummy
attr DU_TEST alias Automatic Test
attr DU_TEST devStateIcon on:general_an@0CFB0C off:general_aus@grey
attr DU_TEST group Services
attr DU_TEST readingList Automatic
attr DU_TEST room Schalter
attr DU_TEST setList Automatic:on,off
attr DU_TEST stateFormat Automatic
attr DU_TEST webCmd Automatic
Auf Kommandozeile funktioniert ein
set DU_Test Automatic on
bzw.
set DU_Test Automatic off
wunderbar.
Nur aus msgDialog heraus nicht.
defmod MD_Schalter_Dialog_M msgDialog {\
"Schalten": {\
"message": [\
"(Automatik Test EIN|Automatik Test AUS) ",\
"(%me%) ",\
"Aktueller Status: Automatik ist <b>[DU_Test:Automatic]</b>"\
],\
"Automatik EIN": {\
"commands": [\
"set DU_Test Automatic on",\
"set $SELF say @$recipient Schalten"\
]\
},\
"Automatik AUS": {\
"commands": [\
"set DU_Test Automatic off",\
"set $SELF say @$recipient Schalten"\
]\
}\
}\
}
Was mache ich falsch ?
Gruß KU
Hallo,
Du bist in Perl, da musst die fhem-Funktion für den set-Befehl nutzen.
Gruß Thomas
Zitat von: TomLee am 03 Mai 2025, 21:20:09Du bist in Perl,
Du siehst offenbar etwas anderes als ich.
Zitat von: TomLee am 03 Mai 2025, 21:20:09da musst die fhem-Funktion für den set-Befehl nutzen.
Nein, muss er nicht.
Geschweifte Klammern kennzeichnen bei msgDialog primär JSON Inhalte, nicht nur perl.
Umgekehrt wird ein Schuh daraus: "Wenn man fhem() in commands verwendet, muss man das in 'geschweifte perl-Klammern' setzen." Aber das ist ja hier nicht der Fall.
Ich geh mal Popcorn holen, ich glaube, das wird lustig...
Hat er recht.
So sollte es in geschweiften tun:
..."commands": [
"{fhem('set DU_Test Automatic on;set $SELF say @$recipient Schalten')}"]},...
Oder Du entfernst die eckigen:
..."commands":
"set DU_Test Automatic on;set $SELF say @$recipient Schalten"},...
Du rufst im Dialogfeld Automatik Test EIN bzw. Automatik Test AUS auf.
Die Kommandos heißen aber Automatik EIN und Automatik AUS
defmod MD_Schalter_Dialog_M msgDialog {\
"Schalten": {\
"message": [\
"(Automatik EIN|Automatik AUS) ",\
"(%me%) ",\
"Aktueller Status: Automatik ist <b>[DU_Test:Automatic]</b>"\
],\
"Automatik EIN": {\
"commands": [\
"set DU_Test Automatic on",\
"set $SELF say @$recipient Schalten"\
]\
},\
"Automatik AUS": {\
"commands": [\
"set DU_Test Automatic off",\
"set $SELF say @$recipient Schalten"\
]\
}\
}\
}
Perfekt, es funktioniert.
Vielen Dank und einen angenehmen Sonntag !