TelegramBot mit ChatID + Topic

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Oekel
Beiträge: 142
Registriert: 28. Aug 2021 10:34
Answers: 0

TelegramBot mit ChatID + Topic

Beitrag von Oekel »

Moin,

ich habe für diverse Informationen meines Hauses verschiedene TelegramGruppen, in denen jeweils der erstellte Bot Teilnehmer ist und über das Addon "telegram_with_chatID" fleißig Informationen preisgibt.

Nun strauchel ich bereits beim erstellen einer neuen Gruppe jedess Mal über die Tatsache, dass man die benötigte GruppenID nicht "einfach" auslesen kann, sondern ernst (z.B.) den @GetIDBot hinzufügen muss, um zuverlässig an diese Info zu kommen.

Soweit, so gut. Nun spielt man etwas zu viel und wandelt seine Gruppe ausversehen in eine "supergroup" (Was Vorteile für Mitgliedsgrößen >200 bieten soll und diverse andere "tolle" features freischaltet).
Es gibt jedenfalls keinen weg von einer supergruppe zurück zu einer normalen Gruppe und es ändert sich auch die ID :evil:

Und da wir nun schon mal eh hier gefangen sind, frage ich mich ob man die #Topic-Funktion für unseren Bot aus OH irgendwie nutzen kann?
Im Browser lautet das Url pattern wie folgt: https://web.telegram.org/a/#-XXXXXXXXXXXXX_1
X = unsere chatid (wesentlich länger bei supergroup als eine id aus normalen groups
_1 = ist das #GeneralTopic
_12 = war zum Bsp. das erste Testtopich, dass ich erstellt habe
_15 = das zweite (also keine Logik)

Habe mal folgende Schnelle Abwandlung probiert:

Code: Alles auswählen

uid: telegram_with_chatID_topicID
tags:
  - marketplace:131112
props:
  parameters: []
  parameterGroups: []
timestamp: Apr 4, 2024, 1:19:14 PM
component: BlockLibrary
config:
  name: Telegram with ChatID+TopicID
slots:
  blocks:
    - component: BlockType
      config:
        args0:
          - name: MESSAGE
            type: input_value
          - name: BOT
            type: input_value
          - name: CHAT_ID
            type: input_value
          - name: TOPIC_ID
            type: input_value
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: true
        lastDummyAlign0: right
        message0: send on Telegram %1 from bot %2 with chat id %3 & topic %4
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: message
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegram({{input:CHAT_ID}}_{{input:TOPIC_ID}}, {{input:MESSAGE}});
        toolbox:
          - component: PresetInput
            config:
              fields:
                TEXT: What's up?
              name: MESSAGE
              shadow: true
              type: text
          - component: PresetInput
            config:
              name: BOT
              shadow: true
              type: oh_thing
          - component: PresetInput
            config:
              fields:
                NUM: 123
              name: CHAT_ID
              shadow: true
              type: math_number
          - component: PresetInput
            config:
              fields:
                NUM: 45
              name: TOPIC_ID
              shadow: true
              type: math_number
  utilities:
    - component: UtilityJavaType
      config:
        javaClass: org.openhab.core.model.script.actions.Things
        name: things
Doch bekomme eine
[WARN ] [gram.internal.action.TelegramActions] - Failed to send telegram message: Bad Request: chat not found
Obwohl folgender Artikel diese Änderung nahe legt: https://medium.com/@rezvovvad/send-noti ... 570b7ab929

Ich versuche gleich mal ein Ticket für das Binding zu öffnen, da ich denke dass man mit wenig Aufwand diese Erweitung hinzufügen können sollte.
https://community.openhab.org/t/new-tel ... /54806/420

LG

Antworten