API HTTP BASICR3/RFR3/MINI
O tipo de dispositivo é diy_plug (type=diy_plug) e a versão da interface da API do dispositivo é 1 (apivers=1).
- Quando a versão do firmware do dispositivo for < 3.7.6, o ID do dispositivo pode ser deixado em branco.
por exemplo “deviceid”: “” - Quando a versão do firmware do dispositivo for ≥ 3.7.6, o ID do dispositivo deverá ser preenchido.
por exemplo “deviceid”: “1000000001”
Interruptor liga/desliga
URL: http://[ip]:[porta]/zeroconf/switch
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": {
"switch": "on"
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
trocar | Corda | Não | on: ligar o interruptor, off: desligar o interruptor |
Estado de energia ligada
URL: http://[ip]:[porta]/zeroconf/startup
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": {
"startup": "stay"
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
comece | Corda | Não | ligado: o dispositivo está ligado quando a alimentação elétrica é recuperada. desligado: o dispositivo está desligado quando a alimentação elétrica é recuperada. permanecer: o status do dispositivo permanece o mesmo que o estado antes do corte de energia |
Intensidade do sinal WiFi
URL: http://[ip]:[porta]/zeroconf/signal_strength
Formato do valor de retorno: json
Método: postagem HTTP
Corpo da solicitação
{
"deviceid": "",
"data": { }
}
Objeto vazio, nenhum atributo é necessário.
Corpo de resposta
{
"seq": 2,
"error": 0,
"data": {
"signalStrength": -67
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
força do sinal | Número | Não | A intensidade do sinal WiFi atualmente recebido pelo dispositivo, inteiro negativo, dBm |
Avançando
URL: http://[ip]:[porta]/zeroconf/pulse
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": {
"pulse": "on",
"pulseWidth": 2000
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
pulso | Corda | Não | ligado: ativar a função de avanço gradual; desligado: desabilita a função de avanço gradual |
largura de pulso | Número | Sim | Obrigatório quando “pulso” está ativado, duração do pulso, inteiro positivo, ms, suporta apenas múltiplos de 500 no intervalo de 500 a 3600000 |
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": "",
"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 |
Desbloqueio de função OTA
URL: http://[ip]:[porta]/zeroconf/ota_unlock
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": { }
}
Objeto vazio, nenhum atributo é necessário.
Os seguintes códigos de falha são adicionados ao campo de erro do corpo da resposta:
– 500: A operação falhou e o dispositivo apresenta erros. Por exemplo, erro de ID do dispositivo ou chave de API que não foi autenticado pelo serviço de desbloqueio OTA do fornecedor;
– 503: A operação falhou e o dispositivo não consegue solicitar o serviço de desbloqueio OTA do fornecedor. Por exemplo, o dispositivo não está conectado ao Wi-Fi, não está conectado à internet, o serviço de desbloqueio OTA do fabricante está inativo, etc.
Novo firmware OTA
URL: http://[ip]:[porta]/zeroconf/ota_flash
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": {
"downloadUrl": "http://192.168.1.184/ota/new_rom.bin",
"sha256sum": "3213b2c34cecbb3bb817030c7f025396b658634c0cf9c4435fc0b52ec9644667"
}
}
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, é usado para verificar a integridade do novo firmware baixado |
Os seguintes códigos de falha são adicionados ao campo de erro do corpo da resposta:
– 403: A operação falhou e a função OTA não foi desbloqueada. A interface “3.2.6 Desbloqueio da função OTA” deve ser chamada com sucesso primeiro.
– 408: A operação falhou e o tempo limite do firmware de pré-download expirou. Você pode tentar chamar esta interface novamente após otimizar o ambiente de rede ou aumentar a velocidade da rede.
– 413: A operação falhou e o tamanho do corpo da solicitação é muito grande. O tamanho do novo firmware OTA excede o limite de tamanho de firmware permitido pelo dispositivo.
– 424: A operação falhou e o firmware não pôde ser baixado. O endereço URL está inacessível (endereço IP inacessível, protocolo HTTP inacessível, firmware inexistente, servidor não suporta cabeçalho de solicitação Range, etc.)
– 471: A operação falhou e a verificação de integridade do firmware falhou. A soma de verificação SHA256 do novo firmware baixado não corresponde ao valor do campo sha256sum do corpo da solicitação. Reiniciar o dispositivo causará problemas de bricking.
Observação:
- O tamanho máximo do firmware é 508 KB.
- O modo de leitura flash SPI deve ser DOUT.
Obter informações do dispositivo
URL: http://[ip]:[porta]/zeroconf/info
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "",
"data": { }
}
Objeto vazio, nenhum atributo é necessário.
Corpo de resposta
{
"seq": 2,
"error": 0,
"data": {
"switch": "off",
"startup": "off",
"pulse": "off",
"pulseWidth": 500,
"ssid": "eWeLink",
"otaUnlock": false,
"fwVersion": "3.5.0",
"deviceid": "100000140e",
"bssid": "ec:17:2f:3d:15:e",
"signalStrength": -25
}
}
Observação:
- Monitore e analise o registro DNS TXT do dispositivo para obter informações do dispositivo em tempo real.