Обновить

Комментарии 3

1. автоматизацию в ha можно параметризировать (интенты видимо все же нет)
2. можно дополнить экспортом устройства (yandex-smart-home) в ui алисы, а не только голос (дает возможность управления за пределами локальной сети

1. Спасибо, ценно! Параметризовал автоматизацию из 7 раздела статьи. Ниже полный код теперь для скорости вентилятора и нагрева.

Скрытый текст
alias: Голосовое управление вентиляцией и вытяжкой
description: ""
triggers:
  - event_type: yandex_intent
    trigger: event
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: |
              {{ 'вентиляция' in text and number > 0 }}
        sequence:
          - target:
              entity_id: input_number.minibox_target_fs
            data:
              value: "{{ number }}"
            action: input_number.set_value
        alias: "'вентиляция' in text and number > 0"
      - conditions:
          - condition: template
            value_template: |
              {{ 'нагрев' in text and 5 <= number <= 30 }}
        sequence:
          - target:
              entity_id: input_number.minibox_target_temp
            data:
              value: "{{ number }}"
            action: input_number.set_value
        alias: "'нагрев' in text and 5 <= number <= 30"
      - conditions:
          - condition: template
            value_template: "{{ text == 'включи вентиляцию' }}"
        sequence:
          - action: script.unknown_2
            data: {}
        alias: "'включи вентиляцию'"
      - conditions:
          - condition: template
            value_template: "{{ text == 'выключи вентиляцию' }}"
        sequence:
          - action: script.unknown
        alias: "'выключи вентиляцию'"
mode: parallel
max: 10
variables:
  text: "{{ trigger.event.data.text | lower }}"
  number: >
    {% set nums = text | regex_findall('\d+') %} {{ nums[0] | int if nums |
    length > 0 else -1 }}

2. Спасибо за элегантную идею, она работает с некоторыми оговорками. Я попробовал создать вспомогательный элемент template-вентилятор:

Состояние: {{ states('sensor.minibox_current_fs_sensor')|int > 0 }}
Действия при включении и выключении: запуск соответствующих скриптов
Шаблон для получения процентного значения скорости: {{ (states('input_number.minibox_target_fs')|int / 10 * 100) | round(0) }}
Действия при установке процента: 
  action: input_number.set_value
  data:
    value: "{{ (percentage / 100 * 10) | round(0) }}"
  target:
    entity_id: input_number.minibox_target_fs

И затем передать его в умный дом Яндекса через интеграцию Yandex Smart Home. Вкл/выкл работает, скорости меняются, в том числе удалённо, но есть особенность: Алиса умеет управлять только состояниями вентилятора:
"Эко" ставит скорость 1
"Тихий" ставит скорость 3
"Низкая" ставит скорость 4
"Нормальный" ставит скорость 6
"Средняя" ставит скорость 7
"Высокая" ставит скорость 8
"Турбо" ставит скорость 10

Там видимо какие-то предустановленные проценты, которые округляются вот таким образом. Это вполне достаточный набор, неудобно только запоминать специфические названия. На команды с числовым или процентным значением Алиса отвечает что устройство этого не умеет.

В качестве дополнения - прекрасно. Появились дополнительные команды вроде "сделай вентиляцию сильнее" и пр.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации