sst-cloud v0.1.2
SST Cloud
Модуль для работы с устройствами через SST Cloud.
Так сложилось, что ребята прекратили разработку сайта и приложения, наружу болтается только API. Модуль как раз для работы с ним.
У меня дома есть только система контроля протечек, так что поддержка есть только для него. Не стесняйтесь контрибьютить.
Доступ к API
Низкоуровневый
// импортируем модуль для работы с API
const {API} = require('sst-cloud');
// для работы нужен ключ сессии, который пробрасываем в конструктор
const api = new API(
// ключ сессии можно получить через авторизацию
await API.login(/* email */, /* password */)
);
// все остальные методы для получения информации асинхронны
// и возвращают в ответ ту информацию и в том виде, что ее вернул API,
// без дополнительной обработки
const userInfo = await api.user();
console.log(userInfo);
// { pk: 123,
// username: 'xxx',
// email: 'xxx',
// profile: { ... }
// }Методы API:
(static) API.login(String email, String password) ~> String
Авторизация ~> Идентификатор сессии
.user()
Получение информации о текущем пользователе
.houses()
Список домов
.houseById(Number houseId)
Информация о доме по его идентификатору
.networks(Number houseId)
Список сетей в доме
.networkById(Number houseId, Number networkId)
Информация о сети по ее идентификатору
.devices(Number houseId)
Список устройств в доме
.deviceById(Number houseId, Number deviceId)
Информация об устройстве по его идентификатору
.sensors(Number houseId, Number deviceId)
Список беспроводных датчиков, зарегистрированных в устройстве
.counters(Number houseId, Number deviceId)
Информация о счетчиках, зарегистрированных на устройстве
.news()
Список новостей
.newsById(Number newsId)
Новости по идентификатору
Высокоуровневый
// импортируем модуль для работы с API
const {wrapper} = require('sst-cloud');
// получаем корневой объект через авторизацию
const root = await wrapper.login(
/* email */, /* password */
);
// все остальные методы - получают информацию и оборачивают ее в объекты
// все свойства - read-only, все методы - асинхронные
for (const house of await root.houses()) {
console.log(`* ${house.name}`);
for (const device of await house.devices()) {
console.log(` * ${device.name}`);
}
}
// * Дом
// * Санузлы
// * КухняRoot (Сессия)
.houses() ~> Array.<House>
Получить список домов
.houseById(Number houseId) ~> House
Получить информацию о доме по его идентификатору
.news() ~> Array.<News>
Получить список новостей
.newsById(Number newsId) ~> News
Получить новость по ее идентификатору
News (Новость)
idNumberИдентификаторtitleStringЗаголовокbodyStringТекстcreatedDateДата
House (Дом)
idNumberИдентификаторnameStringНазваниеtimezoneStringВременная зонаcreatedDateДата созданияupdatedDateДата изменения
.networks() ~> Array.<Network>
Получить список сетей
.devices() ~> Array.<Device>
Получить список устройств
Device (Устройство)
idNumberИдентификаторhouseIdNumberИдентификатор домаnetworkIdNumberИдентификатор сетиcreatedDateДата созданияupdatedDateДата измененияnameStringНазваниеactiveBooleanФлаг активностиconnectedBooleanФлаг соединения с сетьюtypeDevice.TypesТип устройства
.sensors() ~> Array.<Sensor>
Получить список беспроводных сенсоров
Sensor (Сенсор)
nameStringНазваниеsignalNumberУровень сигналаbatteryNumberУровень заряда батарейкиattentionBooleanИндикатор протечки
Network (Сеть)
idNumberИдентификаторhouseIdNumberИдентификатор домаdeviceIdsArray.<Number>Идентификаторы устройствnameStringНазваниеcreatedDateДата созданияupdatedDateДата изменения