sst-cloud
v0.1.2
Published
sst-cloud.com interface
Downloads
3
Readme
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 (Новость)
id
Number
Идентификаторtitle
String
Заголовокbody
String
Текстcreated
Date
Дата
House (Дом)
id
Number
Идентификаторname
String
Названиеtimezone
String
Временная зонаcreated
Date
Дата созданияupdated
Date
Дата изменения
.networks()
~> Array.<Network>
Получить список сетей
.devices()
~> Array.<Device>
Получить список устройств
Device (Устройство)
id
Number
ИдентификаторhouseId
Number
Идентификатор домаnetworkId
Number
Идентификатор сетиcreated
Date
Дата созданияupdated
Date
Дата измененияname
String
Названиеactive
Boolean
Флаг активностиconnected
Boolean
Флаг соединения с сетьюtype
Device.Types
Тип устройства
.sensors()
~> Array.<Sensor>
Получить список беспроводных сенсоров
Sensor (Сенсор)
name
String
Названиеsignal
Number
Уровень сигналаbattery
Number
Уровень заряда батарейкиattention
Boolean
Индикатор протечки
Network (Сеть)
id
Number
ИдентификаторhouseId
Number
Идентификатор домаdeviceIds
Array.<Number>
Идентификаторы устройствname
String
Названиеcreated
Date
Дата созданияupdated
Date
Дата изменения