SPM-Haupt-HTTP-API
Der Gerätetyp ist diy_meter (Typ=diy_meter) und die API-Schnittstellenversion des Geräts ist 1 (APIvers=1).
Gerätestatusübertragung
Ändert sich der Status des Subgeräts, muss die DNS-TXT das Feld „id“ enthalten, das die Chip-ID des Subgeräts darstellt. Das Subgerät sendet nur das geänderte Feld. Ändert sich der Switch des Subgeräts, wird nur das Switch-Feld gemeldet, das Feld „threshold overload_00“ wird nicht gemeldet.
In diesem Beispiel werden Zeilenumbrüche und Leerzeichen hinzugefügt, um die Lesbarkeit zu verbessern. Tatsächlich sind jedoch keine Zeilenumbrüche und Leerzeichen vorhanden.
//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]
}
]
}
}
Attribut | Typ | Beschreibung |
---|---|---|
Schalter | Array | Schaltzustand aller Kanäle |
Steckdose | Nummer | Kanalnummer, [0,3] |
schalten | Zeichenfolge | an: Schalter einschalten, aus: Schalter ausschalten |
Unterentwicklungskommissariat | Nummer | Kommunikationsstatus des Untergeräts 485. 1: Kommunikation ist normal, 0: Kommunikationsfehler |
ÜberlastungsTrig | Array | Überlastschutz-Auslöseereignis. Dieses Feld wird angezeigt, wenn ein Überlastungsereignis vorliegt. |
cse7761Com | Array | Kommunikationsfehler beim Subgerät cse7761. Die Array-Elemente sind Zahlen. Die Anzahl ist 4. Die Elemente 0–3 entsprechen jeweils den Kanälen 1–4. [0,1] 1: Kommunikation ist normal. 0: Kommunikationsfehler. |
Übertemperatur | Array | Auslöseereignis für Übertemperaturschutz des Subgeräts cse7761. Die Array-Elemente sind Zahlen. Die Anzahl beträgt 4. Die Elemente 0–3 entsprechen jeweils den Kanälen 1–4. [0,1] 1: Kommunikation normal. 0: Kommunikationsfehler. Dieses Feld wird angezeigt, wenn ein Übertemperatur-Auslöseereignis vorliegt. |
Überlimit | Array | Auslöseereignis Grenzwertüberlastschutz. Dieses Feld wird angezeigt, wenn ein Grenzwertüberlastungsereignis vorliegt. |
Holen Sie sich die Geräte-ID
URL: http://[ip]:[port]/zeroconf/deviceid
Rückgabewertformat: json
Methode: HTTP-Post
{
"data": {}
}
Leeres Objekt, kein Attribut erforderlich.
Antworttext
{
"seq": 2,
"error": 0,
"data": {
"deviceid": "1000012345"
}
}
Untergerät hinzufügen
URL: http://[ip]:[port]/zeroconf/add_sub_devices
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {}
}
Leeres Objekt, kein Attribut erforderlich.
Antworttext
{
"seq": 2,
"error": 0,
}
Liste der Untergeräte abrufen
URL: http://[ip]:[port]/zeroconf/subDevList
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {}
}
Leeres Objekt, kein Attribut erforderlich.
Antworttext
{
"seq": 2,
"error": 0,
"data": {
"subDevList": [
{
"subDevId": "123456",
"type": 130
}
]
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Untergeräte-ID | Zeichenfolge | NEIN | Chip-ID des Untergeräts |
Typ | Nummer | NEIN | Typ des Subgeräts. 130: Vierkanal-Subgerät |
EIN/AUS-Schalter
URL: http://[ip]:[port]/zeroconf/switches
Rückgabewertformat: json
Methode: HTTP-Post.
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"switches": [
{
"switch": "on",
"outlet": 0
},
{
"switch": "on",
"outlet": 1
},
{
"switch": "on",
"outlet": 2
},
{
"switch": "on",
"outlet": 3
}
]
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
schalten | Zeichenfolge | NEIN | an: Schalter einschalten, aus: Schalter ausschalten |
Steckdose | Nummer | NEIN | Kanalnummer, [0,3] |
Überlastschutz
URL: http://[ip]:[port]/zeroconf/overload
Rückgabewertformat: json
Methode: HTTP-Post
Anforderungstext
{
"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":{}
},
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
minAP | Nummer | NEIN | Min. Leistung, [10,440000], Einheit: 0,01 W |
maxAP | Nummer | NEIN | Max. Leistung, [10,440000], Einheit: 0,01 W |
minV | Nummer | NEIN | Min. Spannung, [9000,24000], Einheit: 0,01 V |
maxV | Nummer | NEIN | Max. Spannung, [9000,24000], Einheit: 0,01 V |
maxC | Nummer | NEIN | Max. Strom, [10,2000], Einheit: 0,01 A |
Verzögerungszeit | Nummer | NEIN | Verzögerung bis zum Ausschalten, [0,180] |
de | Nummer | NEIN | 0: Überlastschutz deaktivieren. 1: Überlastschutz aktivieren. |
Wert | Nummer | NEIN | Obergrenze oder Untergrenze |
Notiz:
-_00 stellt den Wert von Kanal 1 dar, _01 stellt den Wert von Kanal 2 dar und so weiter.
-Wenn die obere und untere Schwelle für Leistung und Spannung alle offen sind, muss die obere Schwelle größer als die untere Schwelle sein.
Ich bin hier
URL: http://[ip]:[port]/zeroconf/iAmHere
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456"
}
}
Notiz:
-Diese Funktion kann das angegebene Untergerät über die Anzeigeleuchte finden.
Gerätezeit einstellen
URL: http://[ip]:[port]/zeroconf/time
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid":"1000001234",
"data": {
"timeZone":8,
"date":"2020-12-15T06:31:14.115Z"
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Zeitzone | Nummer | NEIN | Zeitzone, [-12,+14], kann eine Dezimalzahl sein, z. B. 7,5 |
Datum | Zeichenfolge | NEIN | koordinierte Weltzeit |
Notiz:
- Die historischen Daten der Untergeräte werden erst wirksam, nachdem die Zeitzoneninformationen festgelegt wurden, und haben keinen Einfluss auf die Einzelzeitstatistik.
Historische Daten des Untergeräts
URL: http://[ip]:[port]/zeroconf/historicalData
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"outlet": 3,
"dateStart": "2020-07-10 05:30",
"dateEnd": "2020-07-10 19:10"
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Steckdose | Nummer | NEIN | Kanalnummer,[0,3] |
dateStart | Zeichenfolge | NEIN | Startzeit; Format: „jjjj-mm-tt hh:mm“ |
dateEnd | Zeichenfolge | NEIN | Endzeit, Format: „jjjj-mm-tt hh:mm“ |
Antwort
- Richtige Antwort:
Der Inhaltstyp des Antwortheaders ist application/octet-stream
Gibt Daten im CSV-Format (Comma-Separated Values) zurück. Die Datei enthält Kopfzeilen und normale Datensatzzeilen. Die Titelzeile enthält den entsprechenden Namen des Datensatzfelds. Jede normale Datensatzzeile ist ein Datensatz, und jeder Datensatz besteht aus neun durch Kommas getrennten Feldern.
Die Felder lauten in der Reihenfolge von links nach rechts wie folgt:
| Datum | Uhrzeit | Steckdose | Strom (A) | Spannung (V) | Wirkleistung (W) | Blindleistung (W) | Scheinleistung (W) | 5 Minuten Stromverbrauch (W·s) |
z.B
Benutzer fragen am 10. Oktober 2021 zwischen 00:00 und 00:20 Uhr Daten ab.
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
- Fehlerantwort:
Siehe den allgemeinen Teil .
Notiz:
-Diese Funktion wird nach der Firmware-Version 1.1.0 veröffentlicht.
- Unterstützt Abfragedaten für bis zu 1 Tag.
Wenn dateStart beispielsweise „2020-07-10 05:30“ ist, kann dateEnd höchstens als „2020-07-11 00:00“ ausgefüllt werden.
Informationen zur Echtzeitüberwachung einrichten
URL: http://[ip]:[port]/zeroconf/monitor
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {
"url": "http://www.123.com",
"port": 7790,
"subDevId": "123456",
"outlet": 3,
"time":180
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
URL | Zeichenfolge | NEIN | URL zur Berichterstattung über Echtzeitüberwachungsdaten, Format: „ http://www.xxx.com/yyy“ |
Hafen | Nummer | NEIN | Port für die Meldung von Echtzeitüberwachungsdaten, [1024,65535] |
Untergeräte-ID | Zeichenfolge | NEIN | Chip-ID des Untergeräts |
Steckdose | Nummer | NEIN | Kanalnummer, [0,3] |
Zeit | Nummer | NEIN | Echtzeitüberwachungsdauer, [1,3600], Einheit Sekunde |
Notiz:
-Die URL unterstützt nur unverschlüsselte Verbindungen und das Format des Überwachungsdatenberichts ist eine HTTP-Post-Anforderung.
Gerätebericht:
{
"subDevId": 123456,
"outlet": 3,
"current": 100,
"voltage": 22000,
"actPow": 22000,
"reactPow": 22000,
"apparentPow": 22000
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
aktuell | Nummer | NEIN | Echtzeit-Stromwert, Einheit: 0,01 A |
Stromspannung | Nummer | NEIN | Echtzeit-Spannungswert, Einheit: 0,01 V |
actPow | Nummer | NEIN | Echtzeit-actPow-Wert, Einheit: 0,01 W |
reactPow | Nummer | NEIN | Echtzeit-ReactPow-Wert, Einheit: 0,01 W |
scheinbareLeistung | Nummer | NEIN | Scheinleistungswert in Echtzeit, Einheit: 0,01 W |
Meldebedingungen:
-Die Stromänderung übersteigt 0,03 A.
-Die Spannungsänderung überschreitet 5 V.
-Die Wirkleistungs-, Blindleistungs- oder Scheinleistungsänderung überschreitet 2 W.
WLAN-SSID- und Passworteinstellung
URL: http://[ip]:[port]/zeroconf/wifi
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {
"ssid": "eWeLink",
"password": "WeLoveIoT"
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
SSID | Zeichenfolge | NEIN | SSID des WLAN-Netzwerks, mit dem sich das Gerät verbinden wird |
Passwort | Zeichenfolge | NEIN | Passwort des WLAN-Netzwerks, mit dem sich das Gerät verbinden wird |
Notiz:
-Die neue WLAN-Einstellung wird bei der nächsten WLAN-Verbindung wirksam.
OTA-Firmware
URL: http://[ip]:[port]/zeroconf/upgrade
Rückgabewertformat: json
Methode: 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"
}
]
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Download-URL | Zeichenfolge | NEIN | Die Download-Adresse der neuen Firmware unterstützt nur das HTTP-Protokoll, der HTTP-Server muss den Range-Anforderungsheader unterstützen. |
sha256sum | Zeichenfolge | NEIN | SHA256-Prüfsumme (Hash) der neuen Firmware. Wird verwendet, um die Integrität der heruntergeladenen neuen Firmware zu überprüfen. |
Name | Zeichenfolge | NEIN | Firmwarename |
Die folgenden Fehlercodes werden dem Fehlerfeld des Antworttexts hinzugefügt:
- 404 Nicht gefunden (Download fehlgeschlagen).
- 409 Die Firmware-Verifizierung ist fehlgeschlagen.
Kanalbetriebsdatensätze abrufen
URL: http://[ip]:[port]/zeroconf/record
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid": "100000140e",
"data": {
"subDevId": "123456",
"rangeStart": 200,
"rangeEnd": 229
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Bereichsstart | Nummer | NEIN | Startnummer der Betriebsdatensätze, [0,65535] |
Bereichsende | Nummer | NEIN | Endanzahl der Betriebsdatensätze, [0,65535] |
Antworttext
{
"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
}
]
}
}
Attribut | Typ | Optional | Beschreibung |
---|---|---|---|
Datum | Zeichenfolge | NEIN | Betriebszeit; Format: „jjjj-mm-tt hh:mm“ |
trigType | Nummer | NEIN | [0,3], 0: APP-Trigger; 1: Geräte-Trigger; 2: Überlastschutz-Trigger; * 3: * Übertemperaturschutz-Trigger |
Steckdose | Nummer | NEIN | Kanalnummer, [0,3] |
Aktion | Nummer | NEIN | 0: Kanal geschlossen; 1: Kanal offen |
Notiz:
-Die Bedingungen müssen erfüllt sein: rangeEnd>=rangeStart und rangeEnd-rangeStart<=29.
Gerätestatus abrufen
URL: http://[ip]:[port]/zeroconf/getState
Rückgabewertformat: json
Methode: HTTP-Post
z.B
1. Gateway-Status abrufen:
{
"deviceid":"1000001234",
"data": {
}
}
Antworttext
{
"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. Status des Untergeräts abrufen:
{
"deviceid":"1000001234",
"data": {
"subDevId": "123456"
}
}
Antworttext
{
"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
}
}
}
}
Attribut | Typ | Beschreibung |
---|---|---|
Unterentwicklungskommissariat | Nummer | Kommunikationsstatus des Untergeräts 485. 1: Kommunikation ist normal. 0: Kommunikationsfehler. |
cse7761Com | Array | Kommunikationsfehler beim Subgerät cse7761. Die Array-Elemente sind Zahlen. Die Anzahl ist 4. Die Elemente 0–3 entsprechen jeweils den Kanälen 1–4. [0,1] 1: Kommunikation ist normal. 0: Kommunikationsfehler. |
fwVersion | Zeichenfolge | Das Gateway ist die Firmware-Version des Hauptchips und das Untergerät ist die Firmware-Versionsnummer des Untergeräts. |
subChipFwVer | Zeichenfolge | Die Firmware-Version des Subchips. |
WLAN verbunden | Bool | Überprüfen Sie, ob eine WLAN-Verbindung besteht. Bei „false“ sind die Werte von SSID, BSSID und Signalstärke ungültig. |
Schwelle | Objekt | Schwellenwertbereich. |
actPow | Objekt | Wirkleistung, Einheit: 0,01 W |
Stromspannung | Objekt | Spannung, Einheit: 0,01 V |
aktuell | Objekt | Strom, Einheit: 0,01 A |
Min | Nummer | Minimum |
max | Nummer | Max |
Wechseln Sie in den eWeLink-Modus
URL: http://[ip]:[port]/zeroconf/ops_mode
Rückgabewertformat: json
Methode: HTTP-Post
{
"deviceid":"1000001234",
"data": {
"ops_mode": "ewelink"
}
}
Notiz:
„ops_mode“: „ewelink“ bedeutet, zurück in den Ewelink-Modus zu wechseln.