chatBot (vordefinierte Dialoge) für Telegram

Begonnen von der_da, 09 Juni 2016, 10:37:03

Vorheriges Thema - Nächstes Thema

der_da

Hallo Forum

igami hat hier 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?