Telegram
To work with the Telegram API and handle interactive commands from clients or use event-based notifications, the system provides the following configuration:
Configuration:
- Token
Commands:
- Custom set of commands
Attributes:
- Custom set of attributes
Actions:
There are two reserved commands in the system:
- /start - Subscribe to notifications
- /quit - Unsubscribe from notifications
Action - It should be named in lowercase, without the “/” sign. A custom command will automatically be added to the list of available commands in the /help section. The custom command should be called in uppercase /ACTION -> /action.
JavaScript Properties:
New Message:
Creates a message object.
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, message body | 
| chat_id | Type: int64, user’s id | 
| keys | Type: []string, keyboard | 
| photo_uri | Type: []string, image | 
| photo_path | Type: []string, image | 
| file_path | Type: []string, file | 
| file_uri | Type: []string, file | 
telegramAction Function:
telegramAction = (entityId, actionName, args)->
| Value | Description | 
|---|---|
| entityId | Type: string, ID of the entity sending the message | 
| actionName | Type: string, name of the action in uppercase, without the ‘/’ character | 
| args | attributes | 
Code Example:
# 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);
Last modified February 5, 2024: Merge pull request #270 from e154/master (7108cb6)