github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/plugins/notify/telegram.md (about)

     1  
     2  ---
     3  title: "Telegram"
     4  linkTitle: "telegram"
     5  date: 2021-10-20
     6  description: >
     7  
     8  ---
     9  
    10  Позволяет работать с telegram api, обеспечивая интерактивную обработку комманд от клиентов либо использовать
    11  событийное оповещение. Система не имеет ограничение на количество ботов, один entity - один бот.
    12  
    13  ### Настройка
    14  * Token
    15  
    16  ### Команды:
    17  * произвольный набор
    18  
    19  ### Атрибуты
    20  * произвольный набор
    21  
    22  ### Действия
    23  
    24  В системе зарезервированно две команды:
    25  
    26  * **/start** - подписаться на уведомления
    27  * **/quit** - отписаться от уведомлений
    28  
    29  **Action** (действие) - должно наименоваться в нижнем регистре, без знаков "/". 
    30  Кастомная команда в системе автоматически добавится в список доступных команд раздела **/help**.
    31  Вызов кастомной команды с клиента следует производить в верхнем регистре **/ACTION** -> **/action**
    32  
    33  
    34  ### javascript свойства
    35  
    36  
    37  ----------------
    38  
    39  ### Новое сообщение
    40  
    41  создает объект сообщения
    42  
    43  ```coffeescript
    44  msg = notifr.newMessage();
    45  msg.entity_id = 'telegram.name';
    46  msg.attributes = {
    47    'body': 'some text msg',
    48    'chat_id': 123456,
    49    'keys': ['foo', 'bar'],
    50    'photo_uri': ['foo', 'bar'],
    51    'photo_path': ['foo', 'bar'],
    52    'file_path': ['foo', 'bar'],
    53    'file_uri': ['foo', 'bar']
    54  };
    55  
    56  ```
    57  |  значение  | описание  |
    58  |-------------|---------|
    59  | newMessage() |    метод   |
    60  | msg |   type: Object (Message)  |
    61  
    62  attributes:
    63  
    64  |  значение  | описание  |
    65  |-------------|---------|
    66  | body |  Type: string,  тело сообщения   |
    67  | chat_id | Type: int64,  id пользователя  |
    68  | keys |  Type: []string, клавиатура   |
    69  | photo_uri |  Type: []string, изображение   |
    70  | photo_path |  Type: []string, изображение   |
    71  | file_path |  Type: []string, файл   |
    72  | file_uri |  Type: []string, файл   |
    73  
    74  ----------------
    75  
    76  ### функция telegramAction
    77  
    78  ```coffeescript
    79  telegramAction = (entityId, actionName, args)->
    80  ```
    81  | значение   | описание               |
    82  |-------------|-------------------|
    83  | entityId    | type: string, id сущности отправляющего сообщение |
    84  | actionName  | type: string, название действия, без символа '/' в верхнем регистре |
    85  | args  | attributes |
    86  
    87  ----------------
    88  
    89  ### пример кода
    90  
    91  ```coffeescript
    92  # telegram
    93  # ##################################
    94  telegramSendReport =->
    95    entities = ['device.l3n1','device.l3n2','device.l3n3','device.l3n4']
    96    for entityId, i in entities
    97      entity = GetEntity(entityId)
    98      attr = EntityGetAttributes(entityId)
    99      sendMsg(format(entityId, entity.state.name, attr))
   100    
   101  telegramAction = (entityId, actionName)->
   102  switch actionName
   103      when 'CHECK' then telegramSendReport()
   104  
   105  sendMsg =(body)->
   106    msg = notifr.newMessage();
   107    msg.entity_id = 'telegram.testbot';
   108    msg.attributes = {
   109      'body': body
   110    };
   111    notifr.send(msg);
   112  ```