summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2023-07-28 22:24:15 +0200
committermakefu <github@syntax-fehler.de>2023-07-28 22:24:15 +0200
commit060a8f28fa1fc648bdf66afb31a5d1efac868837 (patch)
tree2b354eacc7897365ee45244fe7a51720e0d0333f /makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix
parentcbfcc890e3b76d942b927809bf981a5fa7289e6a (diff)
makefu: move out to own repo, add vacation-note
Diffstat (limited to 'makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix')
-rw-r--r--makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix107
1 files changed, 0 insertions, 107 deletions
diff --git a/makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix b/makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix
deleted file mode 100644
index 2091ca946..000000000
--- a/makefu/2configs/home/ham/media/remote_sound_wohnzimmer.nix
+++ /dev/null
@@ -1,107 +0,0 @@
-{ lib, ...}:
-let
- statecond = cond: { # cond must be a list
- condition = "template";
- value_template = "{{ trigger.to_state.state in ( " +
- (lib.concatMapStringsSep "," (x: "'${x}'") cond) + ") }}";
- };
- vol_change = 0.030;
-
- max_repeat = "30"; # max loops to repeat before bailing out
- remote = "sensor.wohnzimmer_sound1_action";
- player = "media_player.living_room";
- last_state_sensor_name = "last_rotation_action";
- last_state_sensor = "input_text.last_rotation_action";
- # - service: media_player.volume_set
- # target:
- # entity_id: media_player.kitchen
- # data:
- # volume_level: {{ state_attr('media_player.kitchen', 'volume_level') + 0.02 }}
- rotate_stop = "brightness_stop";
- rotate_right = "brightness_move_up";
- rotate_left = "brightness_move_down" ;
-
- single_click = "toggle";
- double_click = "brightness_step_up";
- triple_click = "brightness_step_down";
-in {
- services.home-assistant.config.input_text."${last_state_sensor_name}".name = "Last action of the wohnzimmer";
- services.home-assistant.config.automation = [
- {
- trigger = {
- platform = "state";
- entity_id = remote;
- to = [ rotate_stop ];
- };
- action = [
- { service = "input_text.set_value";
- target.entity_id = last_state_sensor;
- data.value = "stop";
- }
- ];
- }
- {
- alias = "Perform Actions with ${remote}";
- trigger = {
- platform = "state";
- entity_id = remote;
- to = [ single_click double_click triple_click rotate_left rotate_right ];
- };
- #mode = "queued";
- #max = 5;
- mode = "single";
- #max_exceeded = "silent";
- action = [
- {
- choose = [
- {
- conditions = statecond [ single_click ];
- sequence = [
- { service = "media_player.media_play_pause";
- target.entity_id = player;
- }
- ];
- }
- {
- conditions = statecond [ rotate_left rotate_right ];
- sequence = let
- vol_up = toString vol_change;
- vol_down = toString (-1 * vol_change);
- in [
- {
- variables.nextvol = ''{% if trigger.to_state.state in ( "${rotate_left}" ) -%} ${vol_down} {% else -%} ${vol_up} {% endif -%}'';
- variables.state = ''{% if trigger.to_state.state in ( "${rotate_left}" ) -%} left {% else -%} right {% endif -%}'';
- }
- { service = "input_text.set_value";
- target.entity_id = last_state_sensor;
- data.value = ''{{ state }}'';
- }
- {
- repeat = {
- sequence = [
- { service = "media_player.volume_set";
- target.entity_id = player;
- data.volume_level = ''{{ state_attr("${player}","volume_level") + (nextvol|float) }}'';
- }
- { delay.milliseconds = "150"; }
- ];
- while = [
- {
- condition = "template";
- value_template = ''{{ states("${last_state_sensor}") == state }}'';
- }
- {
- condition = "template";
- value_template = "{{ repeat.index <= ${max_repeat}}}";
- }
- ];
- };
- }
- ];
- }
- ];
- }
- ];
- }
- ];
-}