Home Assistant и режим выхода из дома.

Пока нахожусь в стадии изучения всего и вся и у меня простая задача, сделать 2 режима, дома и выход из дома и соответсвенно из этих режимов уже выбирать дальнейшее поведение дома.

Начнем с того, что первым делом сделаем глобальный переключатель, от которого и будем в дальнейшем отталкиваться.
В configuration.yaml добавляем строки

input_boolean:
  away_from_home:
    name: Вне дома
    icon: mdi:home-city-outline
        # Значение по умолчанию
    initial: "on"

В пользовательском интерфейсе сделаем так:

- type: horizontal-stack  #Горизонтальная группировка следующих трех карточек
    cards:
        - type: markdown
            content: |
                **Привет, {{user}}!**

                {% if is_state('input_boolean.away_from_home', 'on') %}Режим выхода из дома, на охране {% else %} {% if is_state('script.exit_from_home', 'on') %} Запущен режим выхода из дома, можешь спокойно уходить. {% else %} Все хорошо, снято с охраны {% endif %} {% endif %}

        - type: conditional
            conditions:
                - entity: input_boolean.away_from_home
                    state: "off"
                - entity: script.exit_from_home
                    state: "off"
            card:  
                type: button
                name: Выход из дома
                icon: mdi:home-city-outline  #Иконка
                show_state: false
                tap_action:
                    action: call-service
                    service: script.turn_on
                    service_data:
                        entity_id: script.exit_from_home

        - type: conditional
            conditions:
                - entity: script.exit_from_home
                    state: "on"
            card:  
                type: button
                name: Отменить запуск режима выхода из дома.
                icon: mdi:home-city-outline  #Иконка
                show_state: false
                tap_action:
                    action: call-service
                    service: homeassistant.turn_off
                    service_data:
                        entity_id: script.exit_from_home

        - type: conditional
            conditions:
                - entity: input_boolean.away_from_home
                    state: "on"
            card:                        
                type: button
                name: Вход домой
                icon: mdi:home-outline  #Иконка
                show_state: false
                tap_action:
                    action: call-service
                    service: script.turn_on
                    service_data:
                        entity_id: script.enter_to_home

Этим мы добавили приветствие со статусом и кнопку выхода из дома. При нажатии на эту кнопку запустится скрипт, который будет ниже, он даст отсрочку на 10 минут, для спокойного выхода из дома. Но пока таймер не закончился, состояние этой кнопки будет таким, что при повторном нажатии можно отменить действие. После того как режим будет переведен во вне дома, кнопка изменится на переход в режим дома.

Далее пошли скрипты, это мои варианты, оставлю как есть.

  exit_from_home:
    alias: Выход из дома
    sequence:
      # Это извращение для того что бы заставить Xiaomi gateway 3 пикнуть 2 раза :). Что бы я знал, что автоматизация запустилась.
      - service: alarm_control_panel.alarm_arm_home
        entity_id: alarm_control_panel.gateway_alarm

      - delay: 3

      - service: alarm_control_panel.alarm_disarm
        entity_id: alarm_control_panel.gateway_alarm

      # Даем время на спокойный выход из дома
      - delay:
          minutes: 10

      # Меняем статус нашего переключателя
      - service: input_boolean.turn_on
        entity_id: input_boolean.away_from_home

      # Информируем, что все окей :)
      - service: notify.notify
        data:
          message: "Дом поставлен на охрану"
          title: "Ехай спокойно"

      - service: light.turn_off
        entity_id:
          - light.koridor_light
          - light.kiran_light
      - service: switch.turn_off
        entity_id:
          - switch.tualet_svet
          - switch.vannaya_light
          - switch.skvazina_nasos

  enter_to_home:
    alias: Вход домой
    sequence:
      - choose:
          - conditions:
            - condition: state
              entity_id: input_boolean.away_from_home
              state: "on"
            sequence:
              - choose:
                  - conditions:
                    - condition: state
                      entity_id: binary_sensor.koridor_svet
                      state: "off"
                    sequence:
                      - service: light.turn_on
                        entity_id: light.koridor_light
                        data:
                          brightness: 127
                          color_temp: 387

              - service: input_boolean.turn_off
                entity_id: input_boolean.away_from_home

              - service: light.turn_on
                entity_id: light.koridor_light

              - service: switch.turn_on
                entity_id:
                  - switch.vannaya_light
                  - switch.skvazina_nasos

[ Править ]

@kiranananda