將HomeAssistant的LineNotify改為Telegram Bot

Line Notify要在2025年3月停止服務,HomeAssistant(HA)用了那麼久的Line Notify需要轉換替代方案了。

利用ChatGPT搜尋,提供幾個方案,我覺得 Telegram Bot建立是最簡單的,然後再上HA看看整合,發現Telegram Bot已經在其中,於是決定使用這個方案。

https://chatgpt.com/share/678cc7b8-4ccc-8003-8d30-e060af71cc35

參考文章:

https://www.beebag.com.tw/telegram-notify.html

https://greddyblogs.gitlab.io/2019/02/18/telegramBot/#gsc.tab=0

步驟1:建立Telegram Bot

不論是哪個參考文章,都是先在Telegram裡面,找到BotFather。※註明藍勾勾

然後「/newbot」,建立bot。

接著取名,名稱一定要bot結尾。

然後會得到一個API Key,格式是「一串數字:一串英數與-_」

紅框處文字為API Token

依照參考文章1,關閉Group Private。

輸入「/mybots」找到「Group Privacy」按下「Turn Off」,接著Privacy Mode會顯示disabled。

步驟2:取得Chat ID

兩個文章有不同方法,個人使用搜尋「@userinfobot」。※名稱一定要全部對

可以看到有好幾個,一定要一字不差的那個。

進入後輸入/start,不需任何資料,就能取得ID。

紅框處為自己的Client ID。

步驟3:加入自己的BOT

搜尋自己的BOT,也要一字無誤,如果正確,可以順便找到BotFather的對話記錄。

加入自己的BOT後,按下開始。

步驟4:在HA加入Telegram Bot設定

在HA的configuration.yaml中加入以下

telegram_bot:
  - platform: polling
    api_key: "您的_API_KEY"
    allowed_chat_ids:
      - 您的_CHAT_ID

然後再加入

notify:
  - platform: telegram
    name: "telegram_notifier"
    chat_id: 您的_CHAT_ID

※記得修改程式碼的API KEY與CHAT ID。

如果是其他使用python執行Line Notify的修改方案

根據參考文章1內的程式碼

 import requests
            # Telegram Bot Token
            TOKEN = "填入你的Token"

            # 目標 chat_id 
            chat_id = "填入你自己的 Chat ID 或群組 ID"

            # 要發送的訊息內容    
            message = "Hello, this is a test message from my bot!"

            # Telegram API URL
            url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"

            # API 請求參數
            payload = {
                "chat_id": chat_id,
                "text": message
            }

            # 發送請求
            response = requests.post(url, data=payload)