Выходит, они используют REST?
Нет, WebSocket, а поверх него - JSON.
Пример команды от сервера на включение:
{"action":"update","deviceid":"100008dbxx","apikey":"df6725f6-0b86-4415-xxxx-xxxx","userAgent":"app","sequence":"1505608036953","ts":0,"params":{"switch":"on"},"from":"app"}
Ответ Sonoff:
{
"error":0,
"userAgent":"device",
"apikey":"df6725f6-0b86-4415-xxxx-xxxx",
"deviceid":"100008dbxx",
"sequence":"1505608036953"
}
Информация от Sonoff о включении:
{
"userAgent":"device",
"apikey":"df6725f6-0b86-4415-xxxx-xxxx",
"deviceid":"100008dbxx",
"action":"update",
"params":{
"switch":"off",
"fwVersion":"1.5.5",
"rssi":-31,
"staMac":"5C:CF:7F:xx:xx:xx",
"startup":"off"
}
}
и подтверждение сервера:
{"error":0,"deviceid":"100008db11","apikey":"df6725f6-0b86-4415-xxxx-xxxx"}