IotHub M2M
  1. Docs M2M
IotHub M2M
  • API
    • M2M
      • Solicitações
        • Criar Solicitação
        • Cancelar Solicitação
      • Dispositivos
        • Atualizar Atributos de Dispositivos
        • Atualizar Atributos de um Dispositivo
  • Docs M2M
    • 1.Integração M2M
    • 2.O que mudou
    • 3.Autenticação da API
    • 4.Operações de Entrada
    • 5.Operações de Saída
    • 6. Guia de configuração IoT Hub com M2M
  1. Docs M2M

6. Guia de configuração IoT Hub com M2M

Guia de Configuração de Clientes no IoT Hub com M2M#

Objetivo#

Este documento tem como objetivo servir como um guia para configuração de novos clientes no IoT Hub com integração ao M2M.
O cliente pode ter acesso a 4 tiers do IoT Hub:
Tier 1 - Abertura de solicitações pelo IoT Hub (o fornecedor cria as solicitações diretamente)
Tier 2 - Integração de cadastro dos dispositivos
Tier 3 - Logs (medições e alertas)
Tier 4 - Controle e agendamento e gerenciamento de grupos
Este guia ensina a configurar o Tier 1 e o Tier 2

Tier 1#

Habilitar IoT Hub#

1.
Acesse a página Configuração da instância.
Figura 1
Figura 1 – Localização da página "Configuração da instância"
2.
Vá até a aba IoT Hub, ative a opção Habilitar integração IoT Hub e clique em Salvar no canto superior direito.
Figura 2
Figura 2 – Habilitando a integração e salvando

Configurar fornecedor M2M#

1.
Vá para a página IoT Hub > aba Fornecedores.
Figura 3
Figura 3 – Acesso à aba Fornecedores
Figura 4
Figura 4 – Lista de fornecedores
2.
Importante destacar que podemos associar o fornercedor ao cliente, para isso, clique em "Associar ao cliente" (não é um item obrigatório)
image.png
Figura 5 – Botão de associar ao cliente
3.
Clique no ícone de edição do fornecedor.
Figura 6
Figura 6 – Edição do fornecedor
4.
Preencha os campos:
Status: Ativo
URL (se necessário)
Parque de Serviço
Usuário e Senha (converse com líder do IoT Hub para ter acesso)
Mapeamento de Código de Serviço para Tipo de Ocorrência
Exemplo de mapeamento:
229 - Lâmpada apagada à noite,
230 - Lâmpada acesa durante o dia,
231 - Luminária oscilando/intermitente
Figura 7
Figura 7 – Dados gerais do fornecedor
Figura 8
Figura 8 – Mapeamento de códigos
5.
Clique em salvar:
Figura 9
Figura 9 - Salvar edição de fornecedor
Tier 1 configurado.

Tier 2#

Criar Classe de Dispositivo Nox#

1.
Fazer um POST no endpoint "/vendors/m2m/clients/:idInstance/device-classes"
Observação: O parâmetro de rota ":idInstance" refere-se ao identificador da instância, encontrado na tela "Configurações da instância":
image.png
Preencher o valor nos parâmetros de rota do api dog:
image.png
Configurar url (converse com o líder do IoT Hub para obter a url):
📌
No exemplo, é usada a variável global prodUrl que possui o valor da url, mas é possível inserir diretamente o valor da url no campo "Default Server", sem uso de variável.
image.png
Configurar credenciais (conversar com líder para obter credenciais)
📌
No exemplo, é usada as variáveis globais iotHubUsername e iotHubPassword que possuem o valor das credenciais, mas é possível inserir diretamente o valor das credenciais em seus respectivos campos "Username" e "Password.
image.png
Payload da requisição post:
{
    "name": "cls:Nox",
    "functions": [
        {
            "name": "fBasicFunction",
            "type": "BasicFunction",
            "attributes": [
                {
                    "name": "location",
                    "scope": "configuration",
                    "type": "AttributeLocation",
                    "readOnly": true,
                    "unit": "None"
                }
            ],
            "vendorAttributes": [
                {
                    "name": "assetLocation",
                    "scope": "configuration",
                    "type": "AttributeLocation",
                    "unit": "None"
                },
                {
                    "name": "energyConsumption",
                    "scope": "measurement",
                    "type": "AttributeFloat",
                    "minValue": 0,
                    "readOnly": true,
                    "unit": "KiloWattHours"
                },
                {
                    "name": "numeroPredial",
                    "scope": "configuration",
                    "type": "AttributeInteger",
                    "minValue": 0,
                    "unit": "None"
                },
                {
                    "name": "bairro",
                    "scope": "configuration",
                    "type": "AttributeString",
                    "unit": "None"
                },
                {
                    "name": "cep",
                    "scope": "configuration",
                    "type": "AttributeString",
                    "regex": "^\\d{5}-?\\d{3}$",
                    "unit": "None"
                },
                {
                    "name": "numIdentificacao",
                    "scope": "configuration",
                    "type": "AttributeString",
                    "unit": "None"
                },
                {
                    "name": "fabricante",
                    "type": "AttributeString",
                    "scope": "configuration",
                    "unit": "None"
                },
                {
                    "name": "potenciaLuminaria",
                    "type": "AttributeInteger",
                    "scope": "configuration",
                    "minValue": 0,
                    "unit": "Watts"
                },
                {
                    "name": "tensaoLuminaria",
                    "type": "AttributeFloat",
                    "scope": "configuration",
                    "minValue": 0,
                    "unit": "Volts"
                },
                {
                    "name": "dat_Evento",
                    "type": "AttributeDateTime",
                    "scope": "configuration",
                    "unit": "DateTime"
                },
                {
                    "name": "idPontoServico",
                    "type": "AttributeString",
                    "scope": "configuration",
                    "minValue": 1,
                    "unit": "None"
                },
                {
                    "name": "idNox",
                    "type": "AttributeInteger",
                    "scope": "configuration",
                    "unit": "None"
                },
                {
                    "name": "logradouro",
                    "type": "AttributeString",
                    "scope": "configuration",
                    "unit": "None"
                },
                {
                    "name": "modelo",
                    "type": "AttributeString",
                    "scope": "configuration",
                    "unit": "None"
                },
                {
                    "name": "plaqueta",
                    "type": "AttributeString",
                    "scope": "configuration",
                    "unit": "None"
                }
            ]
        }
    ]
}
image.png
Figura 10 – Acessando requisição de criar classe de dispositivo m2m
Esse post cria a classe de dispositivo "cls:Nox" do cliente em questão no sistema IoT Hub
2.
Clique em "Send":
image.png
Figura 11 – Enviando requisição http para criar a classe de dispositivo
Exemplo de response com sucesso:
image.png

Sincronizar Dados do IoT Hub#

Este passo sincroniza a classe recém criada no IoT Hub, trazendo assim a classe para o sistema Guia/ERP
1.
Acesse novamente a página Configuração da instância.
Figura 12
Figura 12 – Acessando página de configuração da instância
2.
Na aba IoT Hub, clique no botão Sincronizar dados do IoT Hub.
Figura 13
Figura 13 – Botão de sincronização
Após sincronizar, acesse a página "IoT Hub", aba "Classes de Dispositivos". É possível observar a classe criada:
image.png

Configurar Material#

1.
Acesse a página Listagem de materiais.
Figura 14
Figura 14 – Acessando página de listagem de materiais
2.
Edite o material e vá até a aba Dados Gerais.
Selecione a Classe de Dispositivo recém-criada
selecione Sim no campo "Dispositivo IoT.
A M2M só permite uma opção por vez.
Figura 15
Figura 15 – Dados gerais do material
image.png
Figura 16 – Seleção da classe do dispositivo

Gerar Materiais Identificados#

1.
Acesse a página Scripts
image.png
Figura 15 – Acessando página de script
2.
Clique em adicionar:
image.png
Figura 16 – Observando qual script vai ser utilizado
3.
Preencha o nome e descrição com o seguinte texto:
[IoT Hub] Geração de materiais identificados para dispositivos sem processo de identificação
image.png
Figura 17 – Preenchendo informações do script
4.
No editor de texto, cole o script:
6.
Acesse a página Scripts, aba Rodar
image.png
Figura 18 – Acessando aba rodar da tela Scripts
7.
Selecione o script criado com nome [IoT Hub] Geração de materiais identificados para dispositivos sem processo de identificação
image.png
Figura 19 – Selecionando script para execução
8.
Abra o dev tools de seu navegador (geralmente a tecla F12 abre) e selecione a aba de Network/Rede:
image.png
Figura 20 – Abrindo aba network do dev tools
9.
Execute o script e acompanhe a requisição na aba de network:
A execução do script pode demorar de 20 a 50 minutos
image.png
Figura 21 – Executando script e acompanhando a requisição

Gerar dispositivos dos materiais instalados#

1.
Acesse a página Scripts
image.png
Figura 22 – Acessando página de script
2.
Clique em adicionar:
image.png
Figura 23 – Adicionando novo script
3.
Preencha o nome e descrição com o seguinte texto:
[IoT Hub] Geração de dispositivos IoT instalados a partir dos materiais identificados
image.png
Figura 24 – Preenchendo informações do script
4.
No editor de texto, cole o script:
5.
Edite o script com o id da classe criada e com o uuid do fornecedor M2M (os valores mudam para cada cliente, siga os passos seguintes para buscar os valores)
image.png
Figura 25 – Detalhes do script
Verifique o id da classe na tela Iot Hub, aba Classes de Dispositivo
image.png
Figura 26 – Acessando aba Classes de dispositivo da tela IoT Hub
Edite a tabela de classes de dispositivo clicando em:
image.png
Figura 27 – Abrindo menu de editar colunas visíveis
Selecione a coluna ID_CLASSE_DISPOSITIVO
image.png
Figura 27 – Editando colunas visíveis da tabela
Copie o id da classe e cole no script
image.png
Figura 28 – Copiando id da classe
Acesse a aba Fornecedores IoT e clique no fornecedor M2M:
image.png
Figura 28 – Acessando aba Fornecedores IoT
Copie o UUID do fornecedor e cole no script
image.png
Figura 28 – Copiando UUID do Fornecedor M2M
6.
Selecione o script criado de nome [IoT Hub] Geração de dispositivos IoT instalados a partir dos materiais identificados
image.png
Figura 29 – Selecionando script para execução
7.
Abra o dev tools de seu navegador (geralmente a tecla F12 abre) e selecione a aba de Network/Rede:
image.png
Figura 30 – Abrindo aba network do dev tools
8.
Execute o script e acompanhe a requisição na aba de network:
A execução do script pode demorar de 20 a 50 minutos
image.png
Figura 31 – Acompanhando requisição
9.
Após a execução do script, materiais que não tiverem os dispositivos gerados podem ser acessados na tela "Erros na geração de dispositivos"
image.png
Figura 32 – Acesso a lista de erros na geração de dispositivos
10.
Devido a funcionalidades internas os seguintes retornos são possiveis:
6.1 . Se o Nox não existe ou está instalado, vai mostrar que não está disponível
6.2 . Se ele existe e não está instalado, mostra que está disponível

7. Criar Vínculos de Atributos IoT#

Passos:#

1.
Acesse a página Vínculo de atributos de IoT.
Figura 17
Figura 33 – Localização da funcionalidade de vínculo
2.
Preencha as informações que a página requer
Fornecedor: M2M
Classe de Dispositivo: cls:Nox (mesma classe criada nos passos anteriores)
Função: fBasicFunction
image.png
Figura 34 – Preenchendo informações
3.
O dispositivo M2M Nox possui 10 atributos que devemos vincular as entidades do Guia, porém não vincule todos ainda:
image.png
Figura 35 – Vínculos de atributos do dispositivo M2M
4.
Vincule quaisquer 9 atributos, deixando um atributo sem vínculo. Ou seja, por exemplo, pode-se vincular os atributos [1, 2, 3, 4, 5, 6, 7, 8, 9] e deixar o atributo 10 sem vínculo.
Recomenda-se adicionar um vínculo de cada vez, salvando a cada vínculo adicionado.
5.
Acesse a página de detalhes do fornecedor M2M:
image.png
Figura 36 – Acessando detalhes do fornecedor M2M
6.
Clique no botão de editar:
image.png
Figura 37 – Abrindo tela de edição
7.
Selecione "Ativo" para o campo "Envio automático de atualizações para o fornecedor" e salve:
image.png
Figura 38 – Editando valor do campo de envio automático
8.
Retorne a página vínculo de atributos e adicione o último vínculo.
Tier 2 configurado.
Modified at 2025-11-07 19:03:39
Previous
5.Operações de Saída