API HTTP MINIR3
O tipo de dispositivo é diylight (type=diylight) e a versão da interface da API do dispositivo é 1 (apivers=1).
NOTA: O MINIR3 é um dispositivo de canal único, mas utiliza um protocolo multicanal. O protocolo pode controlar as chaves dos canais 1, 2, 3 e 4. O MINIR3 utiliza o primeiro canal.
Interruptor liga/desliga
URL: http://[ip]:[porta]/zeroconf/switches
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "1000000001",
"data": {
"switches": [
{ "switch": "on", "outlet": 0 },
{ "switch": "on", "outlet": 1 },
{ "switch": "off", "outlet": 2 },
{ "switch": "off", "outlet": 3 }
]
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
trocar | Corda | Não | on: ligar o interruptor, off: desligar o interruptor |
tomada | Número | Não | Intervalos: [0,3]; Representa canais: 1-4 |
Avançando
URL: http://[ip]:[porta]/zeroconf/pulses
Formato do valor de retorno: json
Método: postagem HTTP
Corpo da solicitação
{
"deviceid": "1000000001",
"data": {
"pulses":[
{
"pulse":"on",
"switch":"on",
"width":2000,
"outlet":0
},
{
"pulse":"on",
"switch":"off",
"width":2000,
"outlet":1
},
{
"pulse":"off",
"switch":"on",
"width":2000,
"outlet":2
},
{
"pulse":"off",
"switch":"on",
"width":2000,
"outlet":3
}
]
}
}
Atributo | Tipo | Opcional | Descrição |
---|---|---|---|
pulsos | Variedade | Não | Lista de configurações de avanço gradual |
pulso | Corda | Não | ligado: ativar a função de avanço gradual; desligado: desabilita a função de avanço gradual |
largura | 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 3599500 |
trocar | Corda | Não | Você pode definir como ligado ou desligado. O estado do interruptor após o término do avanço gradual. Se definido como ligado, após desligar o dispositivo, quando o tempo de avanço gradual terminar, o dispositivo será ligado. |
Estado de energia ligada
URL: http://[ip]:[porta]/zeroconf/startups
Formato do valor de retorno: json
Método: postagem HTTP
{
"deviceid": "1000000001",
"data": {
"configure": [
{ "startup": "on", "outlet": 0 },
{ "startup": "off", "outlet": 1 },
{ "startup": "off", "outlet": 2 },
{ "startup": "stay", "outlet": 3 }
]
}
}
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 |
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":{
"switches":[
{
"switch":"on",
"outlet":0
},
{
"switch":"off",
"outlet":1
},
{
"switch":"off",
"outlet":2
},
{
"switch":"off",
"outlet":3
}
],
"configure":[
{
"outlet":0,
"startup":"on"
},
{
"startup":"stay",
"outlet":1
},
{
"outlet":2,
"startup":"off"
},
{
"outlet":3,
"startup":"off"
}
],
"sledOnline":"on",
"pulses":[
{
"pulse":"on",
"switch":"on",
"width":2000,
"outlet":0
},
{
"pulse":"off",
"switch":"on",
"width":2000,
"outlet":1
},
{
"pulse":"off",
"switch":"on",
"width":2000,
"outlet":2
},
{
"pulse":"off",
"switch":"on",
"width":2000,
"outlet":3
}
],
"fwVersion" : "3.4.1",
"deviceid":"100000140e",
"bssid":"xx:xx:xx:xx:xx:xx",
"signalStrength":-67
}
}
Observação:
- Monitore e analise o registro DNS TXT do dispositivo para obter informações do dispositivo em tempo real.