Telegram Actions (with Chat ID parameters)

logo

This is the same block library as the original block library from Yannick, just with the chatID parameters added.

Blocks

Telegram1

Telegram2

Changelog

Version 0.1

  • initial release

Resources




uid: telegram_with_chatID
tags: []
props:
  parameters: []
  parameterGroups: []
component: BlockLibrary
config:
  name: Telegram with ChatID
slots:
  blocks:
    - component: BlockType
      config:
        args0:
          - name: MESSAGE
            type: input_value
          - name: BOT
            type: input_value
          - name: CHAT_ID
            type: input_value
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: true
        lastDummyAlign0: right
        message0: send on Telegram %1 from bot %2 with chat id %3
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: message
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegram({{input:CHAT_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: BlockType
      config:
        args0:
          - align: right
            name: ATTACHMENT_TYPE
            options:
              - - photo
                - Photo
              - - animation
                - Animation
              - - video
                - Video
            type: field_dropdown
          - align: right
            name: URL
            type: input_value
          - align: right
            name: CAPTION
            type: input_value
          - align: right
            name: BOT
            type: input_value
          - align: right
            name: CHAT_ID
            type: input_value
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: false
        lastDummyAlign0: right
        lastDummyAlignRight0: true
        message0: send %1 on Telegram %2 with caption %3 from bot %4 with chat id %5
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: message_attachment
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegram({{input:CHAT_ID}}, {{field:ATTACHMENT_TYPE}}({{input:URL}}, {{input:CAPTION}}));
        toolbox:
          - component: PresetInput
            config:
              fields:
                TEXT: URL or filename
              name: URL
              shadow: true
              type: text
          - component: PresetInput
            config:
              fields:
                TEXT: caption
              name: CAPTION
              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: BlockType
      config:
        args0:
          - align: right
            name: URL
            type: input_value
          - align: right
            name: USERNAME
            type: input_value
          - align: right
            name: PASSWORD
            type: input_value
          - align: right
            name: CAPTION
            type: input_value
          - align: right
            name: BOT
            type: input_value
          - align: right
            name: CHAT_ID
            type: input_value
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: false
        lastDummyAlign0: right
        lastDummyAlignRight0: true
        message0: send photo on Telegram %1 username %2 password %3 with caption %4 from bot %5 with chat id %6
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: message_attachment_photo_with_creds
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegramPhoto({{input:CHAT_ID}}, {{input:URL}}, {{input:CAPTION}}, {{input:USERNAME}}, {{input:PASSWORD}});
        toolbox:
          - component: PresetInput
            config:
              fields:
                TEXT: URL or filename
              name: URL
              shadow: true
              type: text
          - component: PresetInput
            config:
              fields:
                TEXT: caption
              name: CAPTION
              shadow: true
              type: text
          - component: PresetInput
            config:
              fields:
                TEXT: user
              name: USERNAME
              shadow: true
              type: text
          - component: PresetInput
            config:
              fields:
                TEXT: pass
              name: PASSWORD
              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: Separator
      config:
        gap: 48
    - component: BlockType
      config:
        args0:
          - align: right
            name: MESSAGE
            type: input_value
          - align: right
            name: BOT
            type: input_value
          - align: right
            name: REPLY_ID
            type: input_value
          - align: right
            name: CHAT_ID
            type: input_value
          - align: right
            name: BUTTONS
            type: field_input
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: false
        lastDummyAlign0: right
        lastDummyAlignRight0: true
        message0: ask on Telegram %1 from bot %2 use reply id %3 with chat id %4 with buttons %5
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: query
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegramQuery({{input:CHAT_ID}}, {{input:MESSAGE}}, {{input:REPLY_ID}}, {{field:BUTTONS}});
        toolbox:
          - component: PresetInput
            config:
              fields:
                TEXT: Turn off the lights?
              name: MESSAGE
              shadow: true
              type: text
          - component: PresetField
            config:
              name: BUTTONS
              value: "'Yes', 'No'"
          - component: PresetInput
            config:
              fields:
                TEXT: replyId
              name: REPLY_ID
              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: BlockType
      config:
        args0:
          - align: right
            name: MESSAGE
            type: input_value
          - align: right
            name: REPLY_ID
            type: input_value
          - align: right
            name: BOT
            type: input_value
          - align: right
            name: CHAT_ID
            type: input_value
        colour: "#2ea5d8"
        helpUrl: ""
        inputsInline: false
        lastDummyAlign0: right
        lastDummyAlign1: right
        lastDummyAlignRight0: true
        message0: reply on Telegram %1 to reply id %2 from bot %3 with chat id %4
        nextStatement: ""
        previousStatement: ""
        tooltip: ""
        type: answer
      slots:
        code:
          - component: BlockCodeTemplate
            config:
              template: >
                {{utility:things}}.getActions('telegram', {{input:BOT}}).sendTelegramAnswer({{input:CHAT_ID}}, {{input:REPLY_ID}}, {{input:MESSAGE}});
        toolbox:
          - component: PresetInput
            config:
              fields:
                TEXT: Ok!
              name: MESSAGE
              shadow: true
              type: text
          - component: PresetInput
            config:
              fields:
                TEXT: replyId
              name: REPLY_ID
              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
  utilities:
    - component: UtilityJavaType
      config:
        javaClass: org.openhab.core.model.script.actions.Things
        name: things
4 Likes

Do you want to include the chat id’s in the existing telegram library at some point?
I think it doesn’t make sense to maintain two of them in parallel.

That would make sense, the existing library is from @ysc, if he agree with it i will remove mine.

Would totally make sense, since one would have to add several things otherwise for different chats.
And from what i have seen in the logs, the binding complains with some warnings when different things/bots with the same api key are online in parallel.

Maybe the blocks could use the chat id as an optional parameter at a later point and send to all configured chat ids when none is specified.