menu

SPM-Główny interfejs API HTTP

SPM-Główny interfejs API HTTP

Typ urządzenia to diy_meter(type=diy_meter), a wersja interfejsu API urządzenia to 1 (apivers=1).

Transmisja stanu urządzenia

Gdy zmienia się stan podurządzenia, tekst DNS musi zawierać pole „id”, które jest identyfikatorem chipa podurządzenia. Podurządzenie rozgłasza tylko zmienione pole. Jeśli przełącznik podurządzenia ulegnie zmianie, zgłaszane jest tylko pole switch, a pole „progowe przeciążenie_00” nie jest zgłaszane.

W tym przykładzie dodano podziały wierszy i spacje, aby ułatwić czytanie, ale w rzeczywistości nie ma podziałów wierszy ani spacji.

 //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]
        }
    ]
}
}
Atrybut Typ Opis
przełączniki Szyk Status przełącznika wszystkich kanałów
wylot Numer Numer kanału, [0,3]
przełącznik Smyczkowy on: włącz przełącznik, off: wyłącz przełącznik
subDevCom Numer Stan komunikacji podurządzenia 485. 1: Komunikacja jest prawidłowa, 0: Błąd komunikacji
przeciążenieTrig Szyk Zdarzenie wyzwalające zabezpieczenie przed przeciążeniem. To pole pojawia się w przypadku wystąpienia zdarzenia przeciążenia.
cse7761Com Szyk Błąd komunikacji podurządzenia cse7761. Elementy tablicy są typu liczbowego. Ich liczba wynosi 4. Elementy 0–3 to odpowiednio kanały 1–4. [0,1] 1: Komunikacja jest prawidłowa. 0: Błąd komunikacji.
przegrzanie Szyk Zdarzenie wyzwalające zabezpieczenie przed przegrzaniem podurządzenia cse7761. Elementy tablicy są typu liczbowego. Liczba wynosi 4. Elementy 0–3 oznaczają odpowiednio kanały 1–4. [0,1] 1: Komunikacja jest prawidłowa. 0: Błąd komunikacji. To pole pojawia się w przypadku wystąpienia zdarzenia wyzwalającego przegrzanie.
przekroczenie limitu Szyk Zdarzenie wyzwalające ochronę przed przeciążeniem wartością graniczną. To pole pojawia się w przypadku wystąpienia zdarzenia przeciążenia wartością graniczną.

Pobierz identyfikator urządzenia

URL: http://[ip]:[port]/zeroconf/deviceid
Format wartości zwracanej: json
Metoda: HTTP post

 { 
     "data": {} 
 }

Obiekt pusty, nie jest wymagany żaden atrybut.

Ciało odpowiedzi

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

Dodaj podurządzenie

URL: http://[ip]:[port]/zeroconf/add_sub_devices
Format wartości zwracanej: json
Metoda: HTTP post

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

Obiekt pusty, nie jest wymagany żaden atrybut.

Ciało odpowiedzi

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

Pobierz listę podurządzeń

URL: http://[ip]:[port]/zeroconf/subDevList
Format wartości zwracanej: json
Metoda: HTTP post

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

Obiekt pusty, nie jest wymagany żaden atrybut.

Ciało odpowiedzi

 {
  "seq": 2,
  "error": 0,
  "data": {
    "subDevList": [
      {
        "subDevId": "123456",
        "type": 130
      }
    ]
  }
}
Atrybut Typ Fakultatywny Opis
podIdentyfikator urządzenia Smyczkowy NIE Identyfikator chipa podurządzenia
typ Numer NIE Typ podurządzenia. 130: Podurządzenie czterokanałowe

Przełącznik WŁ./WYŁ.

URL: http://[ip]:[port]/zeroconf/switches
Format wartości zwracanej: json
Metoda: HTTP post.

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "switches": [
      {
        "switch": "on",
        "outlet": 0
      },
      {
        "switch": "on",
        "outlet": 1
      },
      {
        "switch": "on",
        "outlet": 2
      },
      {
        "switch": "on",
        "outlet": 3
      }
    ]
  }
}
Atrybut Typ Fakultatywny Opis
przełącznik Smyczkowy NIE on: włącz przełącznik, off: wyłącz przełącznik
wylot Numer NIE Numer kanału, [0,3]

Zabezpieczenie przed przeciążeniem

URL: http://[ip]:[port]/zeroconf/overload
Format wartości zwracanej: json
Metoda: HTTP post

Treść żądania

 {
    "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":{}
    },
}
Atrybut Typ Fakultatywny Opis
minAP Numer NIE Min. moc, [10,440000], Jednostka: 0,01 W
maxAP Numer NIE Maksymalna moc, [10,440000], Jednostka: 0,01 W
minV Numer NIE Napięcie min., [9000,24000], Jednostka: 0,01 V
maxV Numer NIE Maks. napięcie ładowania, [9000,24000], Jednostka: 0,01 V
maxC Numer NIE Prąd maksymalny, [10,2000], Jednostka: 0,01 A
opóźnienieCzasu Numer NIE Opóźnienie wyłączenia, [0,180]
pl Numer NIE 0: Wyłącz ochronę przed przeciążeniem.
1: Włącz ochronę przed przeciążeniem.
wartość Numer NIE Górna granica lub dolna granica

Notatka:
-_00 reprezentuje wartość kanału 1, _01 reprezentuje wartość kanału 2 itd.
- Jeśli zasilanie, górny próg napięcia i dolny próg są otwarte, górny próg musi być większy od dolnego progu.

Jestem tutaj

URL: http://[ip]:[port]/zeroconf/iAmHere
Format wartości zwracanej: json
Metoda: HTTP post

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

Notatka:
- Funkcja ta umożliwia odnalezienie wskazanego urządzenia podrzędnego za pomocą wskaźnika świetlnego.

Ustaw czas urządzenia

URL: http://[ip]:[port]/zeroconf/time
Format wartości zwracanej: json
Metoda: HTTP post

 {
    "deviceid":"1000001234",
    "data": {
      "timeZone":8,
      "date":"2020-12-15T06:31:14.115Z"
    }
}
Atrybut Typ Fakultatywny Opis
strefa czasowa Numer NIE Strefa czasowa [-12,+14] może być liczbą dziesiętną, np. 7,5
data Smyczkowy NIE UTC

Notatka:
- Dane historyczne podurządzeń zaczną obowiązywać dopiero po ustawieniu informacji o strefie czasowej i nie mają wpływu na statystyki jednorazowe.

Dane historyczne podurządzenia

URL: http://[ip]:[port]/zeroconf/historicalData
Format wartości zwracanej: json
Metoda: HTTP post

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "outlet": 3,
    "dateStart": "2020-07-10 05:30",
    "dateEnd": "2020-07-10 19:10"
  }
}
Atrybut Typ Fakultatywny Opis
wylot Numer NIE Numer kanału, [0,3]
data rozpoczęcia Smyczkowy NIE Godzina rozpoczęcia; format: „rrrr-mm-dd gg:mm”
data zakończenia Smyczkowy NIE Czas zakończenia, format: „rrrr-mm-dd gg:mm”

Odpowiedź

  1. Prawidłowa odpowiedź:

Typ zawartości nagłówka odpowiedzi to application/octet-stream

Zwraca dane w formacie CSV (Comma-Separated Values). Plik zawiera wiersze nagłówka i zwykłego rekordu. Nagłówek tytułu zawiera odpowiadającą mu nazwę pola rekordu. Każdy wiersz zwykłego rekordu to rekord danych, a każdy rekord składa się z 9 pól rozdzielonych przecinkami.

Pola w kolejności od lewej do prawej wyglądają następująco:
| Data | Czas | Gniazdko | Prąd (A) | Napięcie (V) | Moc czynna (W) | Moc bierna (W) | Moc pozorna (W) | Pobór mocy w ciągu 5 minut (W·s) |

np
Użytkownicy wyszukiwali dane w godzinach 00:00 – 00:20 w dniu 10 października 2021 r.

 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. Odpowiedź na błąd:
    Zobacz część ogólną .

Notatka:
- Funkcja ta zostanie udostępniona po wprowadzeniu wersji oprogramowania 1.1.0.
-Obsługa zapytań dotyczących danych do 1 dnia.
np. gdy dateStart wynosi „2020-07-10 05: 30”, dateEnd można wypełnić maksymalnie jako „2020-07-11 00: 00”.

URL: http://[ip]:[port]/zeroconf/monitor
Format wartości zwracanej: json
Metoda: HTTP post

 {
    "deviceid": "100000140e",
    "data": {
        "url": "http://www.123.com",
        "port": 7790,
        "subDevId": "123456",
        "outlet": 3,
        "time":180
    }
}
Atrybut Typ Fakultatywny Opis
adres URL Smyczkowy NIE Adres URL raportowania danych monitorowania w czasie rzeczywistym, format: „ http://www.xxx.com/yyy”
port Numer NIE Port raportowania danych monitorowania w czasie rzeczywistym, [1024,65535]
podIdentyfikator urządzenia Smyczkowy NIE Identyfikator chipa podurządzenia
wylot Numer NIE Numer kanału, [0,3]
czas Numer NIE Czas trwania monitorowania w czasie rzeczywistym, [1,3600], jednostka sekunda

Notatka:
- Adres URL obsługuje wyłącznie połączenia niezaszyfrowane, a format raportu danych monitorujących to żądanie http/post.

Raport urządzenia:

 {
  "subDevId": 123456,
  "outlet": 3,
  "current": 100,
  "voltage": 22000,
  "actPow": 22000,
  "reactPow": 22000,
  "apparentPow": 22000
}
Atrybut Typ Fakultatywny Opis
aktualny Numer NIE Wartość prądu w czasie rzeczywistym, jednostka: 0,01 A
woltaż Numer NIE Wartość napięcia w czasie rzeczywistym, jednostka: 0,01 V
actPow Numer NIE Wartość actPow w czasie rzeczywistym, jednostka: 0,01 W
reactPow Numer NIE Wartość reactPow w czasie rzeczywistym, jednostka: 0,01 W
pozornyPow Numer NIE Wartość mocy pozornej w czasie rzeczywistym, jednostka: 0,01 W

Warunki raportowania:
- Zmiana prądu przekracza 0,03 A.
-Zmiana napięcia przekracza 5 V.
- Zmiana mocy czynnej, mocy biernej lub mocy pozornej przekracza 2 W.

Ustawienie SSID i hasła WiFi

URL: http://[ip]:[port]/zeroconf/wifi
Format wartości zwracanej: json
Metoda: HTTP post

 {
  "deviceid": "100000140e",
  "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

Notatka:
- Nowe ustawienia Wi-Fi zaczną obowiązywać po następnym nawiązaniu połączenia z siecią Wi-Fi.

Oprogramowanie układowe OTA

URL: http://[ip]:[port]/zeroconf/upgrade
Format wartości zwracanej: json
Metoda: HTTP post

 {
  "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"
      }
    ]
  }
}
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 pobranego nowego oprogramowania sprzętowego.
nazwa Smyczkowy NIE Nazwa oprogramowania sprzętowego

Do pola błędu w treści odpowiedzi dodawane są następujące kody błędów:

  1. 404 Nie znaleziono (pobieranie nie powiodło się).
  2. 409 Weryfikacja oprogramowania sprzętowego nie powiodła się.

Uzyskaj zapisy operacji kanałowych

URL: http://[ip]:[port]/zeroconf/record
Format wartości zwracanej: json
Metoda: HTTP post

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "rangeStart": 200,
    "rangeEnd": 229
  }
}
Atrybut Typ Fakultatywny Opis
zakresStart Numer NIE Liczba początkowa rekordów operacji, [0,65535]
koniec zakresu Numer NIE Liczba końcowych rekordów operacji, [0,65535]

Ciało odpowiedzi

 {
    "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
            }
        ]
    }
}
Atrybut Typ Fakultatywny Opis
data Smyczkowy NIE Czas pracy; format: „rrrr-mm-dd gg:mm”
typ trygonometryczny Numer NIE [0,3], 0: Wyzwalacz APP; 1: Wyzwalacz urządzenia; 2: Wyzwalacz zabezpieczenia przed przeciążeniem; * 3: * Wyzwalacz zabezpieczenia przed przegrzaniem
wylot Numer NIE Numer kanału, [0,3]
działanie Numer NIE 0: Kanał zamknięty;
1: Kanał otwarty

Notatka:
- Muszą być spełnione warunki: rangeEnd>=rangeStart i rangeEnd-rangeStart<=29.

Pobierz stan urządzenia

URL: http://[ip]:[port]/zeroconf/getState
Format wartości zwracanej: json
Metoda: HTTP post

np

1. Uzyskaj status bramy:

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

Ciało odpowiedzi

 {
    "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. Uzyskaj status podurządzenia:

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

Ciało odpowiedzi

 {
    "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
            }
        }
    }
}
Atrybut Typ Opis
subDevCom Numer Status komunikacji podurządzenia 485. 1: Komunikacja jest prawidłowa. 0: Błąd komunikacji.
cse7761Com Szyk Błąd komunikacji podurządzenia cse7761. Elementy tablicy są typu liczbowego. Ich liczba wynosi 4. Elementy 0–3 to odpowiednio kanały 1–4. [0,1] 1: Komunikacja jest prawidłowa. 0: Błąd komunikacji.
Wersja fw Smyczkowy Bramka to wersja oprogramowania sprzętowego głównego układu, a podurządzenie to numer wersji oprogramowania sprzętowego podurządzenia.
Wersja FwFutra podukładu Smyczkowy Wersja oprogramowania układowego pod-chipu.
wifiCinnected Bool Sprawdź, czy Wi-Fi jest połączone. Jeśli wartość jest fałszywa, wartości ssid, bssid i signalStrength są nieprawidłowe.
próg Obiekt Zakres progowy.
actPow Obiekt Moc rzeczywista, jednostka: 0,01 W
woltaż Obiekt Napięcie, jednostka: 0,01 V
aktualny Obiekt Prąd, Jednostka: 0,01A
min Numer Minimum
maks Numer Maksym

URL: http://[ip]:[port]/zeroconf/ops_mode
Format wartości zwracanej: json
Metoda: HTTP post

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

Notatka:
“ops_mode”: “ewelink” oznacza powrót do trybu ewelink.

Poprzedni
API MINIR3
Następny
Akcesorium
Ostatnie modyfikacje: 2025-08-19