Como configurar um sistema supervisório para enviar mensagens no Telegram
- Vinicius Rodrigues

- 27 de jul. de 2022
- 5 min de leitura
Atualizado: 2 de ago. de 2022
Sistemas supervisórios são cada vez mais comuns no ambiente industrial. Basicamente eles consistem em programas com capacidade de armazenar dados de um processo ou máquina e um banco de dados e também possibilitam a visualização desses dados de forma estrutura e gráfica para facilitar análise de maneira simples.
Com a surgimento da indústria 4.0 as tecnologias continuam evoluindo e se adaptando cada vez mais ao cotidiano das pessoas e isso também se aplica aos sistemas supervisórios que estão cada vez mais integrados as ferramentas de comunicação usadas pelas pessoas.
OBJETIVO
Neste artigo vamos entender como configurar um sistema para enviar notificações por meio do Telegram. No exemplo o sistema supervisório estará monitorando uma variável de temperatura, ao alcançar valores fora de uma faixa pré-configurada um alerta será enviado via Telegram.
Vamos considerar que o valor de temperatura esteja em torno de 25°C e a faixa programada seja de 20°C a 30°C. Se o valor lido ficar abaixo de 25°C ou acima de 30ºC uma mensagem de alerta será enviada.
Passo 1 - Baixando uma máquina virtual para simular um servidor de aplicação
Para criar esta solução vamos precisar usar um máquina virtual que vai simular um servidor de aplicação onde sistema supervisório esta instalado, para isso basta acessar o link abaixo para baixar a máquina virtual e fazer a importação para programa VirtualBox.
Link para baixar o Virtual box: https://www.virtualbox.org/
Depois disso faça o redirecionamento de portas da VM conforme a Imagem abaixo. Isso precisa ser feito para que seja possível acessar a aplicação do supervisório pelo navegador do seu computador.

Após realizar essa configuração inicie a máquina virtual e depois acesse o seguinte endereço no seu navegador de internet. A página do ScadaBR será exibida e será nesse programa supervisório que será configurada a aplicação.

O ScadaBR é um sistema de sistema de supervisão, controle e aquisição de dados open-source muito poderoso que esta rodando no servidor de aplicação da máquina virtual. Para mais informações acesse o site https://www.scadabr.com.br/. Use para login e senha a palavra “admin”.
Passo 2 - Criando BOT no Telegram
Para que o sistema supervisório seja capaz de enviar mensagens via Telegram precisamos criar um BOT na ferramenta. Para isso siga os seguintes etapas:
Entrar na sua conta do Telegram e inicie uma conversa com o usuário @botFather
Clicar no botão START
Entrar com o comando: /newbot
Entrar com o nome do BOT: XXXX
Nome de usuário para o BOT: XXXX_bot - monitorTemperatura_bot
Anotar o token informado pelo @botFather
Inicie chat com o BOT : XXXX_bot
Clique no botão START
Envie uma mensagem simples para seu BOT como “o”
Verifique as interações que ocorreram com o seu BOT, entrando com a seguinte URL a partir de um browser: https://api.telegram.org/botTKTKTKTK/getUpdates (onde TKTKTKTK é o Token recebido do @botFather)

Copie o chat ID da conversa - “xxxxxxxxx”
Enviar uma mensagem através do seu BOT para o chat iniciado: https://api.telegram.org/bot TKTKTKTK/sendMessage?chat_id=CHIDCHID&text=TEXTO (onde TKTKTKTK é o Token recebido do @botFather e CHIDCHID é o id do chat obtido a partir do json)
A mensagem “TEXTO” aparecerá como enviada pelo Robô no chat iniciado anteriormente. Vamos usar uma URL semelhante a essa dentro do ScadaBR para enviar as mensagens de alarme de temperatura.

Passo 3 - Criando a variável de temperatura no ScadaBR
Após a criação do BOT precisamos criar um variável virtual no ScadaBR para simular uma medição de temperatura.
Acesse o ScadaBR com login e senha “admin” depois selecione a opção “Data sources” conforme indicado na imagem abaixo.

Agora crie um novo “Data Source Virtual” com nome “Dados Simulados” com Período de Atualização de 1 segundo.


Adicionar um “Data point” com nome “Temperatura”, configurável, tipo de dado “Numérico”, tipo de alteração “Sem atualização” e com valor de início = 25.

Agora vamos ligar o datapoint e o datasource clicando nos ponto indicados. Eles deverão ficar na cor verde.

Agora selecione a opção Lista de visualização (Watchlist).

Depois clique no datapoint criado conforme indicado na imagem abaixo para adiciona-lo a lista de visualização (Watchlist). Ao clicar veremos que o datapoint será adicionado ao lado direito e apresentará o valor 25 que foi programado durante a criação dele.

Passo 4 - Criando os scripts de alerta de temperatura
Neste passo vamos escrever os Scripts do BOT que enviarão as mensagens para o Telegram.
Selecione a opção Scripting

Adicione um novo script com o nome “Informa limite máximo atingido”
Acrescente o variável “Temperatura” nos ponto de contexto.
Cole o script a seguir: *(Este script foi desenvolvido por Celso da Comunidade do ScadaBR e gentilmente cedido para publicação nesta aula)
Onde,
TKTKTKTK é o Token recebido do @botFather
CHIDCHID é o id do chat obtido a partir do json
PX é o ponto de contexto da variável Temperatura
function simpleGet(url, parameters) {
var respStatus = null;
var respString = null;
var respErrors = null;
var getUrl = url.replace(/\/$/, "") + "?";
for (var i in parameters) {
var paramKey = encodeURIComponent(parameters[i].key);
var paramValue = encodeURIComponent(parameters[i].value);
getUrl += paramKey + "=" + paramValue + "&";
}
var imports = JavaImporter(org.apache.commons.httpclient.HttpClient, org.apache.commons.httpclient.methods.GetMethod, org.apache.commons.httpclient.DefaultHttpMethodRetryHandler, org.apache.commons.httpclient.params.HttpMethodParams,
java.io.*
);
with (imports) {
var client = new HttpClient();
var method = new GetMethod(getUrl); method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
try {
var statusCode = client.executeMethod(method);
respStatus = statusCode;
if (statusCode != 200) {
respErrors = "Method failed: " + String(method.getStatusLine());
} else {
var responseBody = method.getResponseBodyAsString();
respString = String(responseBody);
}
} catch (e) {
respErrors = "Error occurred: " + String(e);
} finally {
method.releaseConnection();
}
}
return { status: respStatus, response: respString, errors: respErrors };
}
var url = "https://api.telegram.org/botTKTKTKTK/sendMessage";
var parametros = [
{ key: "chat_id", value: "CHIDCHID" },
{ key: "text", value: "TemperaturaAlta "+PX.value }
];
var obj = simpleGet(url, parametros);

Você pode testar o script acionando o botão indicado, uma mensagem será enviada na conversa que iniciamos com o nosso BOT no Telegram


Repetir os passos acima para o criar o script de “Limite Mínimo Atingido”.
Passo 5 - Criando os Tratadores de Evento
Na lista de visualização (Watchlist) entre nas configurações do datapoint conforme a imagem abaixo.

Depois disso vamos criar 2 detectores de eventos para identificar quando a temperatura esta alta e outra para identificar quando a temperatura esta baixa.


Por último vamos configurar o ScadaBR para executar os scripts criados a partir de evento. Selecione a opção tratadores de evento conforme a imagem abaixo:

Selecionar o evento “Temperatura Alta” que aparece dentro de “Tipos de Eventos Detectores de Valor Dados Simulados - → → Temperatura”
Selecione o tipo “Script”
Selecione o script “Informa Limite Máximo Atingido” no parâmetro “Script quando ativo”
Clique em salvar

Repetir os passos anteriores para criar o tratador do evento de temperatura mínima.
Testando os alertas
No vídeo irei até a lista de visualização (Watchlist) para alterar o valor diretamente no datapoint e verificar se as mensagens serão enviadas. Confira aqui!
"O conteúdo e a opinião expressa neste artigo não representam a opinião da Branqs Automação e são de responsabilidade do autor"

Comentários