Модуль для работы с устройствами через SST Cloud.
Так сложилось, что ребята прекратили разработку сайта и приложения, наружу болтается только 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}`);
}
}
// * Дом
// * Санузлы
// * Кухня
.houses()
~> Array.<House>
Получить список домов
.houseById(Number houseId)
~> House
Получить информацию о доме по его идентификатору
.news()
~> Array.<News>
Получить список новостей
.newsById(Number newsId)
~> News
Получить новость по ее идентификатору
id
Number
Идентификаторtitle
String
Заголовокbody
String
Текстcreated
Date
Дата
id
Number
Идентификаторname
String
Названиеtimezone
String
Временная зонаcreated
Date
Дата созданияupdated
Date
Дата изменения
.networks()
~> Array.<Network>
Получить список сетей
.devices()
~> Array.<Device>
Получить список устройств
id
Number
ИдентификаторhouseId
Number
Идентификатор домаnetworkId
Number
Идентификатор сетиcreated
Date
Дата созданияupdated
Date
Дата измененияname
String
Названиеactive
Boolean
Флаг активностиconnected
Boolean
Флаг соединения с сетьюtype
Device.Types
Тип устройства
.sensors()
~> Array.<Sensor>
Получить список беспроводных сенсоров
name
String
Названиеsignal
Number
Уровень сигналаbattery
Number
Уровень заряда батарейкиattention
Boolean
Индикатор протечки
id
Number
ИдентификаторhouseId
Number
Идентификатор домаdeviceIds
Array.<Number>
Идентификаторы устройствname
String
Названиеcreated
Date
Дата созданияupdated
Date
Дата изменения