-
Notifications
You must be signed in to change notification settings - Fork 30
Description
Умный Дом Яндекс, как я писал в прошлом подключении управления через Алису, накладывает некоторые ограничения на функционал. Ну и поступила жалоба, что в предыдущих настройках при выключенной функции "Однократного открытия домофона" в программе "Умный дом с Алисой" все переключатели заблокированы. Голосом они управляются, а вот в программе нет.
Будем избавляться от этого недостатка...
Примечание: создание настроек описано с нуля

Для управления домофоном при помощи Умного дома Яндекс должна быть установлена и настроена интеграция 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_accept_call_invert:
value_template: >
{% if is_state("switch.smartintercom_accept_call", "on") %}
off
{% else %}
on
{% endif %}
Первый сенсор "smartintercom_modes" - преобразует режим домофона в режим Умного дома Яндекс, второй - инвертирует состояние переключателя "switch.smartintercom_sound".
Под звуком подразумевается произношение фразы при открытии!
Третий сенсор "smartintercom_accept_call_invert" инвертирует состояние однократного открытия.
Инвертирование сделано по причине того, что имеется различие в состоянии на Яндексе и состоянии домофона.
Создаем бинарный сенсор состояния домофона на основе "switch.smartintercom_accept_call"
template:
- binary_sensor:
- name: "smartintercom state"
device_class: "door"
state: '{{ states("switch.smartintercom_accept_call") }}'
Именно этот сенсор и будет показывать текущее состояние домофона.
В комментарии есть еще одна настройка этого сенсора. Какой вам больше нравится - тот и используйте.
Следом в настройках интеграции "yandex_smart_home", если у вас настроены фильтры, вставляем созданный бинарный сенсор:
filter:
include_entities:
- binary_sensor.smartintercom_state # домофон
В разделе настроек интеграции " entity_config:" вносим следующие строки:
binary_sensor.smartintercom_state:
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:
controls_locked:
state_entity_id: sensor.smartintercom_accept_call_invert
turn_on:
service: switch.turn_off
entity_id: switch.smartintercom_accept_call
turn_off:
service: switch.turn_on
entity_id: switch.smartintercom_accept_call
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
Установленный тип датчика "type: devices.types.openable" - не влияет ни на что, кроме иконки устройства
Проверяем конфигурацию и если все в порядке, то перегружаем Home Assistant.
После этого идем в установленный на смарте "Умный дом с Алисой" и там добавляем новое устройство. Если было сделано по предыдущему руководству, то предварительно удаляем старое устройство.
Пользуемся! Все функции управления черед программу разблокированы всегда.
Теперь по поводу команд!
Вместо команды "Открыть/Закрыть домофон", придется говорить "Разблокировать домофон" и соответственно "Заблокировать домофон". Остальные команды не претерпели никаких изменений.