cmdalias um diesen als Favoriten in telegrambot zu verwenden

Begonnen von wowogiengen, 12 Juli 2024, 18:17:36

Vorheriges Thema - Nächstes Thema

wowogiengen

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;;shutdownoder
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 :-(

rudolfkoenig

Was genau funktioniert denn nicht?
Ich wuerde die "Klammer" weglassen:
define c_HaustuereAuf cmdalias HaustuereAuf AS set MySipClient call **2 30 -..#9

wowogiengen

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
...