samsung_the_frame: module: samsungtheframeasync class: SamsungTheFrame volume_up_events: - the_frame_volume_up volume_down_events: - the_frame_volume_down ip_address: 10.0.0.58 #broadcast_address: 10.0.0.255 #mac_address: 98:06:3C:85:93:38 #wol_switch: switch.theframewol wake_up_service: "esphome/ir_bridge_turn_on_the_frame" app_list: # https://github.com/tavicu/homebridge-samsung-tizen/issues/291 - 3201907018807 # Netflix - 3201910019365 # Prime virtual_sensors: default_values: binary_sensor.tv_auto_shutdown: false binary_sensor.is_tv_on: false sensors: value_selector.samsung_the_frame_target_state: power_off: trigger_conditions: - binary_sensor.is_everybody_sleeping or binary_sensor.is_living_room_sleeping or not binary_sensor.someone_home - binary_sensor.projector_screen_down hdmi: binary_sensor.vertex2_has_input_signal and not binary_sensor.projector_screen_down manual: binary_sensor.is_tv_on and not binary_sensor.tv_auto_shutdown tv_off: not binary_sensor.living_room_occupancy art_mode: True tv_state: sensor.samsung_the_frame_target_state output_sensors: is_on: binary_sensor.is_tv_on is_art_mode: binary_sensor.tv_in_art_mode tv_auto_shutdown: binary_sensor.tv_auto_shutdown input_sensors: power_plug: switch.the_frame_power_plug power_plug_power: sensor.the_frame_power_plug_power w4000i: module: smartprojector_benq_over_telnet class: SmartProjector entity: switch.projector telnet_connection: ip: 10.0.0.40 port: 8000 power_plug: entity: switch.living_room_projector_plug power_sensor: sensor.living_room_projector_plug_power power_threeshold: 5 conditions: trigger_conditions: - binary_sensor.someone_home and not (binary_sensor.is_everybody_sleeping or binary_sensor.is_living_room_sleeping) - sensor.living_room_projector_plug_power > 10 or binary_sensor.projector_on # don't remove this one or it will fry the projector virtual_sensors: sensors: value_selector.projector_icon: projector_off: conditions: not super value: "'mdi:projector-off'" projector_on: conditions: True value: "'mdi:projector'" continuous_condition.projector_ready: conditions: switch.living_room_projector_plug time: 30 continuous_condition.has_allm_signal_for_a_while: conditions: binary_sensor.vertex2_allm time: 10 attributes_override: icon: sensor.projector_icon friendly_name: Projecteur press_enter_event: send_projector_enter press_enter_events: vertex2_allm: event_name: state_changed event_data: entity_id: binary_sensor.has_allm_signal_for_a_while new_state: state: "on" apple_tv_mute_short_press: event_name: state_changed event_data: entity_id: binary_sensor.ir_bridge_apple_tv_mute_button_short_press old_state: state: "off" new_state: state: "on" projector_ready_conditions: binary_sensor.projector_ready #state_conditions: binary_sensor.projector_on #cooling_down_sensor: binary_sensor.projector_cooling_down smart_conditions: trigger_conditions: binary_sensor.vertex2_has_input_signal and binary_sensor.projector_screen_down disable_conditions: - self == 'unavailable' #- self == 'off' and not binary_sensor.projector_screen_down #- not binary_sensor.projector_screen_down #- binary_sensor.projector_cooling_down - switch.projector.warming_up bravia_theatre: module: smartswitch class: SmartSwitch entity: media_player.bravia_theatre smart_conditions: #trigger_conditions: binary_sensor.vertex2_has_input_signal trigger_conditions: sensor.vertex2_output_selected == 'Projector' or input_boolean.use_bravia_theater_for_the_frame blocking_conditions: not binary_sensor.vertex2_has_input_signal projection_screen_switch: module: smartswitch class: SmartSwitch entity: input_boolean.projection_screen virtual_sensors: sensors: continuous_condition.projection_screen_on_for_a_while: time: 300 conditions: input_boolean.projection_screen off_conditions: binary_sensor.projection_screen_on_for_a_while and binary_sensor.projector_off_for_a_while toggle_events: apple_tv_mute_long_press: event_name: state_changed event_data: entity_id: binary_sensor.ir_bridge_apple_tv_mute_button_long_press old_state: state: "off" new_state: state: "on" projection_screen: module: smartshutter class: SmartShutter entity: cover.living_room_projection_screen close_position: 22 close_conditions: input_boolean.projection_screen vertex_2: module: vertex2 class: Vertex2 priority: 5 virtual_sensors: default_values: binary_sensor.is_tv_on: false binary_sensor.someone_home: false binary_sensor.vertex2_has_input_signal: false sensors: binary_sensor.projector_screen_down: input_boolean.projection_screen input_select: entity: select.vertex2_input mqtt_namespace: mqtt mqtt_topic: appdaemon/vertex2/input unique_id: vertex2_input input_config: default: name: None icon: mdi:television-off 0: name: AppleTV icon: mdi:apple 1: name: Xbox icon: mdi:microsoft-xbox 2: name: Playstation icon: mdi:sony-playstation 3: name: Switch icon: mdi:nintendo-switch output_config: default: name: None icon: mdi:television-off 0: name: TV icon: mdi:television use_audio_out_audio_flags: input_boolean.use_bravia_theater_for_the_frame force_plus5: not binary_sensor.vertex2_no_signal_spam 1: name: Projector icon: mdi:projector use_audio_out_audio_flags: True #force_plus5: switch.living_room_projector_plug vertex2_power_plug: entity: switch.vertex2_power_plug # power_consumption: sensor.fibaro_vertex_plug_51_power conditions: trigger_conditions: binary_sensor.someone_home #and (input_boolean.projection_screen or binary_sensor.the_frame_is_plugged_for_a_while) blocking_conditions: (binary_sensor.is_everybody_sleeping or binary_sensor.is_living_room_sleeping) and not binary_sensor.vertex2_has_input_signal #filmmaker_mode_conditions: sensor.vertex2_input_select_tx0 == 'AppleTV' output_selection: Projector: binary_sensor.projector_screen_down TV: True # input_selection: # None: binary_sensor.vertex2_has_input_signal # this will prevent input change if the current input is still active # Switch: binary_sensor.is_playing_switch # AppleTV: not binary_sensor.is_appletv_standy # Playstation: switch.ps5_136_power # Xbox: True vertex2_address: http://10.0.0.33 vertex2_tcp_port: 2220 startup_delay: 30 # seconds after the power plug turns on video_tx_signal_sensor: sensor.vertex2_video_signal allm_sensor: binary_sensor.vertex2_allm #tx0_plus5_sensor: binary_sensor.vertex2_tx0_plus5 #tx1_plus5_sensor: binary_sensor.vertex2_tx1_plus5 audio_out_signal_sensor: sensor.vertex2_audio_signal output_selected_sensor: sensor.vertex2_output_selected input_selected_sensor: sensor.vertex2_input_selected no_signal_spam_sensor: binary_sensor.vertex2_no_signal_spam unreachable_sensor: binary_sensor.vertex2_unreachable command_processing_sensor: binary_sensor.vertex2_command_processing command_processing_timeout: 20 use_bravia_theater_for_the_frame: module: smartswitch class: SmartSwitch entity: input_boolean.use_bravia_theater_for_the_frame toggle_events: - toggle_use_bravia_theater_for_the_frame apple_remote: module: virtualevents class: VirtualEvents priority: 100 # default priority app is 50, since the virtual_events doesn't create any sensor but is based on sensor created by many app, it's important it's created last virtual_events: toggle_use_bravia_theater_for_the_frame: event_name: toggle_use_bravia_theater_for_the_frame event_condition: binary_sensor.is_tv_on and binary_sensor.ir_bridge_apple_tv_mute_button_short_press # Volume buttons received by the IR bridge: Bravia > TV > Sonos. homecinema_volume: module: eventsforwarder class: EventsForwarder priority: 100 forwarders: volume_up: events_to_listen: - esphome.ir_bridge_volume_up events_to_send: the_frame: event_name: the_frame_volume_up event_condition: not (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') and binary_sensor.is_tv_on == 'on' services_to_call: bravia: service: media_player/volume_up event_condition: (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') data: entity_id: media_player.bravia_theatre sonos: service: media_player/volume_up event_condition: not (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') and binary_sensor.is_tv_on != 'on' data: entity_id: media_player.living_room_sonos volume_down: events_to_listen: - esphome.ir_bridge_volume_down events_to_send: the_frame: event_name: the_frame_volume_down event_condition: not (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') and binary_sensor.is_tv_on == 'on' services_to_call: bravia: service: media_player/volume_down event_condition: (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') data: entity_id: media_player.bravia_theatre sonos: service: media_player/volume_down event_condition: not (media_player.bravia_theatre == 'on' or media_player.bravia_theatre == 'playing' or media_player.bravia_theatre == 'paused' or media_player.bravia_theatre == 'idle') and binary_sensor.is_tv_on != 'on' data: entity_id: media_player.living_room_sonos