{ services.home-assistant.extraComponents = [ "ping" "broadlink" "androidtv" "samsungtv" ]; services.home-assistant.config = { ios = { actions = [ { name = "Home Cinema"; label.text = "Home Cinema"; icon = { icon = "theater"; color = "#ffffff"; }; show_in_watch = true; } ]; }; binary_sensor = [ { name = "xbox"; platform = "ping"; host = "xbox.cloonar.multimedia"; count = 2; scan_interval = 5; } { name = "ps5"; platform = "ping"; host = "ps5.cloonar.multimedia"; count = 2; scan_interval = 5; } { name = "steamdeck"; platform = "ping"; host = "steamdeck.cloonar.com"; count = 2; scan_interval = 5; } { platform = "template"; sensors = { multimedia_device_on = { friendly_name = "Any multimedia device on"; device_class = "connectivity"; value_template = '' {% if is_state('binary_sensor.ps5', 'on') or is_state('binary_sensor.xbox', 'on') or (states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'off' and states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'unavailable') or (is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float(default=0) > 5)) %} on {% else %} off {% endif %} ''; }; }; } ]; script = { turn_on_tv = { sequence = [ { choose = [ { conditions = [ { condition = "state"; entity_id = "switch.tv_switch"; state = "off"; } ]; sequence = [ { service = "switch.turn_on"; target = { entity_id = "switch.tv_switch"; }; } { delay = 10; } { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 1; delay_secs = 0.4; hold_secs = 0; command = "b64:JgBOAJaSFREVNRU2FTUVERURFRAVERURFTUVNhU1FREVERUQFREVERUQFTYVNRURFREVEBURFTYVNRURFRAVNhU1FTYVNRUABfmWkhURFQANBQAAAAAAAAAAAAA="; }; } ]; } { conditions = [ { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "unavailable"; } ]; sequence = [ { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 1; delay_secs = 0.4; hold_secs = 0; command = "b64:JgBOAJaSFREVNRU2FTUVERURFRAVERURFTUVNhU1FREVERUQFREVERUQFTYVNRURFREVEBURFTYVNRURFRAVNhU1FTYVNRUABfmWkhURFQANBQAAAAAAAAAAAAA="; }; } ]; } { conditions = [ { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "off"; } ]; sequence = [ { service = "media_player.turn_on"; target = { entity_id = "media_player.android_tv_metz_cloonar_multimedia"; }; } ]; } ]; } ]; }; }; "automation steamdeck on" = { alias = "steamdeck on"; trigger = { platform = "template"; value_template = "{% if is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float > 5) %}true{% endif %}"; }; action = [ { service = "denonavr.get_command"; target = { entity_id = "media_player.marantz_sr6015"; }; data = { command = "/goform/formiPhoneAppDirect.xml?SIDVD"; }; } ]; }; "automation xbox on" = { alias = "xbox on"; trigger = { platform = "state"; entity_id = "binary_sensor.xbox"; to = "on"; }; action = [ { service = "denonavr.get_command"; target = { entity_id = "media_player.marantz_sr6015"; }; data = { command = "/goform/formiPhoneAppDirect.xml?SIGAME"; }; } ]; }; "automation firetv on" = { alias = "firetv on"; trigger = { platform = "state"; entity_id = "media_player.fire_tv_firetv_living_cloonar_multimedia"; from = "off"; }; action = [ { service = "denonavr.get_command"; target = { entity_id = "media_player.marantz_sr6015"; }; data = { command = "/goform/formiPhoneAppDirect.xml?SIMPLAY"; }; } ]; }; "automation ps5 on" = { alias = "ps5 on"; trigger = { platform = "state"; entity_id = "binary_sensor.ps5"; to = "on"; }; action = [ { service = "denonavr.get_command"; target = { entity_id = "media_player.marantz_sr6015"; }; data = { command = "/goform/formiPhoneAppDirect.xml?SIBD"; }; } ]; }; "automation all multimedia off" = { alias = "all multimedia off"; trigger = { platform = "state"; entity_id = "binary_sensor.multimedia_device_on"; to = "off"; }; action = [ { service = "media_player.turn_off"; target = { entity_id = "media_player.android_tv_metz_cloonar_multimedia"; }; } { service = "denonavr.get_command"; target = { entity_id = "media_player.marantz_sr6015"; }; data = { command = "/goform/formiPhoneAppDirect.xml?PWSTANDBY"; }; } # silverscreen up { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 2; delay_secs = 1; hold_secs = 0; command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA"; }; } # turn off beamer { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 2; delay_secs = 1; hold_secs = 0; command = "b64:JgDaAAABKZMUERMSExITEhMSExETEhMSExITEhMSExETNxQ2ExITEhMSEzcTNxM3ExITEhM3ExITNxMSEhITEhM3EzcTEhM3EwAFyAABKJQUERMSEhITEhMSExITEhMSEhITEhMSExITNxM3ExITEhMREzcTNxQ3EhITEhM3ExITNxMSExITEhM3EzcTEhM3EwAFyAABKJQUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITEhMREzcTOBI4ExETEhM3ExITNxMSExITEhM3EzcTEhM3E5IGAA0FAAAAAAAAAAAAAAAAAAA="; }; } # turn off tv switch { service = "switch.turn_off"; target = { entity_id = "switch.tv_switch"; }; } ]; }; "automation all_multimedia_on" = { alias = "all multimedia on"; trigger = { platform = "state"; entity_id = "binary_sensor.multimedia_device_on"; to = "on"; }; action = [ { service = "script.turn_on"; target = { entity_id = "script.turn_on_tv"; }; } { delay = 5; } { service = "androidtv.adb_command"; target = { entity_id = "media_player.android_tv_metz_cloonar_multimedia"; }; data = { command = "adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHDMI100004"; }; } ]; }; "automation bedroom tv off" = { alias = "bedroom tv off"; trigger = { platform = "state"; entity_id = "media_player.fire_tv_firetv_bedroom_cloonar_multimedia"; to = "off"; }; action = [ { service = "media_player.turn_off"; target = { entity_id = "media_player.samsung_7_series_55"; }; } ]; }; "automation multimedia scene switch" = { alias = "multimedia scene switch"; trigger = [ { platform = "event"; event_type = "button_pressed"; event_data = { id = [ 254 235 105 198 ]; onoff = 1; }; } { platform = "event"; event_type = "ios.action_fired"; event_data = { actionID = "Home Cinema"; }; } ]; action = [ { choose = [ { conditions = [ { condition = "state"; entity_id = "switch.tv_switch"; state = "off"; } ]; sequence = [ { service = "script.turn_on"; target = { entity_id = "script.turn_on_tv"; }; } ]; } { conditions = [ { condition = "or"; conditions = [ { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "on"; } { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "idle"; } ]; } ]; sequence = [ # silver screen down { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 2; delay_secs = 1; hold_secs = 0; command = "b64:sQs0AB0JCxsLGx0IHQgLGh0ICxoLGx0JCxodCQobCxoLAAEXHQgdCR0JCxodCQsbCxsLGx0JCxoAAAAA"; }; } # turn on beamer { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 1; delay_secs = 0.4; hold_secs = 0; command = "b64:JgAgAQABKZMUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITERM3EzgSOBM3ExETEhM3ExITEhMSExITERM3EzcTEhM3EwAFyAABKZMTEhMRExITEhMSExITEhMRExITEhMSExITNxM3ExITERM3EzcTNxM3ExITEhM3ExITEhMSExETEhM3EzcTEhM3EwAFyAABKZMUERMRExITEhMSExITERMSExITEhMSExITNxM3ExISEhM3EzcTNxM3ExITEhM3ExITEhMSExETEhM3EzcTEhM3EwAFxwABKZQUERMRFBETEhMSExITEhISExITEhMSExITNxM3ExITERM3EzcTNxM3FBETEhM3ExITEhMSExITERM3EzcTEhM3EwANBQAAAAAAAAAA"; }; } { service = "media_player.turn_off"; target = { entity_id = "media_player.android_tv_metz_cloonar_multimedia"; }; } { service = "media_player.turn_on"; target = { entity_id = "media_player.marantz_sr6015"; }; } ]; } { conditions = [ { condition = "or"; conditions = [ { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "off"; } { condition = "state"; entity_id = "media_player.android_tv_metz_cloonar_multimedia"; state = "unavailable"; } ]; } ]; sequence = [ { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 2; delay_secs = 1; hold_secs = 0; command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA"; }; } # turn off beamer { service = "remote.send_command"; target = { entity_id = "remote.rmproplus"; }; data = { num_repeats = 2; delay_secs = 1; hold_secs = 0; command = "b64:JgDaAAABKZMUERMSExITEhMSExETEhMSExITEhMSExETNxQ2ExITEhMSEzcTNxM3ExITEhM3ExITNxMSEhITEhM3EzcTEhM3EwAFyAABKJQUERMSEhITEhMSExITEhMSEhITEhMSExITNxM3ExITEhMREzcTNxQ3EhITEhM3ExITNxMSExITEhM3EzcTEhM3EwAFyAABKJQUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITEhMREzcTOBI4ExETEhM3ExITNxMSExITEhM3EzcTEhM3E5IGAA0FAAAAAAAAAAAAAAAAAAA="; }; } { service = "script.turn_on"; target = { entity_id = "script.turn_on_tv"; }; } ]; } ]; } { delay = 5; } { service = "androidtv.adb_command"; target = { entity_id = "media_player.android_tv_metz_cloonar_multimedia"; }; data = { command = "adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHDMI100004"; }; } ]; }; }; }