488 lines
16 KiB
Nix
488 lines
16 KiB
Nix
{
|
|
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";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|