cardápio

API HTTP principal do SPM

API HTTP principal do SPM

O tipo de dispositivo é diy_meter(type=diy_meter) e a versão da interface da API do dispositivo é 1 (apivers=1).

Transmissão de status do dispositivo

Quando o status do subdispositivo muda, o DNS TXT deve conter o campo "id", que é o [chip id] do subdispositivo. O subdispositivo transmite apenas o campo alterado. Se o switch do subdispositivo for alterado, apenas o campo switches é reportado, e o campo threshold overload_00 não é reportado.

Este exemplo adiciona quebras de linha e espaços para facilitar a leitura, mas na verdade não há quebras de linha nem espaços.

 //All fields broadcast by sub-device
{
	"switches": [
    {
        "outlet":0,
        "switch":"on"
    },
    {
        "outlet":1,
        "switch":"on"
    },
    {
        "outlet":2,
        "switch":"on"
    },
    {
        "outlet":3,
        "switch":"on"
    }
],

//_00 represents the value of channel 1, _01 represents the value of channel 2, and so on
"current_00":100,
"voltage_00":22000,
"actPow_00":22000,
"reactPow_00":22000,
"apparentPow_00":22000,
  
"overload_00": 
{
    "minAP": {
        "en": 0,
        "val": 110000
    },
    "maxAP": {
        "en": 1,
        "val": 10000
    },
    "minV": {
        "en": 1,
        "val": 1000
    },
    "maxV": {
        "en": 0,
        "val": 22000
    },
    "maxC": {
        "en": 1,
        "val": 2000
    },
    "delayTime": 10
},
"overload_01":{},
"overload_02":{},
"overload_03":{},
"faultState": {
    "subDevCom": 0,
    "overloadTrig": [
        {
            "outlet": 0,
            "rsn": [1]
        },
        {
            "outlet": 2,
            "rsn": [3]
        }
    ],
    "cse7761Com": [
        1,
        0,
        1,
        1
    ],
    "overTemp": [
        0
    ],
    "overLimit": [
        {
            "outlet": 1,
            "rsn": [0]
        },
        {
            "outlet": 3,
            "rsn": [1]
        }
    ]
}
}

//If the switch status of the sub-device changes, only the switches field is reported.
{
"switches": [
    {
        "outlet":0,
        "switch":"on"
    },
    {
        "outlet":1,
        "switch":"on"
    },
    {
        "outlet":2,
        "switch":"on"
    },
    {
        "outlet":3,
        "switch":"on"
    }
]
}

//Report the PVC status of channel 1 in real time
{
"current_00":100,
"voltage_00":22000,
"actPow_00":22000,
"reactPow_00":22000,
"apparentPow_00":22000,
}


//Sub-device failure

{
"faultState": {
    "subDevCom": 0,
    "overloadTrig": [
        {
            "outlet": 0,
            "rsn": [1]
        },
        {
            "outlet": 2,
            "rsn": [3]
        }
    ],
    "cse7761Com": [
        1,
        0,
        1,
        1
    ],
    "overTemp": [
      	1,
        0,
      	1,
      	0
    ],
    "overLimit": [
        {
            "outlet": 1,
            "rsn": [0]
        },
        {
            "outlet": 3,
            "rsn": [1]
        }
    ]
}
}
Atributo Tipo Descrição
interruptores Variedade Mudar o status de todos os canais
tomada Número Número do canal, [0,3]
trocar Corda on: ligar o interruptor, off: desligar o interruptor
subDevCom Número Status de comunicação do subdispositivo 485. 1: Comunicação normal, 0: Erro de comunicação
sobrecargaTrig Variedade Evento de disparo de proteção contra sobrecarga. Este campo aparece quando há um evento de sobrecarga.
cse7761Com Variedade Erro de comunicação do subdispositivo cse7761. Os elementos da matriz são do tipo Number. A quantidade é 4. Os elementos 0-3 são canais 1-4, respectivamente. [0,1] 1: Comunicação normal. 0: Erro de comunicação.
temperatura excessiva Variedade Evento de disparo da proteção contra superaquecimento do subdispositivo cse7761. Os elementos do array são do tipo Number. A quantidade é 4. Os elementos 0-3 são canais 1-4, respectivamente. [0,1] 1: Comunicação normal. 0: Erro de comunicação. Este campo aparece quando há um evento de disparo por superaquecimento.
acima do limite Variedade Evento de disparo da proteção contra sobrecarga de valor limite. Este campo aparece quando há um evento de sobrecarga de valor limite.

Obter o ID do dispositivo

URL: http://[ip]:[porta]/zeroconf/deviceid
Formato do valor de retorno: json
Método: postagem HTTP

 { 
     "data": {} 
 }

Objeto vazio, nenhum atributo é necessário.

Corpo de resposta

 {
"seq": 2,
"error": 0,
"data": {
"deviceid": "1000012345"
}
}

Adicionar subdispositivo

URL: http://[ip]:[porta]/zeroconf/add_sub_devices
Formato do valor de retorno: json
Método: postagem HTTP

 { 
    "deviceid": "100000140e", 
    "data": {} 
 }

Objeto vazio, nenhum atributo é necessário.

Corpo de resposta

 {
  "seq": 2,
  "error": 0,
 }

Obtenha a lista de subdispositivos

URL: http://[ip]:[porta]/zeroconf/subDevList
Formato do valor de retorno: json
Método: postagem HTTP

 { 
    "deviceid": "100000140e", 
    "data": {} 
 }

Objeto vazio, nenhum atributo é necessário.

Corpo de resposta

 {
  "seq": 2,
  "error": 0,
  "data": {
    "subDevList": [
      {
        "subDevId": "123456",
        "type": 130
      }
    ]
  }
}
Atributo Tipo Opcional Descrição
subDevId Corda Não ID do chip do subdispositivo
tipo Número Não Tipo de subdispositivo. 130: Subdispositivo de quatro canais

Interruptor liga/desliga

URL: http://[ip]:[porta]/zeroconf/switches
Formato do valor de retorno: json
Método: HTTP post .

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "switches": [
      {
        "switch": "on",
        "outlet": 0
      },
      {
        "switch": "on",
        "outlet": 1
      },
      {
        "switch": "on",
        "outlet": 2
      },
      {
        "switch": "on",
        "outlet": 3
      }
    ]
  }
}
Atributo Tipo Opcional Descrição
trocar Corda Não on: ligar o interruptor, off: desligar o interruptor
tomada Número Não Número do canal, [0,3]

Proteção contra sobrecarga

URL: http://[ip]:[porta]/zeroconf/overload
Formato do valor de retorno: json
Método: postagem HTTP

Corpo da solicitação

 {
    "deviceid": "100000140e",
    "data": {
        "subDevId": "123456",
        "overload_00": 
        {
            "minAP": {
                "en": 0,
                "val": 110000
            },
            "maxAP": {
                "en": 1,
                "val": 10000
            },
            "minV": {
                "en": 1,
                "val": 9000
            },
            "maxV": {
                "en": 0,
                "val": 22000
            },
            "maxC": {
                "en": 1,
                "val": 2000
            },
            "delayTime": 10
        },
        "overload_01":{},
        "overload_02":{},
        "overload_03":{}
    },
}
Atributo Tipo Opcional Descrição
minAP Número Não Potência mínima, [10.440000], Unidade: 0,01 W
maxAP Número Não Potência máx., [10.440000], Unidade: 0,01 W
minV Número Não Tensão mínima, [9000,24000], Unidade: 0,01 V
máx. V Número Não Tensão máx., [9000,24000], Unidade: 0,01 V
maxC Número Não Corrente máx., [10,2000], Unidade: 0,01 A
tempo de atraso Número Não Atraso para desligar, [0,180]
em Número Não 0: Desabilita proteção contra sobrecarga.
1: Habilite a proteção contra sobrecarga.
vale Número Não Limite superior ou limite inferior

Observação:
-_00 representa o valor do canal 1, _01 representa o valor do canal 2 e assim por diante.
-Quando o limite superior de potência, tensão e limite inferior estiverem todos abertos, o limite superior deverá ser maior que o limite inferior.

Eu estou aqui

URL: http://[ip]:[porta]/zeroconf/iAmHere
Formato do valor de retorno: json
Método: postagem HTTP

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456"
  }
}

Observação:
-Esta função pode encontrar o subdispositivo designado através da luz indicadora.

Definir hora do dispositivo

URL: http://[ip]:[porta]/zeroconf/time
Formato do valor de retorno: json
Método: postagem HTTP

 {
    "deviceid":"1000001234",
    "data": {
      "timeZone":8,
      "date":"2020-12-15T06:31:14.115Z"
    }
}
Atributo Tipo Opcional Descrição
fuso horário Número Não Fuso horário, [-12,+14], pode ser um decimal, como 7,5
data Corda Não UTC

Observação:
- Os Dados Históricos dos Subdispositivos só entrarão em vigor depois que as informações de fuso horário forem definidas e não afetam as estatísticas de tempo único.

Dados históricos do subdispositivo

URL: http://[ip]:[porta]/zeroconf/historicalData
Formato do valor de retorno: json
Método: postagem HTTP

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "outlet": 3,
    "dateStart": "2020-07-10 05:30",
    "dateEnd": "2020-07-10 19:10"
  }
}
Atributo Tipo Opcional Descrição
tomada Número Não Número do canal,[0,3]
data de início Corda Não Hora de início; formato: “aaaa-mm-dd hh:mm”
dataFim Corda Não Horário de término, formato: “aaaa-mm-dd hh:mm”

Resposta

  1. Resposta correta:

O tipo de conteúdo do cabeçalho de resposta é application/octet-stream

Retorna dados de arquivo com valores separados por vírgula (CSV). O arquivo contém linhas de cabeçalho e de registro normal. O cabeçalho do título contém o nome correspondente do campo de registro. Cada linha de registro normal é um registro de dados, e cada registro consiste em 9 campos, separados por vírgulas.

Os campos na ordem da esquerda para a direita são os seguintes:
| Data | hora | Tomada | Corrente (A) | Tensão (V) | Potência real (W) | Potência reativa (W) | Potência aparente (W) | Consumo de energia em 5 minutos (W·s) |

por exemplo
Os usuários consultam dados das 00:00 às 00:20 do dia 10 de outubro de 2021.

 Date, time, Outlet, Current(A), Voltage(V),Real power(W), Reactive power(W), 
Apparent power(W), 5 Minutes Power Consumption(W·s)
2021-10-10 , 0:0:0 , 0 , 0.00, 240.94, 0.56, 0.00, 0.55,172.00
2021-10-10 , 0:5:0 , 0 , 0.00, 241.41, 0.60, 0.00, 0.59,172.00
2021-10-10 , 0:10:0 , 0 , 0.00, 241.13, 0.51, 0.00, 0.55,173.00
2021-10-10 , 0:15:0 , 0 , 0.00, 240.94, 0.58, 0.00, 0.56,173.00
2021-10-10 , 0:20:0 , 0 , 0.00, 240.95, 0.57, 0.00, 0.57,173.00
  1. Resposta de erro:
    Consulte a parte geral .

Observação:
-Esta função será lançada após a versão de firmware 1.1.0.
-Suporte a consulta de dados por até 1 dia.
Por exemplo, quando a data de início for “2020-07-10 05:30”, a data de término poderá ser preenchida como “2020-07-11 00:00” no máximo.

URL: http://[ip]:[porta]/zeroconf/monitor
Formato do valor de retorno: json
Método: postagem HTTP

 {
    "deviceid": "100000140e",
    "data": {
        "url": "http://www.123.com",
        "port": 7790,
        "subDevId": "123456",
        "outlet": 3,
        "time":180
    }
}
Atributo Tipo Opcional Descrição
URL Corda Não URL de relatório de dados de monitoramento em tempo real, formato:” http://www.xxx.com/yyy”
porta Número Não Porta de relatórios de dados de monitoramento em tempo real, [1024,65535]
subDevId Corda Não ID do chip do subdispositivo
tomada Número Não Número do canal, [0,3]
tempo Número Não Duração do monitoramento em tempo real, [1,3600], unidade de segundo

Observação:
-A URL suporta apenas conexões não criptografadas, e o formato do relatório de dados de monitoramento é solicitação http post.

Relatório do dispositivo:

 {
  "subDevId": 123456,
  "outlet": 3,
  "current": 100,
  "voltage": 22000,
  "actPow": 22000,
  "reactPow": 22000,
  "apparentPow": 22000
}
Atributo Tipo Opcional Descrição
atual Número Não Valor de corrente em tempo real, Unidade: 0,01 A
tensão Número Não Valor de tensão em tempo real, Unidade: 0,01 V
ActPow Número Não Valor actPow em tempo real, unidade: 0,01 W
reactPow Número Não Valor reactPow em tempo real, unidade: 0,01 W
aparentePow Número Não Valor de potência aparente em tempo real, unidade: 0,01 W

Condições de relato:
-A variação de corrente excede 0,03 A.
-A variação de tensão excede 5 V.
-A potência ativa, potência reativa ou variação de potência aparente excede 2 W.

Configuração de SSID e senha do WiFi

URL: http://[ip]:[porta]/zeroconf/wifi
Formato do valor de retorno: json
Método: postagem HTTP

 {
  "deviceid": "100000140e",
  "data": {
    "ssid": "eWeLink",
    "password": "WeLoveIoT"
  }
}
Atributo Tipo Opcional Descrição
SSID Corda Não SSID da rede WiFi à qual o dispositivo irá se conectar
senha Corda Não Senha da rede WiFi à qual o dispositivo irá se conectar

Observação:
-A nova configuração de Wi-Fi entrará em vigor na próxima vez que o Wi-Fi for conectado.

Firmware OTA

URL: http://[ip]:[porta]/zeroconf/upgrade
Formato do valor de retorno: json
Método: postagem HTTP

 {
  "deviceid": "1000xxxxxx",
  "data": {
    "binList": [
      {
        "downloadUrl": "http://52.83.223.225:8088/ota/rom/hNLhVpovUgFJcipxmDD8fQv9b2BdJNgT/user1.1024.new.2.bin",
        "digest": "56a013b0f2ea151fb337a24025a5abb2f4390d4617c5ec57b27a79c86d6c4174",
        "name": "user1.bin"
      },
      {
        "downloadUrl": "http://52.83.223.225:8088/ota/rom/hNLhVpovUgFJcipxmDD8fQv9b2BdJNgT/user2.1024.new.2.bin",
        "digest": "62503540c241b4783bdc46026d86035b9d0775e2d48c59e40227be8067cadac6",
        "name": "user2.bin"
      }
    ]
  }
}
Atributo Tipo Opcional Descrição
URL de download Corda Não O endereço de download do novo firmware suporta apenas o protocolo HTTP, o servidor HTTP deve suportar o cabeçalho de solicitação Range.
sha256sum Corda Não Soma de verificação SHA256 (hash) do novo firmware, é usada para verificar a integridade do novo firmware baixado.
nome Corda Não Nome do firmware

Os seguintes códigos de falha são adicionados ao campo de erro do corpo da resposta:

  1. 404 Não encontrado (falha no download).
  2. 409 Falha na verificação do firmware.

Obter registros de operação do canal

URL: http://[ip]:[porta]/zeroconf/record
Formato do valor de retorno: json
Método: postagem HTTP

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "rangeStart": 200,
    "rangeEnd": 229
  }
}
Atributo Tipo Opcional Descrição
intervaloIniciar Número Não Número inicial de registros de operação, [0,65535]
fim do intervalo Número Não Número final de registros de operação, [0,65535]

Corpo de resposta

 {
    "seq": 2,
    "error": 0,
    "data": {
        "record": [
            {
                "date": "2020-07-29 18:00:05",
                "trigType": 1,
                "outlet": 1,
                "action": 1
            },
            {
                "date": "2020-07-29 18:02:05",
                "trigType": 0,
                "outlet": 1,
                "action": 0
            }
        ]
    }
}
Atributo Tipo Opcional Descrição
data Corda Não Horário de funcionamento; formato: “aaaa-mm-dd hh:mm”
Tipo de gatilho Número Não [0,3], 0: gatilho do APP; 1: gatilho do dispositivo; 2: gatilho de proteção contra sobrecarga; * 3: * gatilho de proteção contra superaquecimento
tomada Número Não Número do canal, [0,3]
Ação Número Não 0: Canal fechado;
1: Canal aberto

Observação:
-As condições precisam ser atendidas: rangeEnd>=rangeStart e rangeEnd-rangeStart<=29.

Obter estado do dispositivo

URL: http://[ip]:[porta]/zeroconf/getState
Formato do valor de retorno: json
Método: postagem HTTP

por exemplo

1. Obtenha o status do gateway:

 {
    "deviceid":"1000001234",
    "data": {
    }
}

Corpo de resposta

 {
    "seq": 2,
    "error": 0,
    "data": {
        "sledOnline":"on",
        "ssid": "eWeLink",
        "fwVersion": "3.5.0",
        "subChipFwVer": "3.5.0",
        "deviceid": "100000140e",
        "bssid": "xx:xx:xx:xx:xx:xx",
        "signalStrength": -10,
        "wifiConnected": true/false
    }
}

2. Obtenha o status do subdispositivo:

 {
    "deviceid":"1000001234",
    "data": {
        "subDevId": "123456"
    }
}

Corpo de resposta

 {
    "seq": 2,
    "error": 0,
    "data": {
      	"fwVersion": "1.1.1",
        "switches": [
            {
                "outlet":0,
                "switch":"on"
            },
            {
                "outlet":1,
                "switch":"on"
            },
            {
                "outlet":2,
                "switch":"on"
            },
            {
                "outlet":3,
                "switch":"on"
            }
        ],
        "overload_00": 
        {
            "minAP": {
                "en": 0,
                "val": 110000
            },
            "maxAP": {
                "en": 1,
                "val": 10000
            },
            "minV": {
                "en": 1,
                "val": 1000
            },
            "maxV": {
                "en": 0,
                "val": 22000
            },
            "maxC": {
                "en": 1,
                "val": 2000
            },
            "delayTime": 10
        },
        "overload_01":{},
        "overload_02":{},
        "overload_03":{},
        "faultState": {
            "subDevCom": 0,
            "cse7761Com": [
                1,
                0,
                1,
                1
            ]
        },
        "threshold": {
            "actPow":{
                "min":10,
                "max":440000
            },
            "voltage":{
                "min":10,
                "max":440000
            },
            "current":{
                "min":10,
                "max":440000
            }
        }
    }
}
Atributo Tipo Descrição
subDevCom Número Status de comunicação do subdispositivo 485. 1: Comunicação normal. 0: Erro de comunicação.
cse7761Com Variedade Erro de comunicação do subdispositivo cse7761. Os elementos da matriz são do tipo Number. A quantidade é 4. Os elementos 0-3 são canais 1-4, respectivamente. [0,1] 1: Comunicação normal. 0: Erro de comunicação.
Versão fw Corda O gateway é a versão do firmware do chip principal, e o subdispositivo é o número da versão do firmware do subdispositivo.
subChipFwVer Corda A versão do firmware do subchip.
wifiConectado Bool Verifique se o Wi-Fi está conectado. Se for falso, os valores de SSID, BSSID e SignalStrength são inválidos.
limite Objeto Faixa de limiar.
ActPow Objeto Potência real, unidade: 0,01 W
tensão Objeto Voltagem, Unidade: 0,01 V
atual Objeto Corrente, Unidade: 0,01A
min Número Mínimo
máx. Número Máx.

URL: http://[ip]:[porta]/zeroconf/ops_mode
Formato do valor de retorno: json
Método: postagem HTTP

 {
    "deviceid":"1000001234",
    "data": {
        "ops_mode": "ewelink"
    }
}

Observação:
“ops_mode”: “ewelink” significa retornar ao modo ewelink.

Anterior
API MINIR3
Próximo
Acessório
última modificação: 2025-08-19