Telegram-Binding - Problem mit multipler Antwort über Bot

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
TheNero
Beiträge: 2
Registriert: 14. Mai 2020 10:30
Answers: 0

Telegram-Binding - Problem mit multipler Antwort über Bot

Beitrag von TheNero »

Guten Tag openHABforum,

ich bin neu in der Community und habe bei einem meiner rules ein Problem. Ich versuche über Telegram wie in der Telegram Binding beschreibung erklärt eine aktion über multiple Antworten auszulösen. In meinem Fall das ausschalten der Heizung beim verlassen des Hauses.

Die Beschreibung auf der Telegram Binding Website sieht wie folgt aus:

Bild

Mein Script/Mein Rule und mein Item sehen wie folgt aus (habe ein paar Daten aus Datensicherheit mit XXXXXXXX ausgetauscht):

ITEM:

Code: Alles auswählen

String Heater_Reply
"Heater Reply"
{channel="telegram:telegramBot:XXXXXXXXXX:Heater_Reply"}
RULE

Code: Alles auswählen

rule "Send telegram with question"
when
    Item gWhos_Home changed from ON to OFF
then
    if( gHeater.state == ON ) { 
    val telegramAction = getActions("telegram","telegram:telegramBot:XXXXXXXXXX")
    telegramAction.sendTelegramQuery("Niemand ist daheim, aber die Heizugn ist noch an an! Soll ich diese ausschalten", "Heater_Reply", "ja", "nein")
    }
end


rule "Reply handler for Heater"
when
    Item TelegramReplyId received update Heater_Reply
then
    val telegramAction = getActions("telegram","telegram:telegramBot:XXXXXXXXXX")

    if (telegramMessage.state.toString == "ja")
    {
        gHeater.sendCommand(OFF)
        telegramAction.sendTelegramAnswer(TelegramReplyId.state.toString, "Ok, Heizungen sind nun *aus*.")
    }
    else
    {
        telegramAction.sendTelegramAnswer(TelegramReplyId.state.toString, "Ok, ich lasse sie *an*.")
    }
end

Nun habe ich das Problem, das nach der Auswahl in Telegram gar nichts passiert, unabhängig davon ob ich Ja oder Nein auswähle.

Ich würde mich sehr über eure Hilfe freuen!

Viele Grüße TheNero

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Telegram-Binding - Problem mit multipler Antwort über Bot

Beitrag von udo1toni »

Hast Du denn dieses Item:

Code: Alles auswählen

String telegramMessage "Telegram Message" { channel = "telegram:telegramBot:2b155b22:lastMessageText" }
auch angelegt? Das ist zwar nicht explizit bei dem Codebeispiel aufgeführt, dafür aber beim vorangehenden Codebeispiel, und noch wichtiger, dieses Item wird im Code verwendet...

Die Idee der ReplyId ist, dass man mehrere Rules anlegen kann, die sich um Antworten auf Telegram Messages kümmern können. Damit die Zuordung eindeutig ist, gibt es die ReplyId
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
poetos
Beiträge: 11
Registriert: 3. Aug 2020 20:58
Answers: 0

Re: Telegram-Binding - Problem mit multipler Antwort über Bot

Beitrag von poetos »

Hallo TheNero,
ist doch fast richtig, du hast in der ersten Rule "Heater_Reply" als ReplayID angegeben.
Dann muss in der zweiten Rule stehen:
Item TelegramBotReplyId received update Heater_Reply
(t- kleingeschrieben?) TelegramBotReplyId kann bei dir auch etwas anders heißen - siehe Item.
Gruß poetos
openHab 2.5.9, Raspberry Pi 3 Model B, Shelly, Broadlink, Telegram, Samsung TV, Bosch Indego

Antworten