OpenHAB Probleme beim Einrichten des Telegram Bindings

  • Hallo,
    ich mache mal einen neuen Thread auf, damit der Ursprungsthread nicht noch unübersichtlicher wird.

    Ich versuche gerade nach diesem Thread OpenHAB-Einstieg das Telegram binding zum laufen zu bringen.

    Das Grundlegende: ich verwende Openhabian 2.5.3 auf einem Raspberry Pi3 das ganze ist frisch über Openhabian-config auf den neuesten Stand gebracht worden und neu gestartet worden.
    binding-telegram - 2.5.3 ist installiert.

    telegram.things Chat ID und Token habe ich natürlich geändert

    Code
    Thing telegram:telegramBot:PatricksHAB_bot  "Telegram Bot" @ "System" [ chatIds="123456789", botToken="meinTOKEN12345", parseMode="Markdown" ]


    telegram.items

    Code
    String Telegram_Last_Text { channel="telegram:telegramBot:PatricksHAB_bot:lastMessageText" }
    String Telegram_Last_Date { channel="telegram:telegramBot:PatricksHAB_bot:lastMessageDate" }
    String Telegram_Last_Name { channel="telegram:telegramBot:PatricksHAB_bot:lastMessageName" }
    String Telegram_Last_UserName { channel="telegram:telegramBot:PatricksHAB_bot:lastMessageUsername" }
    String Telegram_Last_ReplyID { channel="telegram:telegramBot:PatricksHAB_bot:replyId" }

    zum Testen diese Rule. Am Text erkennt der regelmäßige Leser meiner zahlreichen Posts der letzten Tage, was ich vorhabe ;)

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:PatricksHAB_bot")
    rule "test"
    when Item Steckdose_1 received command ON
    then sendTelegram("telegramBot", "Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end

    Jetzt kommt folgende Fehlermeldung

    Was habe ich da jetzt falsch gemacht??


    Vielen Dank schon einmal im vorraus
    Patrick

  • Das war's nicht

    ich habe jetzt noch eine andere Fehlermeldung endeckt:


    Code
    2020-04-17 17:24:22.815 [INFO ] [st.core.internal.thing.ThingResource] - Received HTTP PUT request for update configuration at 'things/telegram:telegramBot:PatricksHAB_bot/config' for an unmanaged thing 'telegram:telegramBot:PatricksHAB_bot'.
  • Ups - ich hatte das für die Rule verkehrt herum gelesen

    Neue Rule

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:1d1d5add")
    rule "test"
    when Item Steckdose_1 received command ON
    telegramAction.sendTelegram("Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end


    Habe jetzt auch die ID drangehängt

    jetzt gibt es eine Fehlermeldung, daß die Rule falsch ist.
    ich glaube, es wird....

    Code
    2020-04-17 17:36:52.679 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'test.rules' has errors, therefore ignoring it: [4,1]: missing 'then' at 'telegramAction'
  • Fehler in der Rule ist wohl weg jetzt heißt es :

    Code
    2020-04-17 17:40:59.354 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test': 'sendTelegram' is not a member of 'org.eclipse.smarthome.core.thing.binding.ThingActions'; line 4, column 6, length 78
  • Code
    val telegramAction = getActions("telegram","telegram:telegramBot:1d1d5add")
    rule "test"
    when Item Steckdose_1 received command ON
    telegramAction.sendTelegram("Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end


    Habe jetzt auch die ID drangehängt

    jetzt gibt es eine Fehlermeldung, daß die Rule falsch ist.
    ich glaube, es wird....


    Kein then:

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:1d1d5add")
    rule "test"
    when 
        Item Steckdose_1 received command ON
    then
        telegramAction.sendTelegram("Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end
  • Ich habe ei mir auf der Synology Openhab2 installiert und "action-telegram - 1.14.0" installiert, den bot habe ich wie folgt in der telegram.cfg definiert
    Damit kann ich ohne Probleme Nachrichten senden. Vielleicht hilfts.
    Die Rule sendet mir nur die Signalstärke der WiFI Verbindung eines Shelly. Ist aber nur Spielerei


    Code
    bots=bot1
    bot1.chatId=<CHATID>
    bot1.token=<TELEGRAMTOKEN>
    bot1.parseMode=Markdown
    Code
    rule "send WiFi Status"
    
    
    when
    	Item WiFiCheck changed
    then
    	sendTelegram("bot1", "Schlafzimmer: Signalstärke %s", WiFiMASTERBEDROOM.state)
    end
  • botUsername fehlt bei dir, den findest/vergibst du unter .things Datei.

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:1d1d5add")
    rule "test"
    when 
        Item Steckdose_1 received command ON
    then
        telegramAction.sendTelegram("botUsername", "Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end
    • Rechtschreibfehler sind nicht zufällig, richtig angeordnet ergeben sie eine Formel mit der man Milch zu Bier machen kann.

  • Auch das Einfügen des BotUsernames hilft nichts.
    Ich habe den Verdacht, daß die Einstellungen über die PaperUI und die Files sich irgendwo beißen.

    unter /index.html#/configuration/things/edit/telegram:telegramBot:PatricksHAB_bot

    Bekomme ich keine ID angezeigt, die ich hier: getActions("telegram","telegram:telegramBot:1d1d5add") einfügen könnte.


    In den Einstellungen für das Binding kann ich nichts machen:


    und bei den Channels gibt es eine Fehlermeldung.

  • wenn per things datei was konfiguriert ist, dann brauchst du bei paperui gar nichts machen.
    wenn du per paperui ein telegram thing angelegt hast und eins per thing datei dann lösche das was du in paperui angelegt hast.
    ein korrekter thing eintrag fürs 2.5er telegram binding unter oh 2.5 sieht so aus (daten natürlich anpassen):
    Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="DeinBotname", chatIds="-385027958", botToken="3656565650694:AAFPV9bhtzutzuztU8s9bobRk3-EjHkylH1vg", parseMode="Markdown"]
    telegram action ist eol....also nimm das NICHT.
    openhab MUSS nach dem editieren an der bot config/items etc neugestartet werden um fehler zu vermeiden.

  • Hmmm, geht immer noch nicht.

    telegram.things

    Code
    Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="OpenHAB", chatIds="-894889300", botToken="123456789:z4xjLRuG0-QgviMd8DJPQETYgl3xg", parseMode="Markdown"]


    der botUsername ist der, der in der Telegram-App auf dem Handy erscheint?

    telegram.items

    Code
    String Telegram_Last_Text { channel="telegram:telegramBot:bot:lastMessageText" }
    String Telegram_Last_Date { channel="telegram:telegramBot:bot:lastMessageDate" }
    String Telegram_Last_Name { channel="telegram:telegramBot:bot:lastMessageName" }
    String Telegram_Last_UserName { channel="telegram:telegramBot:bot:lastMessageUsername" }
    String Telegram_Last_ReplyID { channel="telegram:telegramBot:bot:replyId" }

    test.rules

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:OpenHAB")
    rule "test"
    when Item Steckdose_1 received command ON
    then telegramAction.sendTelegram("OpenHAB", "Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end

    Meine Güte, ich bin einfach zu blöd dafür

    Code
    2020-04-18 20:08:41.186 [ome.event.ItemCommandEvent] - Item 'Steckdose_1' received command ON
    
    
    2020-04-18 20:08:41.189 [nt.ItemStatePredictedEvent] - Steckdose_1 predicted to become ON
    
    
    ==> /var/[definition='1','0']log[/definition]/openhab2/openhab.[definition='1','0']log[/definition] <==
    
    
    2020-04-18 20:08:41.203 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test': Instance is not a TelegramActions class.
  • Hallo Patrick
    ich habe bei mir jetzt auch das Telegram-Binding umgesetzt

    Bei der Regel hatte ich anfangs auch die Fehlermeldung und habe dann einmal die Regel umgestellt. Ich nehme einmal Deine Regel und zeige Dir was ich gemacht habe

    Code
    rule "test"
    
    
    when 
        Item Steckdose_1 received command ON
    then
        val telegramAction = getActions("telegram","telegram:telegramBot:OpenHAB")
        telegramAction.sendTelegram("Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end


    Was ich noch nicht rausgefunden habe ist wie adressiere ich einen definierten Chat, aber mit der obigen Regel versende ich Nachrichten

    Einmal editiert, zuletzt von Pilot188 (19. April 2020 um 14:55) aus folgendem Grund: Fehler korrigiert

  • Die chat id ist diE, die früher in die telegram.cfg eingetragen wurde?


    Aber im wiki steht

    val telegramAction = getActions("telegram","telegram:telegramBot:<uid>")where uid is the Thing UID of the Telegram thing (not the chat id!).

    Wo kriege ich nun aber wieder die Thing uid her?


    Ich blicke überhaupt n7cht durch.

  • Jetzt geht es.

    Aber so ausführlich das im Wiki vielleicht gemacht / gemeint ist, so wenig verständlich ist es.

    vielleicht sucht hier ja noch einmal jeamand anderes

    meine
    telegram.things

    Code
    Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="OpenHAB", chatIds="-123456789", botToken="123456789:ABCDEFGHIJ12345", parseMode="Markdown"]

    Vor der Chat Id steht noch ein - !!

    wie man Chat ID und den Token bekommt, ist im Wiki beschrieben.


    telegram.items

    Code
    String Telegram_Last_Text { channel="telegram:telegramBot:bot:lastMessageText" }
    String Telegram_Last_Date { channel="telegram:telegramBot:bot:lastMessageDate" }
    String Telegram_Last_Name { channel="telegram:telegramBot:bot:lastMessageName" }
    String Telegram_Last_UserName { channel="telegram:telegramBot:bot:lastMessageUsername" }
    String Telegram_Last_ReplyID { channel="telegram:telegramBot:bot:replyId" }


    und jetzt endlich die funktionierende rule.

    Code
    val telegramAction = getActions("telegram","telegram:telegramBot:bot")
    rule "test"
    when Item Steckdose_1 received command ON
    then telegramAction.sendTelegram(123456L, "Hallo, die Aufnahme wurde gerade abgeschlossen.")
    end


    Im Gegensatz zu meiner ersten rule steht nicht mehr
    then telegramAction.sendTelegram("telegramBot"......
    Sondern die ChatId mit angehängtem L und das ganze NICHT in Anführungszeichen.

    Mag ja sein, daß man als geübter OpenHABler das Wiki versteht. Ich finde es vebesserungswürdig.


    Vielen Dank Euch allen für eure Geduld!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!