Telegram

Позволяет работать с telegram api, обеспечивая интерактивную обработку комманд от клиентов либо использовать событийное оповещение. Система не имеет ограничение на количество ботов, один entity - один бот.

Настройка

  • Token

Команды:

  • произвольный набор

Атрибуты

  • произвольный набор

Действия

В системе зарезервированно две команды:

  • /start - подписаться на уведомления
  • /quit - отписаться от уведомлений

Action (действие) - должно наименоваться в нижнем регистре, без знаков “/”. Кастомная команда в системе автоматически добавится в список доступных команд раздела /help. Вызов кастомной команды с клиента следует производить в верхнем регистре /ACTION -> /action

javascript свойства


Новое сообщение

создает объект сообщения

msg = notifr.newMessage();
msg.entity_id = 'telegram.name';
msg.attributes = {
  'body': 'some text msg',
  'chat_id': 123456,
  'keys': ['foo', 'bar'],
  'photo_uri': ['foo', 'bar'],
  'photo_path': ['foo', 'bar'],
  'file_path': ['foo', 'bar'],
  'file_uri': ['foo', 'bar']
};

значение описание
newMessage() метод
msg type: Object (Message)

attributes:

значение описание
body Type: string, тело сообщения
chat_id Type: int64, id пользователя
keys Type: []string, клавиатура
photo_uri Type: []string, изображение
photo_path Type: []string, изображение
file_path Type: []string, файл
file_uri Type: []string, файл

функция telegramAction

telegramAction = (entityId, actionName, args)->
значение описание
entityId type: string, id сущности отправляющего сообщение
actionName type: string, название действия, без символа ‘/’ в верхнем регистре
args attributes

пример кода

# telegram
# ##################################
telegramSendReport =->
  entities = ['device.l3n1','device.l3n2','device.l3n3','device.l3n4']
  for entityId, i in entities
    entity = GetEntity(entityId)
    attr = EntityGetAttributes(entityId)
    sendMsg(format(entityId, entity.state.name, attr))
  
telegramAction = (entityId, actionName)->
switch actionName
    when 'CHECK' then telegramSendReport()

sendMsg =(body)->
  msg = notifr.newMessage();
  msg.entity_id = 'telegram.testbot';
  msg.attributes = {
    'body': body
  };
  notifr.send(msg);