Hallo,
ich verwende den Telegram-Messenger um mir von fhem sowohl einige Statusinformationen zu übermitteln, als auch Befehle in fhem auszuführen.
Das funktioniert soweit ganz gut.
"Problem" ist jetzt nur, dass die Favoriten in telegramm so angezeigt werden, wie ich die Befehle definiert habe, also z.B.:
set MySipClient call **2 30 -..#9;
set RolladenWohnzimmer Auf;
set RolladenWohnzimmer up 5;
set RolladenWohnzimmer pct 65;
set RolladenWohnzimmer down 5;
usw...
Während das beim Rolladen noch einigermassen lesbar ist, würde ich die anderen Befehle gerne abkürzen und durch z.B.
HaustuereAuf
ersetzen...
aber irgendwie bekomme ich das mit dem cmdalias nicht hin:
define HaustuereAuf cmdalias set MySipClient call **2 30 -..#9 AS set MySipClient call **2 30 -..#9
bringt den Fehler
HaustuereAuf: Bad regexp in MySipClient call **2 30 -..#9: Nested quantifiers in regex; marked by <-- HERE in m/^MySipClient call ** <-- HERE 2 30 -..#9$/ at ./FHEM/98_cmdalias.pm line 37.
wie muss ich den Befehl umsetzen?
set MySipClient
ist ja der Anfang des Kommandos für das Device MySipClient
call
der Befehl für das Device
**2 30 -..#9
sind die Parameter für "call"
laut cmdref heißt es z.B.:
define s1 cmdalias shutdown update AS save;;shutdown
oder
define s2 cmdalias set lamp .* AS { Log 1, "$EVENT";; fhem("set $EVENT") }
würde dann hier das .* meinem call **2 30 -..#9 entsprechen?
also quasi
define HaustuereAuf cmdalias set MySipClient .* AS { Log 1, "$EVENT";; fhem("set $EVENT") }
Bin bis hierhin gekoimmen...
define c_HaustuereAuf cmdalias HaustuereAuf AS { fhem("set MySipClient call **2 30 -..#9;;");; }
# ALIAS haustuereauf
# DEF HaustuereAuf AS { fhem("set MySipClient call **2 30 -..#9;"); }
# FUUID 66915624-f33f-a625-07ba-6c9e498045959401
# NAME c_HaustuereAuf
# NEWCMD { fhem("set MySipClient call **2 30 -..#9;"); }
# NR 240
# PARAM
# STATE defined
# TYPE cmdalias
#
setstate c_HaustuereAuf defined
Aber leider geht das auch nicht :-(
Was genau funktioniert denn nicht?
Ich wuerde die "Klammer" weglassen:
define c_HaustuereAuf cmdalias HaustuereAuf AS set MySipClient call **2 30 -..#9
Hallo,
ich habs jetzt so gemacht:
define c_HaustuereAuf cmdalias HaustuereAuf AS set MySipClient call **2 10 -.#9
attr c_HaustuereAuf room Büro,System
# ALIAS haustuereauf
# DEF HaustuereAuf AS set MySipClient call **2 10 -.#9
# FUUID 66917b42-f33f-a625-3f0f-1b18d250de406d8f
# NAME c_HaustuereAuf
# NEWCMD set MySipClient call **2 10 -.#9
# NR 241
# PARAM
# STATE defined
# TYPE cmdalias
#
setstate c_HaustuereAuf defined
Das geht...
Danach bin ich aber drauf gekommen, dass ich beim telegram bot auch die Favoriten anders schreiben kann:
define teleBot TelegramBot
...
attr teleBot favorites /-[Haustüre Auf]=HaustuereAuf;;\
/-[Rolladen Wohnzimmer Auf]=set RolladenWohnzimmer Auf;;\
/-[Rolladen Wohnzimmer Auf 5]=set RolladenWohnzimmer up 5;;\
/-[Rolladen Wohnzimmer 65]=set RolladenWohnzimmer pct 65;;\
/-[Rolladen Wohnzimmer Runter 5]=set RolladenWohnzimmer down 5;;\
/-[Rolladen Wohnzimmer Zu]=set RolladenWohnzimmer Zu;;\
/-[Alle Rolladen Auf]=set AlleRolladen Auf;;\
/-[Alle Rolladen Zu]=set AlleRolladen Zu;;\
/-[Rolladen Buero Auf]=set RolladenBuero Auf;;\
/-[Rolladen Buero Zu]=set RolladenBuero Zu;;\
/-[Rolladen Buero 60]=set RolladenBuero pct 60;;\
/-[Temperatur Bad 22]=set HzgSetBad desired-temp 22;;\
/-[Temperatur Bad 29]=set HzgSetBad desired-temp 29
...