Momentan bastel ich an einem msgDialog Modul.
In der msgDialog_Notify sub wird eine andere sub Aufgerufen mit der Zeile
fhem("msg push \@$recipients $message");
Damit wird mit dem msg Befehl die Antwort gesendet und dieser wendet sich dann an meinen TelegramBot.
TelegramBot lässt es zu Nachrichten im Nachhinein zu verändern.
Um dies zu automatisieren wollte ich ein cmdAlias haben was auf
set myTelegramBot message @<ID> <Nachricht>
reagiert. Ein erster versuch ist
defmod message2queryEditInline cmdalias set .+ message .+ AS {\
Debug("Triggered");;\
}
Nur leider reagiert das cmdAlias nicht auf die Aufrufe die aus meinem Modul kommen.
Wenn ich einen der Befehle
msg @Michael Test
{fhem("msg \@Michael Test")}
ausführe bekomme ich wie gewollt die "Triggered" Meldung im Log.
Woran kann es liegen, dass das cmdAlias beim Aufruf aus dem Modul nicht genutzt wird?
Grüße,
igami
cmdalias funktioniert nur, falls der Befehl ueber AnalyzeCommand aufgerufen wird, was der Normalfall sein sollte. Man kann intern ein set aber theoretisch auch ueber CommandSet oder den direkten Aufruf des SetFns ausloesen, dann greift cmdalias nicht.
Ich wuerde an deiner Stelle mit "attr global verbose 5" weitermachen.
Habe den Fehler schon gefunden . trifft ja nicht auf Zeilenumbrüche zu. Habe es nun auf "set .+ message (.|\n)+ AS" geändert und siehe da, es Funktioniert :)
Magst du das vielleicht noch einbauen, dass . auch auf Zeilenumbrüche zutrifft? Ist dann ja einfach ein s beim regex dran hängen, ich bin mir nur grad nicht sicher an welcher Stelle geprüft wird. Zeile 83 und 87?
Habs eingebaut.