Hallo Forum
igami (https://forum.fhem.de/index.php?action=profile;u=4106) hat hier (https://forum.fhem.de/index.php?topic=51425.0) eine Lösung präsentiert, wie man mit dem TelegramBot Dialoge mit seiner FHEM-Installation führen kann.,
Ich habe mal seine Beispiele übernommen (Copy & Paste mit nur geringen Änderungen: mein Bot heißt anders und die msgPeerID ist natürlich nicht XXX... ;)
Wenn ich nun meinen telegramBot mit dem <Keyword> anrufe, dann antwortet er leider nur:
Ich kann folgendes für dich tun:
/{my
/heimdall
oder auch:
Ich kann folgendes für dich tun:
/{my
/({my
/heimdall
wenn ich zwei Dialoge definiert habe (habe die ersten beiden übernommen).
Meine Definition (Auszug) sieht eigentlich 100% identisch zu der von hier aus (abgesehen davon, das mein Bot nur "telegram" und nicht "myTelegramBot" heißt).
({my @dialogs = devspec2array(".*_dialog:FILTER=disable!=1");;
my $msg = "Ich kann folgendes für dich tun:\n\n";;
if (@dialogs > 0 and defined($defs{$dialogs[0]})){
foreach (@dialogs){
my $dialog = (split(" ", InternalVal($_, "DEF", undef), 3))[1];;
$msg .= "/".$dialog."\n"if!($dialog =~ /heimdall/i);;
}
}
$msg .= "\n/heimdall\n";;
fhem("set telegram message \@[telegram:msgPeerId] $msg");;
}
),
sleep 1; set .*_dialog initialize
)
Es scheint also irgendwo ein Fehler im Primärdialog zu sein (!?). Ich bin kein Perl-Experte und finde leider nicht die Stelle, an der das Problem liegen könnte. Kann mir jemand auf die Sprünge helfen?