씬(장면,Scenes)


특정 엔티티가 원하는 상태를 설정하는 씬(장면,scene)을 만들 수 있습니다. 예를 들어 씬에서 조명 A를 켜고 조명 B를 밝게 빨간색으로 지정하도록 할 수 있습니다.

# Example configuration.yaml entry
scene:
  - name: Romantic
    entities:
      light.tv_back_light: on
      light.ceiling:
        state: on
        xy_color: [0.33, 0.66]
        brightness: 200
  - name: Movies
    entities:
      light.tv_back_light:
        state: on
        brightness: 125
      light.ceiling: off
      media_player.sony_bravia_tv:
        state: on
        source: HDMI 1
        state: on

Configuration Variables

name

(string)(Required)

친숙한 씬 이름.

entities

(list)(Required)

제어할 엔티티 및 원하는 상태.

다음과 같이, 각각의 entity_id 상태를 정의하는 두 가지 방법이 있습니다

  • 엔티티와 직접 state를 정의하십시오. 반드시 state를 정의해야합니다.
  • 속성으로 복잡한 상태를 정의하십시오. developer-tools-> state 에서 특정 엔티티에 사용 가능한 모든 속성을 볼 수 있습니다.

scene.turn_on 서비스를 사용하지 않고 씬을 활성화 할 수 있습니다 (scene.turn_off ‘서비스 없음’).

# Example automation
automation:
  trigger:
    platform: state
    entity_id: device_tracker.sweetheart
    from: "not_home"
    to: "home"
  action:
    service: scene.turn_on
    entity_id: scene.romantic

씬을 정의하지 않고 적용

scene.apply 서비스를 사용하면 설정을 통해 먼저 씬을 정의하지 않고도 씬을 적용 할 수 있습니다. 대신 서비스 데이터의 일부로 상태를 전달합니다. 데이터의 형식은 설정에서 entities 필드와 동일합니다.

# Example automation
automation:
  trigger:
    platform: state
    entity_id: device_tracker.sweetheart
    from: "not_home"
    to: "home"
  action:
    service: scene.apply
    data:
      entities:
        light.tv_back_light:
          state: on
          brightness: 100
        light.ceiling: off
        media_player.sony_bravia_tv:
          state: on
          source: HDMI 1

씬 새로고침

씬 설정을 변경할 때마다 scene.reload 서비스를 호출하여 씬을 다시로드 할 수 있습니다.

즉석에서 씬 만들기

scene.create 서비스를 호출하여 별도 설정할 필요없이 새 씬을 만듭니다. 이 씬은 설정을 다시로드한 후에 삭제됩니다.

공백 대신 밑줄로 소문자로 scene_id를 전달해야합니다. 씬을 설정할 때와 같은 형식으로 엔티티를 지정할 수도 있습니다. snapshot_entities 매개 변수를 사용하여 현재 상태의 스냅샷을 작성할 수도 있습니다. 이 경우 스냅샷을 만들려는 모든 엔터티의 entity_id를 지정해야합니다. entitiessnapshot_entities는 결합할 수 있지만 적어도 둘 중 하나를 사용해야합니다.

씬이 이전에 scene.create에 의해 생성된 경우 덮어 씁니다. YAML에서 씬을 만든 경우 로그 파일에 경고만 표시됩니다.

# Example automation using entities
automation:
  trigger:
    platform: homeassistant
    event: start
  action:
    service: scene.create
    data:
      scene_id: my_scene
      entities:
        light.tv_back_light:
          state: on
          brightness: 100
        light.ceiling: off
        media_player.sony_bravia_tv:
          state: on
          source: HDMI 1

다음 예제는 창이 열리면 일부 엔티티를 끕니다. 창을 다시 닫은 후 엔터티의 상태가 복원됩니다.

# Example automation using snapshot
- alias: Window opened
  trigger:
  - platform: state
    entity_id: binary_sensor.window
    from: 'off'
    to: 'on'
  condition: []
  action:
  - service: scene.create
    data:
      scene_id: before
      snapshot_entities:
      - climate.ecobee
      - light.ceiling_lights
  - service: light.turn_off
    data:
      entity_id: light.ceiling_lights
  - service: climate.set_hvac_mode
    data:
      entity_id: climate.ecobee
      hvac_mode: 'off'
- alias: Window closed
  trigger:
  - platform: state
    entity_id: binary_sensor.window
    from: 'on'
    to: 'off'
  condition: []
  action:
  - service: scene.turn_on
    data:
      entity_id: scene.before