Este artigo se aplica aos usuários do TeamViewer IoT que monitoram suas redes OPC-UA IoT.

A solução apresentada neste artigo requer o TeamViewer IoT Agent v 1.1.102 (ou superior). Para identificar a versão do seu agente, execute: sudo teamviewer-iot-agent info (um erro ou nenhum resultado indica que uma versão mais antiga do agente está instalada).

Descrição

Conforme descrito no artigo Conector de plug-in personalizado, é muito fácil monitorar sua rede de sensores com o TeamViewer IoT. Este artigo estende a abordagem de integração para monitorar os valores do nó do servidor OPC-UA. Para mais informações sobre o OPC-UA, consulte a OPC Foundation.

Etapa 1 - instale as dependências

O conector requer o seguinte para ser instalado no dispositivo:

Para identificar a versão instalada, execute o seguinte comando: (um erro ou nenhum resultado indica que uma versão mais antiga do agente está instalada)sudo teamviewer-iot-agent info
  • python (v2 ou v3)
  • pip
    • se você não estiver familiarizado com o pip, visite a página de download do python para escolher a instalação preferida para o seu sistema operacional. 
    • Embora o pip sozinho seja suficiente para instalar a partir de arquivos binários pré-construídos, cópias atualizadas dos projetos setuptools e wheel são úteis para instalar a partir de arquivos fonte:
python -m pip install --upgrade pip setuptools wheel
  • freeopcua python library 
    • freeopcua pode ser instalado via pip
pip install freeopcua

Etapa 2 - Baixe e extraia o conector OPC-UA

  • De seu dispositivo executando o TeamViewer IoT Agent, baixe o conector: 
wget https://download.teamviewer-iot.com/connectors/teamviewer-iot-opcua/1.0.0/teamviewer_iot_opcua-1.0.0.tar.gz
  • Após a conclusão do download, extraia o conteúdo do conector:
sudo mkdir -p /usr/local/teamviewer-iot-agent/monitoring/ tar -xzvf teamviewer_iot_opcua-1.0.0.tar.gz -C /usr/local/teamviewer-iot-agent/monitoring/opc-ua

 

Etapa 3 - Integre o script de monitoramento OPC-UA com o TeamViewer IoT Agent 

O TeamViewer IoT Agent inclui seu próprio arquivo de configuração de monitoramento do sistema. Este arquivo de configuração será estendido para incluir o script de monitoramento opc-ua. Como você editará manualmente um arquivo de configuração do sistema, certifique-se de criar um backup do arquivo caso o arquivo seja corrompido por erro do usuário.

  1. Abra para editar o arquivo de configuração de monitoramento do TeamViewer IoT Agent localizado em:
    • /var/lib/teamviewer-iot-agent/system_monitors.conf
    • os sensores estão hospedados no nó "sensors" do arquivo de configuração
  2. Para cada sensor OPC-UA que você desejar integrar, anexe suas informações de registro ao arquivo de configuração. Consulte o modelo abaixo e substitua os espaços reservados pelos detalhes do nó OPC-UA.
  3. Salve o arquivo de configuração.
  4. Reinicie o agente para recarregar o arquivo de configuração.
    • teamviewer-iot-agent restart
  5.  Faça login no painel do TeamViewer IoT e verifique se os sensores/métricas adicionados ao arquivo de configuração agora aparecem na guia Métricas.
    • Fixe as métricas em seu painel e garanta que os dados sejam atualizados de acordo com a frequência especificada no arquivo de configuração

Modelo OPC-UA

Use o seguinte modelo para adicionar seus nós de sensor OPC-UA ao arquivo de configuração de monitoramento. Certifique-se de substituir os seguintes espaços reservados pelas especificações de seu nó OPC-UA:

  • Observação: os parâmetros monitoringService identificam o caminho do conector instalado na Etapa 1. Certifique-se de que o caminho em que você instalou o conector corresponda ao caminho aqui especificado
  • monitoringParams - url, nodeId, frequency
  • metrics - name, key, valueType, valueAnnotation
    • Observação: o nome da métrica deve ser igual ao nodeId

Mais detalhes sobre o esquema JSON podem ser encontrados no artigo Conector de plug-in personalizado.

{ "sensors": [ { "name": "opcua_node_aa", "monitoringService": "python /usr/local/teamviewer-iot-agent/monitoring/opc-ua/opc_ua_connect.py", "monitoringParams": "--url opc.tcp://myopcuahost:26543 --nodeId \"opcua_node_id\" --frequency 2", "metrics": [ { "name": "opcua_node_id", "key": "opcua_node_id", "valueType": "double", "valueAnnotation": "" } ] }, ... ] }

O campo monitoringParams contém argumentos adicionais exigidos pelo script. Aqui está a tabela de argumentos disponíveis.

Parâmetro

Tipo

Necessário

Descrição

url

String

True

URL do servidor OPC UA

nodeId

String

True

Id do nó especificado pelo servidor OPC UA fornecido.

frequência

Inteiro

False

A frequência (em segundos) para pesquisar novos valores de nó.

Se não for definido, a frequência é padronizada para execução única.

Frequência de monitoramento

Conforme descrito na seção Frequência de monitoramento do artigo Conector de plug-in personalizado, a frequência de monitoramento pode ser gerenciada pelo agente, especificando-a como um parâmetro independente, ou gerenciada pelo próprio script de monitoramento opc-ua, passando o parâmetro diretamente para o script.

No modelo acima, a frequência é definida em monitoringParams como parte do parâmetro de script. Essa abordagem é recomendada para monitorar frequências menores que 1 minuto. O TeamViewer IoT Agent executará o script de monitoramento opc-ua uma vez - na inicialização, permitindo que o script seja executado indefinidamente - enquanto o próprio script será executado em um loop de pesquisa de novos dados a cada 2 segundos (conforme especificado pelo parâmetro de frequência). 

Nos casos em que a frequência de monitoramento é mais lenta do que 1 por minuto, a frequência pode ser especificada como parte do modelo, o que resultará na execução do TeamViewer IoT Agent no script de referência na frequência especificada.

No exemplo abaixo, o parâmetro frequência é definido como120, que irá acionar o agente para executar o script referenciado por monitoringScript a cada 120 segundos.

{     "sensors": [         {             "name": "opcua_node_aa",             "monitoringScript": "python /usr/local/teamviewer-iot-agent/monitoring/opc-ua/opc_ua_connect.py",             "monitoringParams": "--url opc.tcp://myopcuahost:26543 --nodeId \"opcua_node_id"",             "frequency": 120,             "metrics": [                 {                     "name": "opcua_node_id",                     "key": "opcua_node_id",                     "valueType": "double",                     "valueAnnotation": ""                 }             ]         },         ...     ] }