API HTTP D1
Il tipo di dispositivo è diylight (type=diylight) e la versione dell'interfaccia API del dispositivo è 1 (apivers=1).
Interruttore ON/OFF
URL: http://[ip]:[porta]/zeroconf/switch
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": {
"switch": "on"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
interruttore | Corda | NO | on: accendi l'interruttore, off: spegni l'interruttore |
Dimmerabile
URL: http://[ip]:[porta]/zeroconf/dimmable
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": {
"switch": "on",
"brightness": 30,
"mode": 0,
"brightmin": 10,
"brightmax": 255
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
interruttore | Corda | NO | Il campo “switch” deve essere “on” |
luminosità | Numero | NO | Luminosità della luce, [1~100], numero intero positivo |
modalità | Numero | SÌ | Modalità dispositivo, [0-255], numero intero positivo |
brightmin | Numero | SÌ | Luminosità minima, [0~254], intero positivo |
brightmax | Numero | SÌ | Luminosità massima, [1~255], numero intero positivo |
Nota:
- Per regolare la luminosità della luce, la luce deve essere "accesa", quindi se si invia una richiesta API Dimmble con "switch": "off", verrà segnalato l'errore "400" come operazione fallita.
- Il parametro "mode" viene utilizzato per lo sviluppo di APP per definire diverse modalità con luminosità specifica e sincronizzare il contenuto delle modalità del dispositivo quando si condivide il funzionamento del dispositivo con altri.
Ad esempio:
L'APP dello sviluppatore definisce due modalità (modalità 1: luminosità=5; modalità 2: luminosità=50) con cui il dispositivo può raggiungere una luminosità specifica tramite pulsanti; il parametro "modalità" fornisce il modo per sincronizzare la modalità del dispositivo per tutti gli utenti condivisi. - Il valore di brightmin dovrebbe essere inferiore a brightmax.
Stato di accensione
URL: http://[ip]:[porta]/zeroconf/startup
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": {
"startup": "stay"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
avvio | Corda | NO | acceso: il dispositivo è acceso quando l'alimentazione viene ripristinata. spento: il dispositivo è spento quando l'alimentazione viene ripristinata. resta: lo stato del dispositivo rimane uguale a quello precedente all'interruzione dell'alimentazione |
Potenza del segnale WiFi
URL: http://[ip]:[porta]/zeroconf/signal_strength
Formato del valore restituito: json
Metodo: post HTTP
Corpo della richiesta
{
"deviceid": "",
"data": { }
}
Oggetto vuoto, non è richiesto alcun attributo.
Corpo della risposta
{
"seq": 2,
"error": 0,
"data": {
"signalStrength": -67
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
potenza del segnale | Numero | NO | La potenza del segnale WiFi attualmente ricevuto dal dispositivo, numero intero negativo, dBm |
Impostazione SSID e password WiFi
URL: http://[ip]:[porta]/zeroconf/wifi
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": {
"ssid": "eWeLink",
"password": "WeLoveIoT"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
ssid | Corda | NO | SSID della rete WiFi a cui si connetterà il dispositivo |
password | Corda | NO | password della rete WiFi a cui si connetterà il dispositivo |
Sblocco della funzione OTA
URL: http://[ip]:[porta]/zeroconf/ota_unlock
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": { }
}
Oggetto vuoto, non è richiesto alcun attributo.
I seguenti codici di errore vengono aggiunti al campo di errore del corpo della risposta:
– 500: l'operazione non è riuscita e il dispositivo presenta errori. Ad esempio, l'ID dispositivo o l'errore della chiave API non sono autenticati dal servizio di sblocco OTA del fornitore;
– 503: L'operazione non è riuscita e il dispositivo non è in grado di richiedere il servizio di sblocco OTA del produttore. Ad esempio, il dispositivo non è connesso al Wi-Fi, non è connesso a Internet, il servizio di sblocco OTA del produttore non è disponibile, ecc.
Nuovo firmware OTA
URL: http://[ip]:[porta]/zeroconf/ota_flash
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": {
"downloadUrl": "http://192.168.1.184/ota/new_rom.bin",
"sha256sum": "3213b2c34cecbb3bb817030c7f025396b658634c0cf9c4435fc0b52ec9644667"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
URL di download | Corda | NO | L'indirizzo di download del nuovo firmware supporta solo il protocollo HTTP, il server HTTP deve supportare l'intestazione della richiesta Range. |
sha256sum | Corda | NO | Checksum SHA256 (hash) del nuovo firmware, serve per verificare l'integrità del nuovo firmware scaricato |
I seguenti codici di errore vengono aggiunti al campo di errore del corpo della risposta:
– 403: L'operazione non è riuscita e la funzione OTA non è stata sbloccata. È necessario prima chiamare correttamente l'interfaccia "3.2.6 Sblocco funzione OTA".
– 408: L'operazione non è riuscita e il firmware pre-download è scaduto. È possibile provare a richiamare questa interfaccia dopo aver ottimizzato l'ambiente di rete o aumentato la velocità di rete.
– 413: L'operazione non è riuscita e la dimensione del corpo della richiesta è troppo grande. La dimensione del nuovo firmware OTA supera il limite di dimensione del firmware consentito dal dispositivo.
– 424: Operazione non riuscita e il firmware non può essere scaricato. L'indirizzo URL non è raggiungibile (indirizzo IP non raggiungibile, protocollo HTTP non raggiungibile, firmware inesistente, server non supporta l'intestazione di richiesta Range, ecc.)
– 471: Operazione non riuscita e controllo di integrità del firmware non riuscito. Il checksum SHA256 del nuovo firmware scaricato non corrisponde al valore del campo sha256sum del corpo della richiesta. Il riavvio del dispositivo causerà un problema di bricking.
Nota:
- La dimensione massima del firmware è 508 KB.
- La modalità di lettura flash SPI deve essere DOUT.
Ottieni informazioni sul dispositivo
URL: http://[ip]:[porta]/zeroconf/info
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "",
"data": { }
}
Oggetto vuoto, non è richiesto alcun attributo.
Corpo della risposta
{
"seq": 2,
"error": 0,
"data": {
"switch": "off",
"startup": "off",
"brightness": 30,
"mode": 0,
"brightmin": 10,
"brightmax": 255,
"ssid": "eWeLink",
"otaUnlock": false,
"fwVersion": "3.5.0",
"deviceid": "100000140e",
"bssid": "ec:17:2f:3d:15:e",
"signalStrength": -25
}
}
Nota:
- Monitora e analizza il record DNS TXT del dispositivo per ottenere informazioni sul dispositivo in tempo reale.