Skip to main content

Command line interface for Yandex Smart Home API

Project description

yandex-quasar-cli

PyPI Changelog Tests License

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

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

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

Сейчас она умеет

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

Работа со снапшотами и вывод в краткой форме удобен для формирования списков include_entities/exclude_entites расширения Home Assistant yandex_smart_home

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

Screeecast

Установка

Для установки воспользуйтесь 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: работа с устройством УДЯ

Выводит информацию об устройствах или дает управлять ими Устройство идентифицируется при помощи устройства в УДЯ вида 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yandex-quasar-cli-0.1.3.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

yandex_quasar_cli-0.1.3-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file yandex-quasar-cli-0.1.3.tar.gz.

File metadata

  • Download URL: yandex-quasar-cli-0.1.3.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for yandex-quasar-cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9d49a1ee55d0a3080e4d7f2fa9f2753fa0112cf418d5e2f1d3855457e4d758ca
MD5 30fa7dc128573d90f55f831a8b75a4bd
BLAKE2b-256 ed85701c5e9b951961c64cb13e70a87a43a9f3f86e3111238f60bece211396b7

See more details on using hashes here.

File details

Details for the file yandex_quasar_cli-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for yandex_quasar_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca90ce683cb01e68c37a53b1a20a5e493fabdf0ab6a14de3b52c11c9309e98a5
MD5 d2c3127265759b4b9a3b07db399b720a
BLAKE2b-256 aca32ed79faa0b04c4e5b414f0fa5db04fae6c8d698ab7a43311c5f338daf5eb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page