API HTTP MINIR3
Typ urządzenia to diylight (type=diylight), a wersja interfejsu API urządzenia to 1 (apivers=1).
UWAGA: MINIR3 to urządzenie jednokanałowe, ale wykorzystuje protokół wielokanałowy. Protokół ten może sterować przełącznikami kanałów 1, 2, 3 i 4. MINIR3 wykorzystuje pierwszy kanał.
Przełącznik WŁ./WYŁ.
URL: http://[ip]:[port]/zeroconf/switches
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "1000000001",
"data": {
"switches": [
{ "switch": "on", "outlet": 0 },
{ "switch": "on", "outlet": 1 },
{ "switch": "off", "outlet": 2 },
{ "switch": "off", "outlet": 3 }
]
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
przełącznik | Smyczkowy | NIE | on: włącz przełącznik, off: wyłącz przełącznik |
wylot | Numer | NIE | Zakresy: [0,3]; Reprezentuje kanały: 1-4 |
Przesuwanie się
URL: http://[ip]:[port]/zeroconf/pulses
Format wartości zwracanej: json
Metoda: HTTP post
Treść żądania
{
"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
}
]
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
impulsy | Szyk | NIE | Lista ustawień impulsowych |
puls | Smyczkowy | NIE | wł.: aktywacja funkcji przesuwania; wył.: wyłącz funkcję przesuwania |
szerokość | Numer | Tak | Wymagane, gdy włączony jest „impuls”, długość impulsu, liczba całkowita dodatnia, ms, obsługuje tylko wielokrotności 500 w zakresie 500~3599500 |
przełącznik | Smyczkowy | NIE | Możesz ustawić opcję włączoną lub wyłączoną. Stan przełącznika po zakończeniu impulsowania. Jeśli jest włączona, po wyłączeniu urządzenia, po upływie czasu impulsowania, urządzenie zostanie ponownie włączone. |
Stan włączenia zasilania
URL: http://[ip]:[port]/zeroconf/startups
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "1000000001",
"data": {
"configure": [
{ "startup": "on", "outlet": 0 },
{ "startup": "off", "outlet": 1 },
{ "startup": "off", "outlet": 2 },
{ "startup": "stay", "outlet": 3 }
]
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
uruchomienie | Smyczkowy | NIE | wł.: urządzenie jest włączone po przywróceniu zasilania. wyłączone: urządzenie zostanie wyłączone po przywróceniu zasilania. stay: stan urządzenia pozostaje taki sam jak przed zanikiem zasilania |
Siła sygnału WiFi
URL: http://[ip]:[port]/zeroconf/signal_strength
Format wartości zwracanej: json
Metoda: HTTP post
Treść żądania
{
"deviceid": "",
"data": { }
}
Obiekt pusty, nie jest wymagany żaden atrybut.
Ciało odpowiedzi
{
"seq": 2,
"error": 0,
"data": {
"signalStrength": -67
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
siła sygnału | Numer | NIE | Siła sygnału WiFi aktualnie odbieranego przez urządzenie, liczba całkowita ujemna, dBm |
Ustawienie SSID i hasła WiFi
URL: http://[ip]:[port]/zeroconf/wifi
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "",
"data": {
"ssid": "eWeLink",
"password": "WeLoveIoT"
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
SSID | Smyczkowy | NIE | SSID sieci Wi-Fi, z którą połączy się urządzenie |
hasło | Smyczkowy | NIE | hasło sieci WiFi, z którą połączy się urządzenie |
Odblokowywanie funkcji OTA
URL: http://[ip]:[port]/zeroconf/ota_unlock
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "",
"data": { }
}
Obiekt pusty, nie jest wymagany żaden atrybut.
Do pola błędu w treści odpowiedzi dodawane są następujące kody błędów:
– 500: Operacja nie powiodła się, a urządzenie zawiera błędy. Na przykład błąd identyfikatora urządzenia lub klucza API, który nie został uwierzytelniony przez usługę odblokowywania OTA dostawcy;
– 503: Operacja nie powiodła się i urządzenie nie może zażądać usługi odblokowania OTA producenta. Na przykład urządzenie nie jest połączone z siecią Wi-Fi, nie ma połączenia z internetem, usługa odblokowania OTA producenta jest niedostępna itp.
OTA Nowe oprogramowanie układowe
URL: http://[ip]:[port]/zeroconf/ota_flash
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "",
"data": {
"downloadUrl": "http://192.168.1.184/ota/new_rom.bin",
"sha256sum": "3213b2c34cecbb3bb817030c7f025396b658634c0cf9c4435fc0b52ec9644667"
}
}
Atrybut | Typ | Fakultatywny | Opis |
---|---|---|---|
pobierzUrl | Smyczkowy | NIE | Adres pobierania nowego oprogramowania sprzętowego obsługuje wyłącznie protokół HTTP, serwer HTTP musi obsługiwać nagłówek żądania Range. |
suma sha256 | Smyczkowy | NIE | Suma kontrolna SHA256 (hash) nowego oprogramowania sprzętowego, używana do weryfikacji integralności nowego pobranego oprogramowania sprzętowego |
Do pola błędu w treści odpowiedzi dodawane są następujące kody błędów:
– 403: Operacja nie powiodła się i funkcja OTA nie została odblokowana. Najpierw należy pomyślnie wywołać interfejs „3.2.6 Odblokowanie funkcji OTA”.
– 408: Operacja nie powiodła się i upłynął limit czasu wstępnego pobierania oprogramowania układowego. Możesz spróbować ponownie wywołać ten interfejs po zoptymalizowaniu środowiska sieciowego lub zwiększeniu prędkości sieci.
– 413: Operacja nie powiodła się, a rozmiar treści żądania jest zbyt duży. Rozmiar nowego oprogramowania sprzętowego OTA przekracza limit rozmiaru oprogramowania sprzętowego dozwolony przez urządzenie.
– 424: Operacja nie powiodła się i nie można pobrać oprogramowania sprzętowego. Adres URL jest niedostępny (adres IP jest niedostępny, protokół HTTP jest niedostępny, oprogramowanie sprzętowe nie istnieje, serwer nie obsługuje nagłówka żądania zakresu itp.).
– 471: Operacja nie powiodła się, a sprawdzenie integralności oprogramowania układowego zakończyło się niepowodzeniem. Suma kontrolna SHA256 pobranego nowego oprogramowania układowego nie jest zgodna z wartością pola sha256sum w treści żądania. Ponowne uruchomienie urządzenia spowoduje problem z jego uszkodzeniem.
Notatka:
- Maksymalny rozmiar oprogramowania układowego wynosi 508 KB.
- Tryb odczytu pamięci flash SPI musi być ustawiony na DOUT.
Uzyskaj informacje o urządzeniu
URL: http://[ip]:[port]/zeroconf/info
Format wartości zwracanej: json
Metoda: HTTP post
{
"deviceid": "",
"data": { }
}
Obiekt pusty, nie jest wymagany żaden atrybut.
Ciało odpowiedzi
{
"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
}
}
Notatka:
- Monitoruj i analizuj rekord DNS TXT urządzenia, aby uzyskać informacje o urządzeniu w czasie rzeczywistym.