Code Monkey home page Code Monkey logo

yandex_smart_home's Introduction

Donate

Yandex Smart Home custom component for Home Assistant

Installation

  1. Configure SSL certificate if it was not done already (do not use self-signed certificate)
  2. Update home assistant to 0.96.0 at least
  3. Clone this project into custom_components directory(create if required, path should look like ~/.homeassistant/custom_components/yandex_smart_home)
  4. Configure component via configuration.yaml
  5. Restart home assistant
  6. Create dialog via https://dialogs.yandex.ru/developer/
  7. Add devices via your Yandex app on android/ios

Configuration

Now add the following lines to your configuration.yaml file:

# Example configuration.yaml entry
yandex_smart_home:
  filter:
    include_domains:
      - switch
      - light
    include_entities:
      - media_player.tv
      - media_player.tv_lg
    exclude_entities:
      - light.highlight
  entity_config:
    switch.kitchen:
      name: CUSTOM_NAME_FOR_YANDEX_SMART_HOME
    light.living_room:
      room: LIVING_ROOM
    media_player.tv_lg:
      channel_set_via_media_content_id: true

Configuration variables:

yandex_smart_home:
  (map) (Optional) Configuration options for the Yandex Smart Home integration.

  filter:
    (map) (Optional) description: Filters for entities to include/exclude from Yandex Smart Home.
    include_entities:
      (list) (Optional) description: Entity IDs to include.
    include_domains:
      (list) (Optional) Domains to include.
    exclude_entities:
      (list) (Optional) Entity IDs to exclude.
    exclude_domains:
      (list) (Optional) Domains to exclude.

  entity_config:
    (map) (Optional) Entity specific configuration for Yandex Smart Home.
    ENTITY_ID:
      (map) (Optional) Entity to configure.
      name:
        (string) (Optional) Name of entity to show in Yandex Smart Home.
      room:
        (string) (Optional) Associating this device to a room in Yandex Smart Home
      channel_set_via_media_content_id:
        (boolean) (Optional) (media_player only) Enables ability to set channel
         by number for 
        part of TVs (TVs that support channel change via passing number as media_content_id)
      relative_volume_only:
        (boolean) (Optional) (media_player only) Force disable ability to get/set volume by number

Available domains

The following domains are available to be used:

  • climate (on/off, temperature, mode, fan speed)
  • cover (on/off = close/open)
  • fan (on/off, fan speed)
  • group (on/off)
  • input_boolean (on/off)
  • scene (on/off)
  • script (on/off)
  • light (on/off, brightness, color, color temperature)
  • media_player (on/off, mute/unmute, volume, channels: up/down as prev/next track, get/set media_content_id via channel number for part of TVs(enabled via extra option "channel_set_via_media_content_id: true" in entity configurations))
  • switch (on/off)
  • vacuum (on/off)

Room/Area support

Entities that have not got rooms explicitly set and that have been placed in Home Assistant areas will return room hints to Yandex Smart Home with the devices in those areas.

Create Dialog

Go to https://dialogs.yandex.ru/developer/ and create smart home skill.

Field Value
Endpoint URL https://[YOUR HOME ASSISTANT URL:PORT]/api/yandex_smart_home

For account linking use button at the bottom of skill settings page, fill it using values like below:

Field Value
Client identifier https://social.yandex.net/
API authorization endpoint https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize
Token Endpoint https://[YOUR HOME ASSISTANT URL:PORT]/auth/token
Refreshing an Access Token https://[YOUR HOME ASSISTANT URL:PORT]/auth/token

yandex_smart_home's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.