SCratORS/SmartIntercom

Управление домофоном через Алису

xakepShilo opened this issue · 0 comments

Так как умный дом Яндекс имеет свои ограничения, то пришлось немного поизвращаться и... ну как получилось, так получилось.
Но работает без проблем!

smartalice

Примечание:
У меня домофон назван как "smartintercom". Так что обратите внимание на название переключателей его состояния и поменяйте на свое в скрипте, сенсорах и настройках интеграции yandex_smart_home

Для управления домофоном при помощи Умного дома Яндекс должна быть установлена и настроена интеграция yandex_smart_home. Если это уже сделано - пропускаем этот шаг и идем дальше.

Создаем следующий скрипт, который будет устанавливать нужный режим на домофоне:

script:
  smartintercom_mode_set:
    alias: Домофон (установка режима)
    sequence:
    - service: select.select_option
      entity_id: select.smartintercom_modes
      data:
        option: >
          {% if mode == "normal" %}
            Не активен
          {% elif mode == "auto" %}
            Открывать всегда
          {% else %}
            Сброс вызова
          {% endif %}
    mode: queued

Следом создаем пару сенсоров:

sensor:
  - platform: template
    sensors:
      smartintercom_modes:
        value_template: >
          {% if is_state('select.smartintercom_modes', 'Не активен') %}
            normal
          {% elif is_state('select.smartintercom_modes', 'Открывать всегда') %}
            auto
          {% else %}
            quiet
          {% endif %}
      smartintercom_sound_invert:
        value_template: >
          {% if is_state("switch.smartintercom_sound", "on") %}
            off
          {% else %}
            on
          {% endif %}

Первый сенсор "smartintercom_modes" - преобразует режим домофона в режим Умного дома Яндекс, второй - инвертирует состояние переключателя "switch.smartintercom_sound". Сделано по причине того, что Умный дом Яндекс имеет кнопку "Без звука". То есть если она включена, то звука нет. А в плате домофона наоборот, если включено, то звук есть.
Под звуком подразумевается произношение фразы при открытии!

Следом в настройках интеграции "yandex_smart_home", если у вас настроены фильтры, вставляем:

  filter:
    include_entities:
### Прихожая
      - switch.smartintercom_accept_call    # домофон

Еще раз обращаю внимание на название домофона!

Следом, в разделе настроек интеграции " entity_config:" вносим следующие строки:

    switch.smartintercom_accept_call:
      name: Домофон
      room: Прихожая
      type: devices.types.openable
      modes:
        program:
          normal: [normal]
          quiet: [quiet]
          auto: [auto]
      custom_modes:
        program:
          state_entity_id: sensor.smartintercom_modes
          set_mode:
            service: script.smartintercom_mode_set
            data:
              mode: '{{ mode }}'
      custom_toggles:
        backlight:
          state_entity_id: switch.smartintercom_led
          turn_on:
            service: switch.turn_on
            entity_id: switch.smartintercom_led
          turn_off:
            service: switch.turn_off
            entity_id: switch.smartintercom_led
        mute:
          state_entity_id: sensor.smartintercom_sound_invert
          turn_on:
            service: switch.turn_off
            entity_id: switch.smartintercom_sound
          turn_off:
            service: switch.turn_on
            entity_id: switch.smartintercom_sound

И снова обратите внимание на имя домофона!

Сохраняем настройки и обновляем интеграцию. Ну или перезапускаем Home Assistant.

После этого идем в установленный на смарте "Умный дом с Алисой" и там добавляем новое устройство.
Пользуемся!

Рекомендую посмотреть какие команды надо озвучивать Алисе для правильной работы.

Команда "Открыть домофон" - открывает его на один раз. Соответственно наоборот "Закрыть домофон" - отключает однократное открытие.
Команда "Выключить звук на домофоне" - отключает произношение фразы и наоборот - "Включить звук на домофоне"

Можно менять режим фразами:
"Домофон установить режим" или "Домофон установить программу":

"нормальный" - Не активен
"тихий/тихо" - Сброс вызова (тут вопрос к яндексу - слово "тихий" срабатывает не всегда)
"авто" - Открывать всегда

"Включить/выключить подсветку на домофоне" - тут и так понятно, да и не особо-то и нужно.