O projeto tem como objetivo documentar os testes realizados com o PI Notifications(OSIsoft) e Telegram usando o node-red como 'gateway'.
- Node-Red - Versão 1.1.0
- Webservice - Versão 2016 x64
- Pi Notification (OSIsoft) - PI Notification 2012
- Telegram
A versão do PI Notification que foi testado foi a versão 2012, que já se encontra desatualizada atualmente.
No ambiente testado, o PI Notifications estava configurado para envio de notificações somente por e-mail e webservice.
Para a possibilidade de enviar mensagens para Telegram foi criado um webservice para poder fazer a interface entre o PI Notifications e Telegram.
Durante os testes foram desenvolvidas e testadas duas soluções:
-
Envio de mensagem de forma direta pelo notifications
-
Envio de mensagem via Node-Red
Como dito, foi desenvolvido um webservice para fazer a interface entre PI Notifications e Telegram.
O webservice tem três métodos:
- HelloWorld: que serve somente de testes
- SendData: usado para interface com outros softwares, que no nosso caso, será o Node-Red. Este método possui o método HTTP Post que será enviado para uma aplicação externa. Como o webservice foi desenvolvido para trabalhar com uma notificação no PI Notifications foram seguidos os parametros conforme definições abaixo:
- servidor: endereço no servidor com sua respectiva porta(se houver)
- caminho: endereço hoje será publicado a mensagem
- par1: parâmetro 01 da mensagem, retornando o nome da notificação - "nome"
- par2: parâmetro 02 da mensagem, retornando o status do atributo trigger - "status"
- par3: parâmetro 03 da mensagem, retornando o id da notificação para ser usada como filtro - "id"
- enviaMessagem: usado para envio direto entre de mensagem para Telegram sem necessidade de nenhum servidor adicional. Com três parametros:
Usando a solução 01 - enviaMessagem - podemos enviar mensagem mais rapidamente pois os parametros são simples.
Desta forma basta entrar com os três parametros necessário que a mensagem será enviada ao usuário do Telegram.
Os paramentros podem ser linkados com atributos do AF.
A desvantagem desta solução é que a mensagem fica sempre limitada. Para customizar a mensagem seria necessário usar string builder para deixar a mensagem personalizada dentro do atributo do AF.
Usando a solução 02 - sendData - podemos enviar mensagem para uma aplicação terceira que irá receber os parametros da mensagem e formatar a mensagem conforme necessidade.
No nosso teste utilizamos o Node-Red como aplicação para receber os parametros, formatar a mensagem e enviá-la para os usuários.
A escolha do uso do Node-Red se dá pela facilidade de implementação, documentação e por ser voltado para tecnologias de IoT. Desta forma estamos alinhados com as tendências da Industria 4.0.
O nosso Node-Red está na versão v0.19.3
e rodando em ambiente Windows - Windows Server 2008 R2
.
O telegram possui vários nodes mas utilizamos dois:
- node-red-contrib-chatbot:
- Configurado bot com menus de navegação
- node-red-contrib-telegrambot.
- Configurado para envio de notificações
Como o webservice envia uma requisição usando o método POST temos que criar no Node-Red um flow para receber estes dados:
Com esse flow é possível receber os dados do Notification e tratar os mesmos com seu respectivos filtros, se necessário.
Após os teste concluimos que com a utilização do webservice, seja ele diretamente ou com o Node-Red aumentamos ainda mais as oportunidades de envio de notificações para os usuários.
O telegram é muito útil para envio de mensagens críticas.
Caso precisem te ajuda ou tenham alguma sugestão, deixe seu comentário Aqui.