Здравствуйте. Помогите написать скрипт отправки сообщения в Telegram. Есть скрипт вывода текста о причине запуска, как продублировать то же самое в Telegram?
begin
if Sender is TM_Text then // проверяем, что Sender это текст
with Sender as TM_Text do // приводим Sender к типу "TM_Text"
case AsInt of
128 : Text331.Text := 'Ручной';
129 : Text331.Text := 'Автоматический';
130 : Text331.Text := 'Дистанц.RS485';
end;
end.
Здравствуйте.
1. Предварительно нужно настроить параметры отправки Telegram-сообщений, подробнее см. в разделе "Настройка Telegram (https://simple-scada.com/help/manual/telegramset.html)".
2. Для отправки Telegram-сообщения нужно использовать процедуру "SendTelegram (https://simple-scada.com/help/script/sendtelegram.html)".
3. Если требуется отправить Telegram сообщение группе пользователей (https://simple-scada.com/help/manual/newusergroup.html), то можно использовать метод SendTelegram для группы (https://simple-scada.com/help/script/sendtelegramgroup.html).
4. Примеры скриптов для отправки Telegram-сообщений можно найти здесь (https://simple-scada.com/help/script/sendtelegram.html) и здесь (https://simple-scada.com/help/script/sendmess.html).
К примеру, можно создать скрипт с типом события "Изменились переменные (https://simple-scada.com/help/script/changemulvar.html)", добавить в список скрипта переменные, по которым должны отправляться оповещения и написать следующий код:
begin
// пропускаем первое изменение переменной, чтобы скрипт не выполнялся при перезапусках проекта
if not IsFirstChange then
// при необходимости добавляем в сообщение нужную информацию, например имя или описание переменной
case Variable.AsInt of
128 : SendTelegram ('Активирован ручной режим ' + Variable.Description);
129 : SendTelegram ('Активирован автоматический режим ' + Variable.Description);
130 : SendTelegram ('Активирован дистанционный режим RS-485' + Variable.Description);
end;
end.
Данный скрипт будет отправлять сообщения в Telegram при изменении переменных, добавленных в список скрипта. Первое изменение переменных будет пропущено, чтобы сообщения не отправлялись при перезапусках проекта.
Также комментарий по приведенному Вами коду скрипта: рекомендуем использовать универсальные скрипты (https://simple-scada.com/help/script/script-types.html), тогда не нужно будет писать отдельный скрипт для каждого объекта. Исправленный вариант скрипта:
begin
if Sender is TM_Text then // проверяем, что Sender это текст
with Sender as TM_Text do // приводим Sender к типу "TM_Text"
case AsInt of
128 : Text := 'Ручной';
129 : Text := 'Автоматический';
130 : Text := 'Дистанц.RS485';
end;
end.
Данный скрипт можно назначить всем объектам, у которых текст должен меняться по таким условиям.
Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипт, который нужно проверить.
Огромное Вам спасибо, очень помогли.
Есть один момент если я убираю данную строку то все работает нормально
// пропускаем первое изменение переменной, чтобы скрипт не выполнялся при перезапусках проекта
if not IsFirstChange then
Если снова ее прописываю то сообщения перестают отправляться, в чем может быть причина?