top of page

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

  • Foto do escritor: Vinicius Rodrigues
    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:


  1. Entrar na sua conta do Telegram e inicie uma conversa com o usuário @botFather

  2. Clicar no botão START

  3. Entrar com o comando: /newbot

  4. Entrar com o nome do BOT: XXXX

  5. Nome de usuário para o BOT: XXXX_bot - monitorTemperatura_bot

  6. Anotar o token informado pelo @botFather

  7. Inicie chat com o BOT : XXXX_bot

  8. Clique no botão START

  9. Envie uma mensagem simples para seu BOT como “o”

  10. 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)

  1. Copie o chat ID da conversa - “xxxxxxxxx”

  2. 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)

  3. 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


ENDEREÇO

Centro de Excelência em Treinamentos da América Latina
Rua Goiás, 13 - Boqueirão 
Santos - SP - CEP: 11050-101

branqslogo2-234x80.png

SIGA-NOS

© 2022 por Branqs Automação.

bottom of page