yandex-quasar-cli


Nameyandex-quasar-cli JSON
Version 0.1.3 PyPI version JSON
download
home_pagehttps://github.com/p1ne/yandex-quasar-cli
SummaryCommand line interface for Yandex Smart Home API
upload_time2024-03-12 17:47:46
maintainer
docs_urlNone
authorp1ne
requires_python>=3.10
licenseApache-2.0
keywords yandex quasar smart home cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # yandex-quasar-cli

[![PyPI](https://img.shields.io/pypi/v/yandex-quasar-cli.svg)](https://pypi.org/project/quasar-cli/)
[![Changelog](https://img.shields.io/github/v/release/p1ne/yandex-quasar-cli?include_prereleases&label=changelog)](https://github.com/p1ne/quasar-cli/releases)
[![Tests](https://github.com/p1ne/yandex-quasar-cli/actions/workflows/test.yml/badge.svg)](https://github.com/p1ne/quasar-cli/actions/workflows/test.yml)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/p1ne/quasar-cli/blob/master/LICENSE)

Интерфейс командной строки для Yandex Smart Home API

/ Далее по тексту - УДЯ - Умный Дом Яндекса /

Утилита работает с УДЯ через командную строку, конечная цель - уметь то же, что умеет Web-интерфейс Яндекс Quasar

Сейчас она умеет
 - выводить информацию о сущностях УДЯ (устройствах, комнатах, ... ) в текстовом или TSV форматах
 - выводить информацию об отдельно взятом устройстве
 - удалять устройство по его ID
 - включать/выключать устройства, имеющие capability "выключатель"
 - сохранять снапшот - слепок информации о текущем состоянии сущностей УДЯ
 - сравнивать текущее состояние сущностей УДЯ с сохраненным снапшотом и выводить сравнение в разных форматах
   - полное сравнение
   - сравнение за исключением изменений в properties и capabilities
   - краткая форма со списком удаленных и добавленных устройств

Работа со снапшотами и вывод в краткой форме удобен для формирования списков include_entities/exclude_entites расширения
Home Assistant [yandex_smart_home](https://github.com/dext0r/yandex_smart_home)

Утилита находится на ранних этапах развития, и точно содержит ошибки и недоработки, багрепорты и пулл реквесты
приветствуются

![Screeecast](quasar.gif)

## Установка

Для установки воспользуйтесь `pip`:

    pip install yandex-quasar-cli

## Использование

Для запуска используйте либо прямой вызов команды:

    yandex-quasar-cli --help

Либо запуск через модуль:

    python -m yandex_quasar_cli --help

### Команды верхнего уровня

| Команда                                       | Что делает                                  |
|-----------------------------------------------|---------------------------------------------|
| ```yandex-quasar-cli quasar```                | Получение общей информации о сущностях УДЯ  |
| ```yandex-quasar-cli device```                | Работа с отдельным устройством  |
| ```yandex-quasar-cli oauth```                 | Работа с ключом OAuth  |
| ```yandex-quasar-cli snapshots```             | Работа со снапшотами состояния  |

### ```oauth```: работа с ключом OAuth

Ключ OAuth обязателен для получения доступа к УДЯ через API Яндекса. Все команды утилиты, кроме help и собственно oauth
требуют валидного ключа

Команды:

| Команда                                       | Что делает                                                |
|-----------------------------------------------|-----------------------------------------------------------|
| ```oauth help```                              | Вывод справки о том, как получить OAuth ключ к своему УДЯ |
| ```oauth save-key <key>```  | Сохранить OAuth ключ в конфигурационном файле             |
| ```oauth print-key <key>``` | Вывести ранее сохраненный OAuth ключ в консоль            |

### ```quasar```: получение информации о сущностях УДЯ

Выводит информацию о сущностях УДЯ в текстовом или табличном TSV формате

#### Команды:

| Команда                    | Что делает                              |
|----------------------------|-----------------------------------------|
| ```quasar <object-type>``` | Общий формат команды                    |
| ```quasar devices```       | Информация об устройствах               |
| ```quasar groups```        | Информация о группах                    |
| ```quasar households```    | Информация о домах                      |
| ```quasar rooms```         | Информация о комнатах                   |
| ```quasar scenarios```     | Информация о сценариях                  |

#### Опции:

```--tsv``` Вывод информации в табличном TSV формате

| Команда                    | Что делает                              |
|----------------------------|-----------------------------------------|
| ```quasar devices --tsv``` | Информация об устройствах в формате TSV |

### ```devices```: работа с устройством УДЯ

Выводит информацию об устройствах или дает управлять ими
Устройство идентифицируется при помощи <id> устройства в УДЯ вида ece1632c-0e22-42ba-bbef-1c7ff107bd29. 
Id может быть получен командой ```quasar devices```

#### Команды:

| Команда                      | Что делает                                                                 |
|------------------------------|----------------------------------------------------------------------------|
| ```device info <id>```       | Информация об устройстве с указанным id                                    |
| ```device delete <id>```     | Удаление устройства с указанным id                                         |
| ```device switch-on <id>```  | Включение устройства с указанным id, если оно работает как выключатель     |
| ```device switch-off <id>``` | Выключение устройства с указанным id, если оно работает как выключатель    |

#### Опции:

```--tsv``` Вывод информации в табличном TSV формате
```--ext``` (только для команды delete) - используется external id в качестве аргумента удаления

| Команда                 | Что делает                              |
|-------------------------|-----------------------------------------|
| ```device <id> --tsv``` | Информация об устройствах в формате TSV |

### ```snapshot```: работа со слепками состояния УДЯ

Позволяет сохранять состояние всех сущностей УДЯ на текущий момент времени в конфигурационном файле и позже сравнивать
новое состояние сущностей УДЯ с сохраненным. Удобно для отладки, а также для генерации списков устройств для 
Home Assistant
Вывод либо имеет структуру, похожую на JSON формат Yandex API, либо перечисляет добавленные или удаленные сущности

#### Команды:

| Команда                      | Что делает                                                                 |
|------------------------------|----------------------------------------------------------------------------|
| ```snapshot save```          | Сохранение слепка текущего состояния УДЯ. Предыдущий слепок перезатирается |
| ```snapshot compare```       | Сравнение текущего состояния УДЯ с сохраненным слепком                     |

#### Опции команды ```snapshot compare```:

| Команда                      | Что делает                                                                                 |
|------------------------------|--------------------------------------------------------------------------------------------|
| ```snapshot compare```       | Сравнение текущего состояния УДЯ с сохраненным слепком                                     |
| ```snapshot compare --no-props-caps```      | Сравнение без текущих значений датчиков                                                    |
| ```snapshot compare --full```      | Полное сравнение (выдает только различающиеся поля объектов)                               |
| ```snapshot compare --external-ids```      | Вывод списка external id добавленных и удаленных устройств (с префиксами +/-               |
| ```snapshot compare --ids```       | Вывод списка external id и internal id добавленных и удаленных устройств (с префиксами +/- |

# Помочь с разработкой

Для того, чтобы поучаствовать в разработке, скачайте себе исходный код, после чего настройте окружение venv:

    cd yandex-quasar-cli
    python -m venv venv
    source venv/bin/activate

Установите зависимости:

    pip install -e '.[test]'

Для запуска тестов (пока их нет):

    pytest

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/p1ne/yandex-quasar-cli",
    "name": "yandex-quasar-cli",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "yandex,quasar,smart home,cli",
    "author": "p1ne",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/ed/85/701c5e9b951961c64cb13e70a87a43a9f3f86e3111238f60bece211396b7/yandex-quasar-cli-0.1.3.tar.gz",
    "platform": null,
    "description": "# yandex-quasar-cli\n\n[![PyPI](https://img.shields.io/pypi/v/yandex-quasar-cli.svg)](https://pypi.org/project/quasar-cli/)\n[![Changelog](https://img.shields.io/github/v/release/p1ne/yandex-quasar-cli?include_prereleases&label=changelog)](https://github.com/p1ne/quasar-cli/releases)\n[![Tests](https://github.com/p1ne/yandex-quasar-cli/actions/workflows/test.yml/badge.svg)](https://github.com/p1ne/quasar-cli/actions/workflows/test.yml)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/p1ne/quasar-cli/blob/master/LICENSE)\n\n\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f Yandex Smart Home API\n\n/ \u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 - \u0423\u0414\u042f - \u0423\u043c\u043d\u044b\u0439 \u0414\u043e\u043c \u042f\u043d\u0434\u0435\u043a\u0441\u0430 /\n\n\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0423\u0414\u042f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0446\u0435\u043b\u044c - \u0443\u043c\u0435\u0442\u044c \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u0443\u043c\u0435\u0435\u0442 Web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u042f\u043d\u0434\u0435\u043a\u0441 Quasar\n\n\u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u0430 \u0443\u043c\u0435\u0435\u0442\n - \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445 \u0423\u0414\u042f (\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u043a\u043e\u043c\u043d\u0430\u0442\u0430\u0445, ... ) \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0438\u043b\u0438 TSV \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445\n - \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u0442\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435\n - \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e \u0435\u0433\u043e ID\n - \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 capability \"\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c\"\n - \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043d\u0430\u043f\u0448\u043e\u0442 - \u0441\u043b\u0435\u043f\u043e\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0423\u0414\u042f\n - \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0423\u0414\u042f \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u043e\u043c \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445\n   - \u043f\u043e\u043b\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\n   - \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 properties \u0438 capabilities\n   - \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\n\n\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u0430\u043c\u0438 \u0438 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043a\u0440\u0430\u0442\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 include_entities/exclude_entites \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\nHome Assistant [yandex_smart_home](https://github.com/dext0r/yandex_smart_home)\n\n\u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u0438 \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0430\u0433\u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0438 \u043f\u0443\u043b\u043b \u0440\u0435\u043a\u0432\u0435\u0441\u0442\u044b\n\u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f\n\n![Screeecast](quasar.gif)\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c `pip`:\n\n    pip install yandex-quasar-cli\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043b\u0438\u0431\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n    yandex-quasar-cli --help\n\n\u041b\u0438\u0431\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0434\u0443\u043b\u044c:\n\n    python -m yandex_quasar_cli --help\n\n### \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                                       | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                                  |\n|-----------------------------------------------|---------------------------------------------|\n| ```yandex-quasar-cli quasar```                | \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445 \u0423\u0414\u042f  |\n| ```yandex-quasar-cli device```                | \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c  |\n| ```yandex-quasar-cli oauth```                 | \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c OAuth  |\n| ```yandex-quasar-cli snapshots```             | \u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f  |\n\n### ```oauth```: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c OAuth\n\n\u041a\u043b\u044e\u0447 OAuth \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0423\u0414\u042f \u0447\u0435\u0440\u0435\u0437 API \u042f\u043d\u0434\u0435\u043a\u0441\u0430. \u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u044b, \u043a\u0440\u043e\u043c\u0435 help \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e oauth\n\u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430\n\n\u041a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                                       | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                                                |\n|-----------------------------------------------|-----------------------------------------------------------|\n| ```oauth help```                              | \u0412\u044b\u0432\u043e\u0434 \u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c OAuth \u043a\u043b\u044e\u0447 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 \u0423\u0414\u042f |\n| ```oauth save-key <key>```  | \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c OAuth \u043a\u043b\u044e\u0447 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435             |\n| ```oauth print-key <key>``` | \u0412\u044b\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 OAuth \u043a\u043b\u044e\u0447 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c            |\n\n### ```quasar```: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445 \u0423\u0414\u042f\n\n\u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445 \u0423\u0414\u042f \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0438\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u043c TSV \u0444\u043e\u0440\u043c\u0430\u0442\u0435\n\n#### \u041a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                    | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                              |\n|----------------------------|-----------------------------------------|\n| ```quasar <object-type>``` | \u041e\u0431\u0449\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b                    |\n| ```quasar devices```       | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445               |\n| ```quasar groups```        | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0433\u0440\u0443\u043f\u043f\u0430\u0445                    |\n| ```quasar households```    | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u043e\u043c\u0430\u0445                      |\n| ```quasar rooms```         | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043e\u043c\u043d\u0430\u0442\u0430\u0445                   |\n| ```quasar scenarios```     | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445                  |\n\n#### \u041e\u043f\u0446\u0438\u0438:\n\n```--tsv``` \u0412\u044b\u0432\u043e\u0434 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u043c TSV \u0444\u043e\u0440\u043c\u0430\u0442\u0435\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                    | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                              |\n|----------------------------|-----------------------------------------|\n| ```quasar devices --tsv``` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 TSV |\n\n### ```devices```: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0423\u0414\u042f\n\n\u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438\u043b\u0438 \u0434\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438\n\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <id> \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0423\u0414\u042f \u0432\u0438\u0434\u0430 ece1632c-0e22-42ba-bbef-1c7ff107bd29. \nId \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 ```quasar devices```\n\n#### \u041a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                      | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                                                                 |\n|------------------------------|----------------------------------------------------------------------------|\n| ```device info <id>```       | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c id                                    |\n| ```device delete <id>```     | \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c id                                         |\n| ```device switch-on <id>```  | \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c id, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c     |\n| ```device switch-off <id>``` | \u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c id, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c    |\n\n#### \u041e\u043f\u0446\u0438\u0438:\n\n```--tsv``` \u0412\u044b\u0432\u043e\u0434 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u043c TSV \u0444\u043e\u0440\u043c\u0430\u0442\u0435\n```--ext``` (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b delete) - \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f external id \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                 | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                              |\n|-------------------------|-----------------------------------------|\n| ```device <id> --tsv``` | \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 TSV |\n\n### ```snapshot```: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u043b\u0435\u043f\u043a\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0423\u0414\u042f\n\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0423\u0414\u042f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438 \u043f\u043e\u0437\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c\n\u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0423\u0414\u042f \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c. \u0423\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \nHome Assistant\n\u0412\u044b\u0432\u043e\u0434 \u043b\u0438\u0431\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u043f\u043e\u0445\u043e\u0436\u0443\u044e \u043d\u0430 JSON \u0444\u043e\u0440\u043c\u0430\u0442 Yandex API, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438\n\n#### \u041a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                      | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                                                                 |\n|------------------------------|----------------------------------------------------------------------------|\n| ```snapshot save```          | \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u043f\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0423\u0414\u042f. \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0441\u043b\u0435\u043f\u043e\u043a \u043f\u0435\u0440\u0435\u0437\u0430\u0442\u0438\u0440\u0430\u0435\u0442\u0441\u044f |\n| ```snapshot compare```       | \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0423\u0414\u042f \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0441\u043b\u0435\u043f\u043a\u043e\u043c                     |\n\n#### \u041e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b ```snapshot compare```:\n\n| \u041a\u043e\u043c\u0430\u043d\u0434\u0430                      | \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442                                                                                 |\n|------------------------------|--------------------------------------------------------------------------------------------|\n| ```snapshot compare```       | \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0423\u0414\u042f \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0441\u043b\u0435\u043f\u043a\u043e\u043c                                     |\n| ```snapshot compare --no-props-caps```      | \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432                                                    |\n| ```snapshot compare --full```      | \u041f\u043e\u043b\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 (\u0432\u044b\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432)                               |\n| ```snapshot compare --external-ids```      | \u0412\u044b\u0432\u043e\u0434 \u0441\u043f\u0438\u0441\u043a\u0430 external id \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 (\u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u043c\u0438 +/-               |\n| ```snapshot compare --ids```       | \u0412\u044b\u0432\u043e\u0434 \u0441\u043f\u0438\u0441\u043a\u0430 external id \u0438 internal id \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 (\u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u043c\u0438 +/- |\n\n# \u041f\u043e\u043c\u043e\u0447\u044c \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439\n\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441\u0435\u0431\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 venv:\n\n    cd yandex-quasar-cli\n    python -m venv venv\n    source venv/bin/activate\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:\n\n    pip install -e '.[test]'\n\n\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 (\u043f\u043e\u043a\u0430 \u0438\u0445 \u043d\u0435\u0442):\n\n    pytest\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Command line interface for Yandex Smart Home API",
    "version": "0.1.3",
    "project_urls": {
        "CI": "https://github.com/p1ne/yandex-quasar-cli/actions",
        "Changelog": "https://github.com/p1ne/yandex-quasar-cli/releases",
        "Homepage": "https://github.com/p1ne/yandex-quasar-cli",
        "Issues": "https://github.com/p1ne/yandex-quasar-cli/issues"
    },
    "split_keywords": [
        "yandex",
        "quasar",
        "smart home",
        "cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aca32ed79faa0b04c4e5b414f0fa5db04fae6c8d698ab7a43311c5f338daf5eb",
                "md5": "d2c3127265759b4b9a3b07db399b720a",
                "sha256": "ca90ce683cb01e68c37a53b1a20a5e493fabdf0ab6a14de3b52c11c9309e98a5"
            },
            "downloads": -1,
            "filename": "yandex_quasar_cli-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d2c3127265759b4b9a3b07db399b720a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 15748,
            "upload_time": "2024-03-12T17:47:43",
            "upload_time_iso_8601": "2024-03-12T17:47:43.903986Z",
            "url": "https://files.pythonhosted.org/packages/ac/a3/2ed79faa0b04c4e5b414f0fa5db04fae6c8d698ab7a43311c5f338daf5eb/yandex_quasar_cli-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ed85701c5e9b951961c64cb13e70a87a43a9f3f86e3111238f60bece211396b7",
                "md5": "30fa7dc128573d90f55f831a8b75a4bd",
                "sha256": "9d49a1ee55d0a3080e4d7f2fa9f2753fa0112cf418d5e2f1d3855457e4d758ca"
            },
            "downloads": -1,
            "filename": "yandex-quasar-cli-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "30fa7dc128573d90f55f831a8b75a4bd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 16234,
            "upload_time": "2024-03-12T17:47:46",
            "upload_time_iso_8601": "2024-03-12T17:47:46.781131Z",
            "url": "https://files.pythonhosted.org/packages/ed/85/701c5e9b951961c64cb13e70a87a43a9f3f86e3111238f60bece211396b7/yandex-quasar-cli-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-12 17:47:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "p1ne",
    "github_project": "yandex-quasar-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "yandex-quasar-cli"
}
        
Elapsed time: 3.50770s