API HTTP principale SPM
Il tipo di dispositivo è diy_meter(type=diy_meter) e la versione dell'interfaccia API del dispositivo è 1 (apivers=1).
Trasmissione dello stato del dispositivo
Quando lo stato del sottodispositivo cambia, il TXT DNS deve contenere il campo "id", che è l'[chip id] del sottodispositivo. Il sottodispositivo trasmette solo il campo modificato. Se lo switch del sottodispositivo cambia, viene segnalato solo il campo switches e il campo threshold overload_00 non viene segnalato.
In questo esempio vengono aggiunti spazi e interruzioni di riga per facilitarne la lettura, ma in realtà non ci sono né interruzioni di riga né spazi.
//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]
}
]
}
}
Attributo | Tipo | Descrizione |
---|---|---|
interruttori | Vettore | Cambia lo stato di tutti i canali |
presa | Numero | Numero del canale, [0,3] |
interruttore | Corda | on: accendi l'interruttore, off: spegni l'interruttore |
subDevCom | Numero | Stato di comunicazione del sottodispositivo 485. 1: Comunicazione normale, 0: Errore di comunicazione |
sovraccaricoTrig | Vettore | Evento di attivazione della protezione da sovraccarico. Questo campo viene visualizzato quando si verifica un evento di sovraccarico. |
cse7761Com | Vettore | Errore di comunicazione del sottodispositivo cse7761. Gli elementi dell'array sono di tipo numerico. La quantità è 4. Gli elementi da 0 a 3 corrispondono rispettivamente ai canali 1-4. [0,1] 1: Comunicazione normale. 0: Errore di comunicazione. |
sovratemperatura | Vettore | Evento di attivazione della protezione da sovratemperatura del sottodispositivo cse7761. Gli elementi dell'array sono di tipo numerico. La quantità è 4. Gli elementi da 0 a 3 corrispondono rispettivamente ai canali 1-4. [0,1] 1: Comunicazione normale. 0: Errore di comunicazione. Questo campo viene visualizzato quando si verifica un evento di attivazione da sovratemperatura. |
oltre il limite | Vettore | Evento di attivazione della protezione da sovraccarico del valore limite. Questo campo viene visualizzato quando si verifica un evento di sovraccarico del valore limite. |
Ottieni l'ID del dispositivo
URL: http://[ip]:[porta]/zeroconf/deviceid
Formato del valore restituito: json
Metodo: post HTTP
{
"data": {}
}
Oggetto vuoto, non è richiesto alcun attributo.
Corpo della risposta
{
"seq": 2,
"error": 0,
"data": {
"deviceid": "1000012345"
}
}
Aggiungi sottodispositivo
URL: http://[ip]:[porta]/zeroconf/add_sub_devices
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {}
}
Oggetto vuoto, non è richiesto alcun attributo.
Corpo della risposta
{
"seq": 2,
"error": 0,
}
Ottieni l'elenco dei sottodispositivi
URL: http://[ip]:[porta]/zeroconf/subDevList
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {}
}
Oggetto vuoto, non è richiesto alcun attributo.
Corpo della risposta
{
"seq": 2,
"error": 0,
"data": {
"subDevList": [
{
"subDevId": "123456",
"type": 130
}
]
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
subDevId | Corda | NO | ID chip del sottodispositivo |
tipo | Numero | NO | Tipo di sottodispositivo. 130: Sottodispositivo a quattro canali |
Interruttore ON/OFF
URL: http://[ip]:[porta]/zeroconf/switches
Formato del valore restituito: json
Metodo: HTTP post.
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"switches": [
{
"switch": "on",
"outlet": 0
},
{
"switch": "on",
"outlet": 1
},
{
"switch": "on",
"outlet": 2
},
{
"switch": "on",
"outlet": 3
}
]
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
interruttore | Corda | NO | on: accendi l'interruttore, off: spegni l'interruttore |
presa | Numero | NO | Numero del canale, [0,3] |
Protezione da sovraccarico
URL: http://[ip]:[porta]/zeroconf/overload
Formato del valore restituito: json
Metodo: post HTTP
Corpo della richiesta
{
"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":{}
},
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
minAP | Numero | NO | Potenza minima, [10,440000], Unità: 0,01 W |
AP massimo | Numero | NO | Potenza massima, [10,440000], Unità: 0,01 W |
minV | Numero | NO | Tensione minima, [9000,24000], Unità: 0,01 V |
maxV | Numero | NO | Tensione massima, [9000,24000], Unità: 0,01 V |
maxC | Numero | NO | Corrente massima, [10,2000], Unità: 0,01 A |
ritardo | Numero | NO | Ritardo allo spegnimento, [0,180] |
esso | Numero | NO | 0: Disattiva la protezione da sovraccarico. 1: Abilita la protezione da sovraccarico. |
valore | Numero | NO | Limite superiore o limite inferiore |
Nota:
-_00 rappresenta il valore del canale 1, _01 rappresenta il valore del canale 2 e così via.
-Quando la potenza, la soglia superiore e la soglia inferiore della tensione sono tutte aperte, la soglia superiore deve essere maggiore della soglia inferiore.
Io sono qui
URL: http://[ip]:[porta]/zeroconf/iAmHere
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456"
}
}
Nota:
-Questa funzione può trovare il sotto-dispositivo designato tramite la spia luminosa.
Imposta l'ora del dispositivo
URL: http://[ip]:[porta]/zeroconf/time
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid":"1000001234",
"data": {
"timeZone":8,
"date":"2020-12-15T06:31:14.115Z"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
fuso orario | Numero | NO | Il fuso orario, [-12,+14], può essere un decimale, ad esempio 7,5 |
data | Corda | NO | UTC |
Nota:
- I dati storici dei sottodispositivi avranno effetto solo dopo l'impostazione delle informazioni sul fuso orario e non influiranno sulle statistiche relative a un singolo orario.
Dati storici del sottodispositivo
URL: http://[ip]:[porta]/zeroconf/historicalData
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"outlet": 3,
"dateStart": "2020-07-10 05:30",
"dateEnd": "2020-07-10 19:10"
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
presa | Numero | NO | Numero del canale,[0,3] |
dataInizio | Corda | NO | Ora di inizio; formato: "aaaa-mm-gg hh:mm" |
dataFine | Corda | NO | Ora di fine, formato: "aaaa-mm-gg hh:mm" |
Risposta
- Risposta corretta:
Il Content-Type dell'intestazione di risposta è application/octet-stream
Restituisce i dati di un file CSV (Comma-Separated Values). Il file contiene le righe di intestazione e di record normale. L'intestazione del titolo contiene il nome corrispondente del campo del record. Ogni riga di record normale è un record di dati e ogni record è composto da 9 campi, separati da virgole.
I campi nell'ordine da sinistra a destra sono i seguenti:
| Data | ora | Presa | Corrente (A) | Tensione (V) | Potenza reale (W) | Potenza reattiva (W) | Potenza apparente (W) | Consumo energetico 5 minuti (W·s) |
per esempio
Gli utenti interrogano i dati dalle 00:00 alle 00:20 del 10 ottobre 2021.
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
- Risposta di errore:
Fare riferimento alla parte generale .
Nota:
-Questa funzione verrà rilasciata dopo la versione firmware 1.1.0.
-Supporta i dati delle query fino a 1 giorno.
Ad esempio, quando dateStart è "2020-07-10 05: 30", dateEnd può essere compilato al massimo come "2020-07-11 00: 00".
Informazioni correlate all'impostazione del monitoraggio in tempo reale
URL: http://[ip]:[porta]/zeroconf/monitor
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {
"url": "http://www.123.com",
"port": 7790,
"subDevId": "123456",
"outlet": 3,
"time":180
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
URL | Corda | NO | URL di segnalazione dei dati di monitoraggio in tempo reale, formato: " http://www.xxx.com/yyy" |
porta | Numero | NO | Porta di segnalazione dei dati di monitoraggio in tempo reale, [1024,65535] |
subDevId | Corda | NO | ID chip del sottodispositivo |
presa | Numero | NO | Numero del canale, [0,3] |
tempo | Numero | NO | Durata del monitoraggio in tempo reale, [1,3600], Unità secondo |
Nota:
-L'URL supporta solo connessioni non crittografate e il formato del report dei dati di monitoraggio è http post request.
Rapporto sul dispositivo:
{
"subDevId": 123456,
"outlet": 3,
"current": 100,
"voltage": 22000,
"actPow": 22000,
"reactPow": 22000,
"apparentPow": 22000
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
attuale | Numero | NO | Valore corrente in tempo reale, unità: 0,01 A |
voltaggio | Numero | NO | Valore di tensione in tempo reale, unità: 0,01 V |
actPow | Numero | NO | Valore actPow in tempo reale, unità: 0,01 W |
reagirePow | Numero | NO | Valore reactPow in tempo reale, unità: 0,01 W |
apparentPow | Numero | NO | Valore apparentPow in tempo reale, unità: 0,01 W |
Condizioni di segnalazione:
-La variazione di corrente supera 0,03 A.
-La variazione di tensione supera i 5 V.
- La variazione della potenza attiva, della potenza reattiva o della potenza apparente supera i 2 W.
Impostazione SSID e password WiFi
URL: http://[ip]:[porta]/zeroconf/wifi
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"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 |
Nota:
-La nuova impostazione Wi-Fi avrà effetto la prossima volta che ti connetterai al Wi-Fi.
Firmware OTA
URL: http://[ip]:[porta]/zeroconf/upgrade
Formato del valore restituito: json
Metodo: post HTTP
{
"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"
}
]
}
}
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, utilizzato per verificare l'integrità del nuovo firmware scaricato. |
nome | Corda | NO | Nome del firmware |
I seguenti codici di errore vengono aggiunti al campo di errore del corpo della risposta:
- 404 Non trovato (download fallito).
- 409 Verifica del firmware fallita.
Ottieni i record delle operazioni del canale
URL: http://[ip]:[porta]/zeroconf/record
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"rangeStart": 200,
"rangeEnd": 229
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
intervalloInizio | Numero | NO | Numero iniziale di record di operazioni, [0,65535] |
intervalloEnd | Numero | NO | Numero finale di record di operazioni, [0,65535] |
Corpo della risposta
{
"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
}
]
}
}
Attributo | Tipo | Opzionale | Descrizione |
---|---|---|---|
data | Corda | NO | Tempo di funzionamento; formato: “aaaa-mm-gg hh:mm” |
trigType | Numero | NO | [0,3], 0: Trigger APP; 1: Trigger dispositivo; 2: Trigger protezione sovraccarico; * 3: * Trigger protezione sovratemperatura |
presa | Numero | NO | Numero del canale, [0,3] |
azione | Numero | NO | 0: Canale chiuso; 1: Canale aperto |
Nota:
- Devono essere soddisfatte le condizioni: rangeEnd>=rangeStart e rangeEnd-rangeStart<=29.
Ottieni lo stato del dispositivo
URL: http://[ip]:[porta]/zeroconf/getState
Formato del valore restituito: json
Metodo: post HTTP
per esempio
1. Ottieni lo stato del gateway:
{
"deviceid":"1000001234",
"data": {
}
}
Corpo della risposta
{
"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. Ottieni lo stato del sottodispositivo:
{
"deviceid":"1000001234",
"data": {
"subDevId": "123456"
}
}
Corpo della risposta
{
"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
}
}
}
}
Attributo | Tipo | Descrizione |
---|---|---|
subDevCom | Numero | Stato di comunicazione del sottodispositivo 485. 1: Comunicazione normale. 0: Errore di comunicazione. |
cse7761Com | Vettore | Errore di comunicazione del sottodispositivo cse7761. Gli elementi dell'array sono di tipo numerico. La quantità è 4. Gli elementi da 0 a 3 corrispondono rispettivamente ai canali 1-4. [0,1] 1: Comunicazione normale. 0: Errore di comunicazione. |
fwVersion | Corda | Il gateway è la versione del firmware del chip principale, mentre il sottodispositivo è il numero di versione del firmware del sottodispositivo. |
subChipFwVer | Corda | La versione del firmware del sub-chip. |
wifiCinned | Bool | Controlla se il Wi-Fi è connesso. Se impostato su False, i valori di SSID, BSSID e SignalStrength non sono validi. |
soglia | Oggetto | Intervallo di soglia. |
actPow | Oggetto | Potenza reale, unità: 0,01 W |
voltaggio | Oggetto | Tensione, unità: 0,01 V |
attuale | Oggetto | Corrente, unità: 0,01 A |
minimo | Numero | Minimo |
massimo | Numero | Massimo |
Passa alla modalità eWeLink
URL: http://[ip]:[porta]/zeroconf/ops_mode
Formato del valore restituito: json
Metodo: post HTTP
{
"deviceid":"1000001234",
"data": {
"ops_mode": "ewelink"
}
}
Nota:
“ops_mode”: “ewelink” significa tornare alla modalità ewelink.