Skip to content

odenisnobre/usando-pinotifications-com-telegram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Usando o PI Notifications com Telegram

O projeto tem como objetivo documentar os testes realizados com o PI Notifications(OSIsoft) e Telegram usando o node-red como 'gateway'.

License MIT

node-red-telegram

Recursos utilizados

  • Node-Red - Versão 1.1.0
  • Webservice - Versão 2016 x64
  • Pi Notification (OSIsoft) - PI Notification 2012
  • Telegram

Desenvolvimento

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

Webservice

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:
    • token_bot: token do bot telegram
    • chat_id: chat id do usuário, lista ou grupo do telegram
    • messagem: a mensagem para ser enviada para os usuários

Testes solução 01

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.

Testes solução 02

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:

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.




Conclusão

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.

Help

Caso precisem te ajuda ou tenham alguma sugestão, deixe seu comentário Aqui.

Releases

No releases published

Packages

No packages published