Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Отправка сообщений с Fibaro HC2 в Telegram

Отправка сообщений с Fibaro HC2 в Telegram 06 Июнь 2023 11:46 #31105

  • Comrad
  • Comrad аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 26
  • Спасибо получено: 6
  • Репутация: 1
1. Из этой темы делаем первоначальные шаги чтобы узнать Ваш токен и номер чата (пункты 1-7):
www.z-wave.ru/forum/vera-veralite/7183-uvedomleniya-v-telegram.html

2. Создаем в Fibaro переменную (Панели -- Панель переменных) с именем Telegram и значением 0

3. Создаем новую сцену Telegram Send в которой прописываем следующий код LUA
--[[
%% properties
%% globals
Telegram
--]]
local debug = true;
local token = "ВАШ токен сюда пишем"
local chat_id = "ВАШ номер ID чата пишем сюда"
local url = "https://api.telegram.org/bot"..token.."/sendMessage?chat_id="..chat_id.."&text="
 
local function log(str) if debug then fibaro:debug(str); end; end
local function errorlog(str) fibaro:debug("<font color='red'>"..str.."</font>"); end
 
--Prevents the scene from running again
if (tonumber(fibaro:getGlobalValue("Telegram")) == 0) then
  fibaro:abort();
end
 
local selfhttp = net.HTTPClient({timeout=2000})
 
local msg = fibaro:getGlobalValue("Telegram")
log(msg);
 
url = url .. msg
 
selfhttp:request(url, {
  options={
    headers = selfhttp.controlHeaders,
    data = requestBody,
    method = 'GET',
    timeout = 5000
  },
  success = function(status)
    local result = json.decode(status.data);
    if result.ok == true then
      log("successful");
    else
      errorlog("failed");
      log(status.data);
    end
  end,
  error = function(error)
    errorlog("ERROR")
    log(error)
  end
})
 
--Reset the global Telegram variable to 0
fibaro:setGlobal("Telegram", "0")

4. Чтобы использовать эту сцену в своих сценах создаем нужную Вам сцену (например сработал какой то датчик), в ней надо указать изменение переменой Telegram на свое сообщение и вызвать сцену Telegram Send. Например так:
--[[
%% properties
14 value
%% weather
%% events
%% globals
--]]
 
local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(14, "value")) > 0 )
or
startSource["type"] == "other"
)
then
	fibaro:setGlobal("Telegram", "Сработал датчик протечки");
	fibaro:startScene(10);
end
Где fibaro:startScene(10); номер 10 это номер сцены Telegram Send. А ( tonumber(fibaro:getValue(14, "value")) > 0 ) - 14 это номер сработавшего датчика.
Спасибо сказали: Dmitry201672

Отправка сообщений с Fibaro HC2 в Telegram 05 Окт 2023 10:57 #31226

  • Dmitry201672
  • Dmitry201672 аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Здравствуйте, очень полезный скрипт!)
А есть что нибудь готовое, для отправки таким же путем скриншотов с камер в Telegram? Копал, пробовал, всё никак не получается. :(
Время создания страницы: 0.224 секунд