Files
ad_trident/apps/global/homecinema.yaml
T
2026-10-22 22:11:39 +02:00

370 lines
12 KiB
YAML

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
# input_selection:
# None: binary_sensor.vertex2_has_input_signal # this will prevent input change if the current input is still active
# Switch: binary_sensor.vertex2_switch_5v
# Playstation: binary_sensor.vertex2_playstation_5v
# Xbox: binary_sensor.vertex2_xbox_5v
# AppleTV: true
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
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
vertex_content:
module: vertexcontent
class: VertexContent
output: sensor.vertex2_current_content
input_selected: sensor.vertex2_input_selected
has_signal: binary_sensor.vertex2_has_input_signal
sources:
AppleTV:
label: Apple TV
platform: Apple TV
icon: mdi:apple
entity: media_player.apple_tv
title_attributes:
- media_title
series_title_attributes:
- media_series_title
application_attributes:
- app_name
content_type_attributes:
- media_content_type
artwork_attributes:
- entity_picture
pause_states:
- paused
# is_paused is meaningful only for apps known to report playback state.
pause_supported_apps:
- CANAL+
- Disney+
- HBO Max
- Netflix
- Plex
- Prime Video
- TV
- VLC
- YouTube
Xbox:
label: Xbox
platform: Xbox
content_type: game
icon: mdi:microsoft-xbox
entity: sensor.yetanotherpedro_now_playing
state_as_title: true
artwork_entity: image.yetanotherpedro_now_playing
Playstation:
label: PlayStation 5
platform: PlayStation 5
content_type: game
icon: mdi:sony-playstation
entity: sensor.ps5_136_activity
state_as_title: true
Switch:
label: Nintendo Switch
platform: Nintendo Switch
content_type: game
icon: mdi:nintendo-switch