Есть установленный и настроенный локальный сервер и устройство для управления климатом в помещении, обладающее следующими параметрами:
Название: climatizator
Датчики:
temp - температура в помещении
hum - влажность в помещении
light - уровень освещенности в помещении
Команды:
window - управление окном (один параметр, принимающий значения 0 (окно закрыто) или 1(окно открыто))
humidifier - управление увлажнителем (один параметр, принимающий значения 0 (выключен) или 1(включен))
lamp - управление освещением (два параметра, первый - управление цветом (h - теплый свет, c - холодный свет), второй - управление яркостью (от 0 до 100))

Устройство подключается по USB к локальному серверу и присутствует в системе как последовательный порт /dev/ttyUSB0

Примеры команд начинаются с символа $. Это стандартное приглашение ввода команды в консоли Linux, печатать этот символ при вводе команды с клавиатуры не нужно

Подключение устройства и запрос датчиков и команд

 

1. Подключение устройства
$wliotproxy identify_tty ttyUSB0

В ответ будет выведено сообщение о том, что устройство идентифицировано:
Device identified: id={5a9d7e4b-9b3c-4af6-9737-00fea9b2f095} name=climatizator

2. Запрос списка датчиков
$wliotproxy list_sensors climatizator

В ответ будет выведен список датчиков для устройства
Sensor:
        Name:temp
        Type:f32_sv_nt
        Attribtues:
Sensor:
        Name:hum
        Type:f32_sv_nt
        Attribtues:
Sensor:
        Name:light
        Type:f32_sv_nt
        Attribtues:

3. Запрос списка команд
$wliotproxy list_commands climatizator

Ответ - список команд с параметрами
Commands list with arguments

COMMAND: window
        name: open; constraints: QMap()
COMMAND: humidifier
        name: on; constraints: QMap()
COMMAND: lamp                                                                                                                                                                                                
        name: color; constraints: QMap((titles, hot|cold)(values, h|c))
        name: brightness; constraints: QMap((max, 100))

4. Выполнение команды, например, установка освещения
$wliotproxy exec_command climatizator lamp h 20

5. Добавление датчика temp в базу
$wliotproxy add_storage climatizator temp last_n_values add_global_time --N=1000

6. Авторизация в Alterozoom под аккаунтом some@email.com
$wliotproxy-alterozoom-auth -s some@email.com

В процессе будет запрошен пароль пользователя, пароль не сохраняется.

7. Привязка датчика к аккаунту в Alterozoom
$wliotproxy bind_storage climatizator temp alterozoom email:some@email.com

8. Удаление датчика из базы
$wliotproxy remove_storage climatizator temp