Загрузка данных


- alias: "Ворота: Отслеживание конечного автомата"
  id: garage_door_state_tracker
  mode: restart
  trigger:
    - platform: state
      entity_id: switch.maingaragedoor_state
      id: relay_changed
    - platform: state
      entity_id: binary_sensor.maingaragedoor_garage_door_contact
      to: "on"
      id: reed_closed
    - platform: state
      entity_id: binary_sensor.maingaragedoor_garage_door_contact
      to: "off"
      id: reed_opened
  action:
    - choose:
        # 1. Геркон замкнулся
        - conditions:
            - condition: trigger
              id: reed_closed
          sequence:
            - service: input_select.select_option
              target:
                entity_id: input_select.garage_door_state
              data:
                option: "closed"

        # 2. Геркон разомкнулся (физический пульт)
        - conditions:
            - condition: trigger
              id: reed_opened
            - condition: state
              entity_id: input_select.garage_door_state
              state: "closed"
          sequence:
            - service: input_select.select_option
              target:
                entity_id: input_select.garage_door_state
              data:
                option: "opening"
            - delay: "00:00:15"  # Время полного открытия
            - condition: state
              entity_id: input_select.garage_door_state
              state: "opening"
            - service: input_select.select_option
              target:
                entity_id: input_select.garage_door_state
              data:
                option: "open"

        # 3. Нажали кнопку в интерфейсе HA
        - conditions:
            - condition: trigger
              id: relay_changed
          sequence:
            - choose:
                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "closed"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "opening"
                    - delay: "00:00:15"
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "opening"
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "open"

                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "opening"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "stopped_opening"

                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "open"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "closing"

                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "closing"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "stopped_closing"

                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "stopped_opening"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "closing"

                - conditions:
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "stopped_closing"
                  sequence:
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "opening"
                    - delay: "00:00:15"
                    - condition: state
                      entity_id: input_select.garage_door_state
                      state: "opening"
                    - service: input_select.select_option
                      target:
                        entity_id: input_select.garage_door_state
                      data:
                        option: "open"