Menu

API HTTP principale de SPM

API HTTP principale de SPM

Le type d'appareil est diy_meter(type=diy_meter) et la version de l'interface API de l'appareil est 1 (apivers=1).

Diffusion de l'état de l'appareil

Lorsque l'état du sous-périphérique change, le texte DNS doit contenir le champ « id », qui correspond à l'identifiant de la puce du sous-périphérique. Le sous-périphérique diffuse uniquement le champ modifié. Si le commutateur du sous-périphérique est modifié, seul le champ « switches » est signalé, et le champ « seuil overload_00 » n'est pas signalé.

Cet exemple ajoute des sauts de ligne et des espaces pour faciliter la lecture, mais il n'y a en fait aucun saut de ligne ni espace.

 //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 Taper Description
commutateurs Tableau État de commutation de tous les canaux
sortie Nombre Numéro de canal, [0,3]
changer Chaîne on : allumer l'interrupteur, off : éteindre l'interrupteur
sous-comité du développement Nombre État de communication du sous-périphérique 485. 1 : Communication normale, 0 : Erreur de communication
surchargeTrig Tableau Événement déclencheur de protection contre les surcharges. Ce champ apparaît en cas de surcharge.
cse7761Com Tableau Erreur de communication du sous-périphérique cse7761. Les éléments du tableau sont de type numérique. La quantité est de 4. Les éléments 0 à 3 correspondent respectivement aux canaux 1 à 4. [0,1] 1 : Communication normale. 0 : Erreur de communication.
surchauffe Tableau Événement déclencheur de protection contre la surchauffe du sous-appareil cse7761. Les éléments du tableau sont de type numérique. La quantité est de 4. Les éléments 0 à 3 correspondent respectivement aux canaux 1 à 4. [0,1] 1 : Communication normale. 0 : Erreur de communication. Ce champ apparaît en cas d'événement déclencheur de surchauffe.
dépassement de limite Tableau Événement déclencheur de protection contre les surcharges de valeur limite. Ce champ apparaît en cas de surcharge de valeur limite.

Obtenir l'identifiant de l'appareil

URL : http://[ip]:[port]/zeroconf/deviceid
Format de la valeur de retour : json
Méthode : HTTP post

 { 
     "data": {} 
 }

Objet vide, aucun attribut n'est requis.

Corps de la réponse

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

Ajouter un sous-appareil

URL : http://[ip]:[port]/zeroconf/add_sub_devices
Format de la valeur de retour : json
Méthode : HTTP post

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

Objet vide, aucun attribut n'est requis.

Corps de la réponse

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

Obtenir la liste des sous-appareils

URL : http://[ip]:[port]/zeroconf/subDevList
Format de la valeur de retour : json
Méthode : HTTP post

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

Objet vide, aucun attribut n'est requis.

Corps de la réponse

 {
  "seq": 2,
  "error": 0,
  "data": {
    "subDevList": [
      {
        "subDevId": "123456",
        "type": 130
      }
    ]
  }
}
Attribut Taper Facultatif Description
subDevId Chaîne Non ID de la puce du sous-appareil
taper Nombre Non Type de sous-appareil. 130 : Sous-appareil à quatre canaux

Interrupteur marche/arrêt

URL : http://[ip]:[port]/zeroconf/switches
Format de la valeur de retour : json
Méthode : 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 Taper Facultatif Description
changer Chaîne Non on : allumer l'interrupteur, off : éteindre l'interrupteur
sortie Nombre Non Numéro de canal, [0,3]

Protection contre les surcharges

URL : http://[ip]:[port]/zeroconf/overload
Format de la valeur de retour : json
Méthode : HTTP post

Corps de la requête

 {
    "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 Taper Facultatif Description
minAP Nombre Non Puissance minimale, [10 440 000], unité : 0,01 W
maxAP Nombre Non Puissance max., [10 440 000], Unité : 0,01 W
minV Nombre Non Tension minimale, [9000,24000], unité : 0,01 V
maxV Nombre Non Tension max. [9000,24000], unité : 0,01 V
maxC Nombre Non Courant max., [10,2000], Unité : 0,01 A
délai Nombre Non Délai d'extinction, [0,180]
en Nombre Non 0 : Désactiver la protection contre les surcharges.
1 : Activer la protection contre les surcharges.
val Nombre Non Limite supérieure ou limite inférieure

Note:
-_00 représente la valeur du canal 1, _01 représente la valeur du canal 2, et ainsi de suite.
-Lorsque le seuil supérieur de puissance, de tension et le seuil inférieur sont tous ouverts, le seuil supérieur doit être supérieur au seuil inférieur.

Je suis là

URL : http://[ip]:[port]/zeroconf/iAmHere
Format de la valeur de retour : json
Méthode : HTTP post

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

Note:
-Cette fonction permet de trouver le sous-appareil désigné grâce au voyant lumineux.

Régler l'heure de l'appareil

URL : http://[ip]:[port]/zeroconf/time
Format de la valeur de retour : json
Méthode : HTTP post

 {
    "deviceid":"1000001234",
    "data": {
      "timeZone":8,
      "date":"2020-12-15T06:31:14.115Z"
    }
}
Attribut Taper Facultatif Description
fuseau horaire Nombre Non Le fuseau horaire, [-12,+14], peut être un nombre décimal, comme 7,5
date Chaîne Non UTC

Note:
-Les données historiques des sous-appareils ne prendront effet qu'une fois les informations de fuseau horaire définies et n'affecteront pas les statistiques ponctuelles.

Données historiques du sous-appareil

URL : http://[ip]:[port]/zeroconf/historicalData
Format de la valeur de retour : json
Méthode : HTTP post

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "outlet": 3,
    "dateStart": "2020-07-10 05:30",
    "dateEnd": "2020-07-10 19:10"
  }
}
Attribut Taper Facultatif Description
sortie Nombre Non Numéro de canal, [0,3]
date de début Chaîne Non Heure de début ; format : « aaaa-mm-jj hh:mm »
dateFin Chaîne Non Heure de fin, format : « aaaa-mm-jj hh:mm »

Réponse

  1. Réponse correcte :

Le type de contenu de l'en-tête de réponse est application/octet-stream

Renvoie les données d'un fichier CSV (valeurs séparées par des virgules). Le fichier contient un en-tête et des lignes d'enregistrement normales. L'en-tête de titre contient le nom du champ d'enregistrement correspondant. Chaque ligne d'enregistrement normale est un enregistrement de données, et chaque enregistrement est composé de neuf champs, séparés par des virgules.

Les champs dans l'ordre de gauche à droite sont les suivants :
| Date | heure | Prise | Courant (A) | Tension (V) | Puissance réelle (W) | Puissance réactive (W) | Puissance apparente (W) | Consommation électrique sur 5 minutes (W·s) |

par exemple
Les utilisateurs interrogent les données de 00h00 à 00h20 le 10 octobre 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
  1. Réponse d'erreur :
    Se référer à la partie générale .

Note:
-Cette fonction sera publiée après la version 1.1.0 du firmware.
-Prise en charge des données de requête jusqu'à 1 jour.
Par exemple, lorsque la date de début est « 2020-07-10 05: 30 », la date de fin peut être renseignée au maximum comme « 2020-07-11 00: 00 ».

URL : http://[ip]:[port]/zeroconf/monitor
Format de la valeur de retour : json
Méthode : HTTP post

 {
    "deviceid": "100000140e",
    "data": {
        "url": "http://www.123.com",
        "port": 7790,
        "subDevId": "123456",
        "outlet": 3,
        "time":180
    }
}
Attribut Taper Facultatif Description
URL Chaîne Non URL de rapport des données de surveillance en temps réel, format : « http://www.xxx.com/yyy »
port Nombre Non Port de rapport de données de surveillance en temps réel, [1024,65535]
subDevId Chaîne Non ID de la puce du sous-appareil
sortie Nombre Non Numéro de canal, [0,3]
temps Nombre Non Durée de surveillance en temps réel, [1,3600], Unité seconde

Note:
-L'URL ne prend en charge que les connexions non chiffrées et le format du rapport de données de surveillance est une requête http post.

Rapport de l'appareil :

 {
  "subDevId": 123456,
  "outlet": 3,
  "current": 100,
  "voltage": 22000,
  "actPow": 22000,
  "reactPow": 22000,
  "apparentPow": 22000
}
Attribut Taper Facultatif Description
actuel Nombre Non Valeur actuelle en temps réel, unité : 0,01 A
tension Nombre Non Valeur de tension en temps réel, unité : 0,01 V
actPow Nombre Non Valeur actPow en temps réel, unité : 0,01 W
réagirPow Nombre Non Valeur reactPow en temps réel, unité : 0,01 W
apparentPow Nombre Non Valeur de puissance apparente en temps réel, unité : 0,01 W

Conditions de déclaration :
-La variation de courant dépasse 0,03 A.
-La variation de tension dépasse 5 V.
-La puissance active, la puissance réactive ou la variation de puissance apparente dépasse 2 W.

Configuration du SSID et du mot de passe Wi-Fi

URL : http://[ip]:[port]/zeroconf/wifi
Format de la valeur de retour : json
Méthode : HTTP post

 {
  "deviceid": "100000140e",
  "data": {
    "ssid": "eWeLink",
    "password": "WeLoveIoT"
  }
}
Attribut Taper Facultatif Description
ssid Chaîne Non SSID du réseau WiFi auquel l'appareil se connectera
mot de passe Chaîne Non Mot de passe du réseau WiFi auquel l'appareil se connectera

Note:
-Le nouveau paramètre Wi-Fi prendra effet la prochaine fois que le Wi-Fi sera connecté.

Micrologiciel OTA

URL : http://[ip]:[port]/zeroconf/upgrade
Format de la valeur de retour : json
Méthode : 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 Taper Facultatif Description
URL de téléchargement Chaîne Non L'adresse de téléchargement du nouveau firmware prend uniquement en charge le protocole HTTP, le serveur HTTP doit prendre en charge l'en-tête de requête Range.
somme sha256 Chaîne Non Somme de contrôle SHA256 (hachage) du nouveau firmware, elle est utilisée pour vérifier l'intégrité du nouveau firmware téléchargé.
nom Chaîne Non Nom du micrologiciel

Les codes d’échec suivants sont ajoutés au champ d’erreur du corps de la réponse :

  1. 404 Non trouvé (Téléchargement échoué).
  2. 409 La vérification du micrologiciel a échoué.

Obtenir les enregistrements d'opérations de canal

URL : http://[ip]:[port]/zeroconf/record
Format de la valeur de retour : json
Méthode : HTTP post

 {
  "deviceid": "100000140e",
  "data": {
    "subDevId": "123456",
    "rangeStart": 200,
    "rangeEnd": 229
  }
}
Attribut Taper Facultatif Description
plageDébut Nombre Non Nombre de débuts d'enregistrements d'opération, [0,65535]
plageFin Nombre Non Nombre final d'enregistrements d'opérations, [0,65535]

Corps de la réponse

 {
    "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 Taper Facultatif Description
date Chaîne Non Durée de fonctionnement ; format : « aaaa-mm-jj hh:mm »
trigType Nombre Non [0,3], 0 : déclencheur APP ; 1 : déclencheur de l'appareil ; 2 : déclencheur de protection contre les surcharges ; * 3 : * déclencheur de protection contre les surchauffes
sortie Nombre Non Numéro de canal, [0,3]
action Nombre Non 0 : Canal fermé ;
1 : Canal ouvert

Note:
-Les conditions doivent être remplies : rangeEnd>=rangeStart et rangeEnd-rangeStart<=29.

Obtenir l'état de l'appareil

URL : http://[ip]:[port]/zeroconf/getState
Format de la valeur de retour : json
Méthode : HTTP post

par exemple

1. Obtenir l’état de la passerelle :

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

Corps de la réponse

 {
    "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. Obtenir l'état du sous-appareil :

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

Corps de la réponse

 {
    "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 Taper Description
sous-comité du développement Nombre État de communication du sous-périphérique 485. 1 : la communication est normale. 0 : erreur de communication.
cse7761Com Tableau Erreur de communication du sous-périphérique cse7761. Les éléments du tableau sont de type numérique. La quantité est de 4. Les éléments 0 à 3 correspondent respectivement aux canaux 1 à 4. [0,1] 1 : Communication normale. 0 : Erreur de communication.
fwVersion Chaîne La passerelle est la version du micrologiciel de la puce principale et le sous-appareil est le numéro de version du micrologiciel du sous-appareil.
sous-ChipFwVer Chaîne La version du firmware de la sous-puce.
wifiCinected Booléen Vérifiez si le Wi-Fi est connecté. Si la valeur est « false », les valeurs de SSID, BSSID et SignalStrength sont invalides.
seuil Objet Plage de seuil.
actPow Objet Puissance réelle, unité : 0,01 W
tension Objet Tension, unité : 0,01 V
actuel Objet Courant, unité : 0,01 A
min Nombre Minimum
max Nombre Max

URL : http://[ip]:[port]/zeroconf/ops_mode
Format de la valeur de retour : json
Méthode : HTTP post

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

Note:
« ops_mode » : « ewelink » signifie revenir au mode ewelink.

Précédent
API MINIR3
Suivant
Accessoire
Récemment modifié: 2025-08-19