From ab2ab9f9d7aabacf71925c45ff9cf3053ae01250 Mon Sep 17 00:00:00 2001 From: Martin Bauer Date: Tue, 5 Oct 2021 11:22:27 +0000 Subject: [PATCH] Changed automations to pyscript --- .gitignore | 4 +- automations/esszimmerradio_an_aus.yaml | 136 ---- automations/ir_bedroom.yaml | 652 ------------------ automations/ir_first_floor_dining_room.yaml | 352 ---------- automations/ir_first_floor_living_room.yaml | 352 ---------- automations/ir_living_area.yaml | 440 ------------ .../knx_button_wohnzimmer_terrassentuer.yaml | 35 - automations/knx_buttons_eingangstuer.yaml | 66 -- automations/knx_buttons_esszimmertuer.yaml | 156 ----- .../knx_buttons_wohnzimmergangtuer.yaml | 150 ---- automations/oben_licht.yaml | 217 ------ automations/wohnzimmerradio_oben.yaml | 15 - config_creation/groups.yaml | 8 +- config_creation/main.py | 7 +- config_creation/manual_config.yaml | 14 +- pyscript/config.yaml | 9 + pyscript/herd.py | 14 + pyscript/ir_remote_kitchenpi.py | 33 + pyscript/ir_remote_oben.py | 77 +++ pyscript/ir_remote_schlafzimmer.py | 66 ++ pyscript/knx_buttons.py | 119 ++++ .../licht_gang_bogen.py | 0 pyscript/licht_schlafzimmer.py | 11 + pyscript/licht_wc.py | 4 + pyscript/modules/ir_helpers.py | 126 ++++ scenes/kueche_essbereich.yaml | 10 +- scenes/wohnbereich.yaml | 15 +- 27 files changed, 496 insertions(+), 2592 deletions(-) delete mode 100644 automations/esszimmerradio_an_aus.yaml delete mode 100644 automations/ir_bedroom.yaml delete mode 100644 automations/ir_first_floor_dining_room.yaml delete mode 100644 automations/ir_first_floor_living_room.yaml delete mode 100644 automations/ir_living_area.yaml delete mode 100644 automations/knx_button_wohnzimmer_terrassentuer.yaml delete mode 100644 automations/knx_buttons_eingangstuer.yaml delete mode 100644 automations/knx_buttons_esszimmertuer.yaml delete mode 100644 automations/knx_buttons_wohnzimmergangtuer.yaml delete mode 100644 automations/oben_licht.yaml delete mode 100644 automations/wohnzimmerradio_oben.yaml create mode 100644 pyscript/config.yaml create mode 100644 pyscript/herd.py create mode 100644 pyscript/ir_remote_kitchenpi.py create mode 100644 pyscript/ir_remote_oben.py create mode 100644 pyscript/ir_remote_schlafzimmer.py create mode 100644 pyscript/knx_buttons.py rename automations/esszimmerradio_oben_an_aus.yaml => pyscript/licht_gang_bogen.py (100%) create mode 100644 pyscript/licht_schlafzimmer.py create mode 100644 pyscript/licht_wc.py create mode 100644 pyscript/modules/ir_helpers.py diff --git a/.gitignore b/.gitignore index 1bf3ead..68c8a53 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ __pycache__ node_modules /tts /deps +/blueprints /home-assistant.log # Generated files /groups.yaml @@ -12,4 +13,5 @@ node_modules /www/community/ /custom_components/hacs /custom_components/scheduler - +/custom_components/pyscript +/themes \ No newline at end of file diff --git a/automations/esszimmerradio_an_aus.yaml b/automations/esszimmerradio_an_aus.yaml deleted file mode 100644 index 2781e77..0000000 --- a/automations/esszimmerradio_an_aus.yaml +++ /dev/null @@ -1,136 +0,0 @@ -# ------ Einschalten --------------- -- alias: EsszimmerRadio Oben an - trigger: - # Switch on when pushing play or power - - platform: event - event_type: ir_command_received - event_data: - button_name: key_play - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_power - repeat_counter: 0 - host: esszimmerradio.fritz.box - # Switch on when pressing any number button - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_1 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_2 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_3 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_4 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_5 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_6 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_7 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_8 - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: btn_9 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: switch.turn_on - data: - entity_id: switch.esszimmer_oben_radio_steckdose1 - - -# ------ Ausschalten --------------- - -- alias: EsszimmerRadio Oben aus - trigger: - # Switch off when pushing goto or pause - - platform: event - event_type: ir_command_received - event_data: - button_name: key_goto - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: switch.turn_off - data: - entity_id: switch.esszimmer_oben_radio_steckdose1 - - service: media_player.media_stop - data: - entity_id: media_player.esszimmer - -- alias: Radio Stop - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_stop - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.turn_off - data: - entity_id: media_player.esszimmer - -# ------ Squeezelite neustart --------------- - -- alias: EsszimmerRadio oben squeezelite neustart - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_record - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: sysdweb.restart - data: - hostname: esszimmerradio.fritz.box - service_name: squeezelite diff --git a/automations/ir_bedroom.yaml b/automations/ir_bedroom.yaml deleted file mode 100644 index 98883e6..0000000 --- a/automations/ir_bedroom.yaml +++ /dev/null @@ -1,652 +0,0 @@ -# Dont' edit manually! this is generated! - -- alias: IR bedroompi.fritz.box btn_1 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_1 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Good Morning - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_2 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_2 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Good Night Long - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_3 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_3 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Good Night - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_4 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_4 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Bar Classics - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_5 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_5 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Sentimental Moods - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_6 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_6 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Pop - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_7 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_7 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: B 5 aktuell - media_content_type: channel - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_8 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_8 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR-Klassik - media_content_type: channel - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_9 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_9 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3 - media_content_type: music - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box key_numeric_star - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_star - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.repeat_set - data: - repeat: one - entity_id: media_player.bedroompi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 1 - entity_id: media_player.bedroompi - - service: media_player.play_media - data: - media_content_id: Foen - media_content_type: music - entity_id: media_player.bedroompi - - service: media_player.volume_set - data: - volume_level: 60 - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box btn_0 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_0 - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 3 - media_content_type: channel - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box key_numeric_pound - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_pound - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 2 - media_content_type: channel - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box key_red - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_red - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.schlafzimmer_stillen -- alias: IR bedroompi.fritz.box key_green - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_green - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.schlafzimmer_orange -- alias: IR bedroompi.fritz.box key_yellow - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_yellow - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.schlafzimmer_ganz_hell -- alias: IR bedroompi.fritz.box key_blue - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_blue - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.nachtswennallelieberschlafen -- alias: IR bedroompi.fritz.box key_tv - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_tv - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: script.turn_on - data: - variables: - media_content_id: spotify:playlist:37i9dQZF1DXbcPC6Vvqudd - light_off_secs: 900 - music_off_secs: 2700 - shuffle: 1 - entity_id: script.timed_sleep -- alias: IR bedroompi.fritz.box key_video - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_video - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: script.turn_on - data: - variables: - media_content_id: Good Night - light_off_secs: 900 - music_off_secs: 2700 - shuffle: 0 - entity_id: script.timed_sleep -- alias: IR bedroompi.fritz.box key_music - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_music - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: script.turn_on - data: - variables: - media_content_id: spotify:playlist:37i9dQZF1DXbcPC6Vvqudd - light_off_secs: 300 - music_off_secs: 1200 - shuffle: 1 - entity_id: script.timed_sleep -- alias: IR bedroompi.fritz.box key_pictures - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_pictures - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: script.turn_on - data: - variables: - media_content_id: Good Night - light_off_secs: 300 - music_off_secs: 1200 - shuffle: 0 - entity_id: script.timed_sleep -- alias: IR bedroompi.fritz.box key_power - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_power - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: media_player.media_pause - data: - entity_id: media_player.bedroompi - - service: light.turn_off - data: - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box key_ok - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_ok - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: cover.close_cover - data: - entity_id: cover.schlafzimmer_rollo_gross - - service: cover_half.set_half - data: - entity_id: cover.schlafzimmer_rollo_klein -- alias: IR bedroompi.fritz.box key_mute - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_mute - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: light.turn_off - data: - entity_id: group.all_downstairs_but_bedroom_and_outside -- alias: IR bedroompi.fritz.box key_channel - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channel - repeat_counter: 0 - host: bedroompi.fritz.box - action: - - service: light.turn_off - data: - entity_id: group.all_downstairs_but_bedroom -- alias: IR bedroompi.fritz.box Rollo auf - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_up - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: cover.open_cover - data: - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Rollo zu - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_down - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: cover.close_cover - data: - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Rollo halb - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_left - repeat_counter: 0 - host: bedroompi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_right - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: cover_half.set_half - data: - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Licht heller - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channelup - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: dimmer.dim - data: - offset: 30 - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Licht dunkler - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channeldown - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: dimmer.dim - data: - offset: -30 - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Licht viel heller - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: dimmer.dim - data: - offset: 130 - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Licht viel dunkler - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_stop - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: dimmer.dim - data: - offset: -130 - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Licht aus - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_goto - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: light.turn_off - data: - entity_id: group.bedroom -- alias: IR bedroompi.fritz.box Musik Play - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_play - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.media_play_pause - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Musik Pause - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.turn_off - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Musik Next - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_forward - repeat_counter: 0 - host: bedroompi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_fastforward - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Musik Prev - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_previous - repeat_counter: 0 - host: bedroompi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_rewind - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Vol Up - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumeup - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.volume_up - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Vol Down - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumedown - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.volume_down - data: - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Shuffle On - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: true - entity_id: media_player.bedroompi -- alias: IR bedroompi.fritz.box Shuffle Off - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_exit - repeat_counter: 0 - host: bedroompi.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.bedroompi diff --git a/automations/ir_first_floor_dining_room.yaml b/automations/ir_first_floor_dining_room.yaml deleted file mode 100644 index 7f0efd7..0000000 --- a/automations/ir_first_floor_dining_room.yaml +++ /dev/null @@ -1,352 +0,0 @@ -# Dont' edit manually! this is generated! - -- alias: IR esszimmerradio.fritz.box btn_1 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_1 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 1 - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_2 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_2 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 2 - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_3 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_3 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR Heimat - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_4 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_4 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern+ - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_5 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_5 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: B 5 Aktuell - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_6 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_6 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR-Klassik - media_content_type: channel - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_7 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_7 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: Gesammelte Weihnachtslieder - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_8 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_8 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: Harmonic Brass Christmas - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_9 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_9 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: German Brass Christmas - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box key_numeric_star - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_star - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: Weihnachten mit den Wiener Sängerknaben - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box btn_0 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_0 - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: Weihnachten mit den Wiener Sängerknaben - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box key_numeric_pound - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_pound - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.esszimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.esszimmer - - service: media_player.play_media - data: - media_content_id: SammlungGeorg - media_content_type: music - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Musik Play - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_play - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.media_play_pause - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Musik Pause - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.turn_off - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Musik Next - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_forward - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_fastforward - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Musik Prev - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_previous - repeat_counter: 0 - host: esszimmerradio.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_rewind - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Vol Up - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumeup - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.volume_up - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Vol Down - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumedown - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.volume_down - data: - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Shuffle On - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: true - entity_id: media_player.esszimmer -- alias: IR esszimmerradio.fritz.box Shuffle Off - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_exit - repeat_counter: 0 - host: esszimmerradio.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.esszimmer diff --git a/automations/ir_first_floor_living_room.yaml b/automations/ir_first_floor_living_room.yaml deleted file mode 100644 index b827ff4..0000000 --- a/automations/ir_first_floor_living_room.yaml +++ /dev/null @@ -1,352 +0,0 @@ -# Dont' edit manually! this is generated! - -- alias: IR musikserverWohnzimmerOben.fritz.box btn_1 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_1 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 1 - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_2 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_2 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 2 - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_3 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_3 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR Heimat - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_4 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_4 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern+ - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_5 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_5 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: B 5 Aktuell - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_6 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_6 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR-Klassik - media_content_type: channel - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_7 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_7 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: Gesammelte Weihnachtslieder - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_8 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_8 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: Harmonic Brass Christmas - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_9 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_9 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: German Brass Christmas - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box key_numeric_star - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_star - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: Weihnachten mit den Wiener Sängerknaben - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box btn_0 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_0 - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: Weihnachten mit den Wiener Sängerknaben - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box key_numeric_pound - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_pound - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.wohnzimmer - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.wohnzimmer - - service: media_player.play_media - data: - media_content_id: SammlungGeorg - media_content_type: music - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Musik Play - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_play - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.media_play_pause - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Musik Pause - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.turn_off - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Musik Next - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_forward - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_fastforward - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Musik Prev - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_previous - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_rewind - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Vol Up - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumeup - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.volume_up - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Vol Down - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumedown - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.volume_down - data: - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Shuffle On - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: true - entity_id: media_player.wohnzimmer -- alias: IR musikserverWohnzimmerOben.fritz.box Shuffle Off - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_exit - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.wohnzimmer diff --git a/automations/ir_living_area.yaml b/automations/ir_living_area.yaml deleted file mode 100644 index 0613818..0000000 --- a/automations/ir_living_area.yaml +++ /dev/null @@ -1,440 +0,0 @@ -# Dont' edit manually! this is generated! - -- alias: IR kitchenpi.fritz.box btn_4 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_4 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.kitchenpi - - service: media_player.play_media - data: - media_content_id: Bar Classics - media_content_type: music - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_5 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_5 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.kitchenpi - - service: media_player.play_media - data: - media_content_id: Sentimental Moods - media_content_type: music - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_6 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_6 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.kitchenpi - - service: media_player.play_media - data: - media_content_id: Pop - media_content_type: music - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_7 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_7 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: B 5 aktuell - media_content_type: channel - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_8 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_8 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: BR-Klassik - media_content_type: channel - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_9 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_9 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playlist repeat 0 - entity_id: media_player.kitchenpi - - service: media_player.squeezebox_call_method - data: - command: playerpref transitionType 0 - entity_id: media_player.kitchenpi - - service: media_player.play_media - data: - media_content_id: http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3 - media_content_type: music - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box key_numeric_star - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_star - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Antenne Bayern - media_content_type: channel - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box btn_0 - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: btn_0 - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 3 - media_content_type: channel - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box key_numeric_pound - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_numeric_pound - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.play_media - data: - media_content_id: Bayern 2 - media_content_type: channel - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box key_red - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_red - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_orange -- alias: IR kitchenpi.fritz.box key_green - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_green - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_grun -- alias: IR kitchenpi.fritz.box key_yellow - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_yellow - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_hell -- alias: IR kitchenpi.fritz.box key_blue - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_blue - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_blau_grun -- alias: IR kitchenpi.fritz.box Rollo auf - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_up - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: cover.open_cover - data: - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Rollo zu - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_down - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: cover.close_cover - data: - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Rollo halb - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_left - repeat_counter: 0 - host: kitchenpi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_right - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: cover_half.set_half - data: - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Licht heller - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channelup - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: dimmer.dim - data: - offset: 30 - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Licht dunkler - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channeldown - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: dimmer.dim - data: - offset: -30 - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Licht viel heller - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: dimmer.dim - data: - offset: 130 - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Licht viel dunkler - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_stop - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: dimmer.dim - data: - offset: -130 - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Licht aus - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_goto - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: light.turn_off - data: - entity_id: group.living_area -- alias: IR kitchenpi.fritz.box Musik Play - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_play - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.media_play_pause - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Musik Pause - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_pause - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.turn_off - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Musik Next - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_forward - repeat_counter: 0 - host: kitchenpi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_fastforward - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Musik Prev - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_previous - repeat_counter: 0 - host: kitchenpi.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_rewind - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.media_next_track - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Vol Up - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumeup - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.volume_up - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Vol Down - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_volumedown - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.volume_down - data: - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Shuffle On - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_menu - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: true - entity_id: media_player.kitchenpi -- alias: IR kitchenpi.fritz.box Shuffle Off - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_exit - repeat_counter: 0 - host: kitchenpi.fritz.box - action: - service: media_player.shuffle_set - data: - shuffle: false - entity_id: media_player.kitchenpi diff --git a/automations/knx_button_wohnzimmer_terrassentuer.yaml b/automations/knx_button_wohnzimmer_terrassentuer.yaml deleted file mode 100644 index b34056b..0000000 --- a/automations/knx_button_wohnzimmer_terrassentuer.yaml +++ /dev/null @@ -1,35 +0,0 @@ -- alias: KNX Button WohnzimmerTerrassentür Teddy mitte links kurz - trigger: - - entity_id: switch.wohnzimmer_terrassentur_szene_2 - from: 'off' - to: 'on' - platform: state - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_kuscheln - - -# === - -- alias: KNX Button WohnzimmerTerrassentür Garten mitte rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_terrassentur_szene_3 - action: - service: scene.turn_on - data: - entity_id: scene.garten_savanna - -- alias: KNX Button WohnzimmerTerrassentür Garten mitte rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_terrassentur_szene_3 - action: - service: lights.turn_off - data: - entity_id: light.garten_lichter diff --git a/automations/knx_buttons_eingangstuer.yaml b/automations/knx_buttons_eingangstuer.yaml deleted file mode 100644 index 13e1e44..0000000 --- a/automations/knx_buttons_eingangstuer.yaml +++ /dev/null @@ -1,66 +0,0 @@ - -- alias: KNX Button Eingangstür mitte links kurz - alles an - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.eingang_szene_2 - action: - - service: light.turn_on - data: - entity_id: - - light.gang_licht - - light.gang_einganglicht - - -- alias: KNX Button Eingangstür mitte links lang - alles an hell - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.eingang_szene_2 - action: - - service: light.turn_on - data: - entity_id: - - light.gang_licht - - light.gang_einganglicht - - service: scene.turn_on - data: - entity_id: - - scene.wohnbereich_hell - -# ----------- - -- alias: KNX Button Eingangstür mitte rechts kurz - alles aus innen - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.eingang_szene_3 - action: - service: light.turn_off - data: - entity_id: - - all_downstairs_but_outside - - -- alias: KNX Button Eingangstür mitte rechts lang - alles aus innen und aussen - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.eingang_szene_3 - action: - service: light.turn_off - data: - entity_id: - - all_downstairs - - -# --------------------------------- Alarm Buttons ----------------------------------- - - -# Alarm -#switch.eingang_szene_4 # key -#switch.eingang_szene_5 # dog \ No newline at end of file diff --git a/automations/knx_buttons_esszimmertuer.yaml b/automations/knx_buttons_esszimmertuer.yaml deleted file mode 100644 index d6e0f2f..0000000 --- a/automations/knx_buttons_esszimmertuer.yaml +++ /dev/null @@ -1,156 +0,0 @@ -# --------------------------------------------------- -- alias: KNX Button Esszimmertür oben links kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.esszimmer_szene_0 - action: - service: cover_half.set_half - data: - entity_id: group.living_area - - -- alias: KNX Button Esszimmertür oben links lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.esszimmer_szene_0 - action: - service: cover_half.set_half - data: - entity_id: - - cover.kuche_fenster_rollo - - cover.esszimmer_fenster_rollo - -# === - -- alias: KNX Button Esszimmertür oben rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.esszimmer_szene_1 - action: - service: cover.open_cover - data: - entity_id: group.living_area - - -- alias: KNX Button Esszimmertür oben rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.esszimmer_szene_1 - action: - service: cover.open_cover - data: - entity_id: - - cover.kuche_fenster_rollo - - cover.esszimmer_fenster_rollo - - -# --------------------------------------------------- - -- alias: KNX Button Esszimmertür mitte links kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.esszimmer_szene_2 - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_orange - -- alias: KNX Button Esszimmertür mitte links lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.esszimmer_szene_2 - action: - service: scene.turn_on - data: - entity_id: scene.kuche_essbereich_orange - -# === - -- alias: KNX Button Esszimmertür mitte rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.esszimmer_szene_3 - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_hell - -- alias: KNX Button Esszimmertür mitte rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.esszimmer_szene_3 - action: - service: scene.turn_on - data: - entity_id: scene.kuche_essbereich_hell - - -# --------------------------------------------------- - -- alias: KNX Button Esszimmertür unten links ein - trigger: - - entity_id: switch.esszimmer_szene_4 - from: 'off' - to: 'on' - platform: state - action: - service: switch.turn_on - data: - entity_id: - - switch.herd_phase_1 - - switch.herd_phase_2 - - switch.herd_phase_3 - -- alias: KNX Button Esszimmertür unten links aus - trigger: - - entity_id: switch.esszimmer_szene_4 - from: 'on' - to: 'off' - platform: state - action: - service: switch.turn_off - data: - entity_id: - - switch.herd_phase_1 - - switch.herd_phase_2 - - switch.herd_phase_3 - -# === - -- alias: KNX Button Esszimmertür unten rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.esszimmer_szene_5 - action: - service: light.turn_off - data: - entity_id: group.living_area - -- alias: KNX Button Esszimmertür unten rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.esszimmer_szene_5 - action: - service: light.turn_off - data: - entity_id: light.kuche_esszimmer_lichter diff --git a/automations/knx_buttons_wohnzimmergangtuer.yaml b/automations/knx_buttons_wohnzimmergangtuer.yaml deleted file mode 100644 index ffc12f9..0000000 --- a/automations/knx_buttons_wohnzimmergangtuer.yaml +++ /dev/null @@ -1,150 +0,0 @@ -# --------------------------------------------------- -- alias: KNX Button WohnzimmerGangTür oben links kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_0 - action: - service: cover_half.set_half - data: - entity_id: group.living_area - - -- alias: KNX Button WohnzimmerGangTür oben links lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_0 - action: - service: cover_half.set_half - data: - entity_id: - - cover.wohnzimmer_fenster_rollo - - cover.wohnzimmer_terrassentur_rollo - -# === - -- alias: KNX Button WohnzimmerGangTür oben rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_1 - action: - service: cover.open_cover - data: - entity_id: group.living_area - - -- alias: KNX Button WohnzimmerGangTür oben rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_1 - action: - service: cover.open_cover - data: - entity_id: - - cover.wohnzimmer_fenster_rollo - - cover.wohnzimmer_terrassentur_rollo - - -# --------------------------------------------------- - -- alias: KNX Button WohnzimmerGangTür mitte links kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_2 - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_orange - -- alias: KNX Button WohnzimmerGangTür mitte links lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_2 - action: - service: scene.turn_on - data: - entity_id: scene.wohnzimmer_orange - -# === - -- alias: KNX Button WohnzimmerGangTür mitte rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_3 - action: - service: scene.turn_on - data: - entity_id: scene.wohnbereich_hell - -- alias: KNX Button WohnzimmerGangTür mitte rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_3 - action: - service: scene.turn_on - data: - entity_id: scene.wohnzimmer_hell - - -# --------------------------------------------------- - -- alias: KNX Button WohnzimmerGangTür unten links kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_4 - action: - service: scene.turn_on - data: - entity_id: scene.wohnzimmer_dunkel - -- alias: KNX Button WohnzimmerGangTür unten links lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_4 - action: - service: scene.turn_on - data: - entity_id: scene.wohnzimmer_dunkel - -# === - -- alias: KNX Button WohnzimmerGangTür unten rechts kurz - trigger: - platform: event - event_type: short_click - event_data: - entity_id: switch.wohnzimmer_szene_5 - action: - service: light.turn_off - data: - entity_id: group.living_area - -- alias: KNX Button WohnzimmerGangTür unten rechts lang - trigger: - platform: event - event_type: long_click - event_data: - entity_id: switch.wohnzimmer_szene_5 - action: - service: light.turn_off - data: - entity_id: light.kuche_wohnzimmer_lichter diff --git a/automations/oben_licht.yaml b/automations/oben_licht.yaml deleted file mode 100644 index fe38bc6..0000000 --- a/automations/oben_licht.yaml +++ /dev/null @@ -1,217 +0,0 @@ -- alias: Oben Wohnzimmer IR key_red next scene - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_red - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: counter.increment - entity_id: counter.licht_szene_oben_counter - - -- alias: Oben Wohnzimmer IR key_green prev scene - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_green - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: counter.decrement - entity_id: counter.licht_szene_oben_counter - -- alias: Oben Wohnzimmer IR Licht heller - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channelup - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: dimmer.dim - data: - offset: 30 - entity_id: light.lampe_ersterstock - -- alias: Oben Wohnzimmer IR Licht dunkler - trigger: - platform: event - event_type: ir_command_received - event_data: - button_name: key_channeldown - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: dimmer.dim - data: - offset: -30 - entity_id: light.lampe_ersterstock - -- alias: Oben Wohnzimmer IR Licht aus - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_green - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_blue - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - - platform: event - event_type: ir_command_received - event_data: - button_name: key_yellow - repeat_counter: 0 - host: musikserverWohnzimmerOben.fritz.box - action: - service: light.turn_off - data: - entity_id: light.lampe_ersterstock - - -# --------------------------------- Szenen ------------------- - -- alias: Oben Szene 0 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 0 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - color_temp: 492 - - -- alias: Oben Szene 1 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 1 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.5794 - - 0.3752 - - -- alias: Oben Szene 2 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 2 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.5535 - - 0.4104 - -- alias: Oben Szene 3 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 3 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.4662 - - 0.3252 - -- alias: Oben Szene 4 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 4 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.3423 - - 0.2252 - - -- alias: Oben Szene 5 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 5 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.346 - - 0.394 - -- alias: Oben Szene 6 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 6 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.4119 - - 0.3671 - - -- alias: Oben Szene 7 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 7 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - xy_color: - - 0.408 - - 0.517 - - -- alias: Oben Szene 8 - trigger: - platform: state - entity_id: counter.licht_szene_oben_counter - condition: - condition: template - value_template: "{{ states('counter.licht_szene_oben_counter')|int % 9 == 8 }}" - action: - service: light.turn_on - data: - entity_id: light.lampe_ersterstock - color_temp: 202 - diff --git a/automations/wohnzimmerradio_oben.yaml b/automations/wohnzimmerradio_oben.yaml deleted file mode 100644 index 8199f72..0000000 --- a/automations/wohnzimmerradio_oben.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# ------ Squeezelite neustart --------------- - -- alias: Wohnzimmer oben squeezelite neustart - trigger: - - platform: event - event_type: ir_command_received - event_data: - button_name: key_record - repeat_counter: 0 - host: musikserverwohnzimmeroben.fritz.box - action: - service: sysdweb.restart - data: - hostname: musikserverwohnzimmeroben.fritz.box - service_name: squeezelite diff --git a/config_creation/groups.yaml b/config_creation/groups.yaml index 37f2ce3..73a5ac8 100644 --- a/config_creation/groups.yaml +++ b/config_creation/groups.yaml @@ -19,10 +19,13 @@ living_area: bedroom: name: Schlafzimmer entities: + - light.schlafzimmer_deckenlampe - light.schlafzimmer_fluter - light.bett_martin - light.bett_rebecca - light.schlafzimmer_schrank + - cover.schlafzimmer_rollo_gross + - cover.schlafzimmer_rollo_klein hallway: name: Gang @@ -45,21 +48,24 @@ outside: office: name: Arbeitszimmer entities: + - light.arbeitszimmer_deckenlampe - light.arbeitszimmer_stehlampe_oben - light.arbeitszimmer_stehlampe_unten - light.arbeitszimmer_fluter - + - cover.arbeitszimmer_rollo kids_room: name: Kinderzimmer entities: - light.kinderzimmer_fluter + - cover.kinderzimmer_rollo bathroom: name: Bad + other: name: Rest diff --git a/config_creation/main.py b/config_creation/main.py index 95e0bd7..63911de 100644 --- a/config_creation/main.py +++ b/config_creation/main.py @@ -51,7 +51,7 @@ def add_knx_devices(devices, groups): DeviceInfo('AussenleuchteHaustüren', 'Haustür Licht', 'outside'), DeviceInfo('AussenleuchteObenNW', 'Haustür Licht NW', 'first_floor'), DeviceInfo('TreppenhausLicht', "Treppenhaus Licht", 'first_floor'), - DeviceInfo('WCLicht', "WC Licht", 'other'), + #DeviceInfo('WCLicht', "WC Licht", 'other'), DeviceInfo('LampeVorratsraum', "Vorratsraum Licht", 'other'), # Bewegungsmelder LEDs DeviceInfo("BewegungsmelderMitte LED", "Bewegungsmelder Mitte LED", 'hallway'), @@ -82,7 +82,8 @@ def add_knx_devices(devices, groups): switches += [DeviceInfo("AlarmLEDLinksNormal", "alarm_led_links_normal"), DeviceInfo("AlarmLEDLinksUeberlagert", "alarm_led_links_ueberlagert"), DeviceInfo("AlarmLEDRechtsNormal", "alarm_led_rechts_normal"), - DeviceInfo("AlarmLEDRechtsUeberlagert", "alarm_led_rechts_ueberlagert"),] + DeviceInfo("AlarmLEDRechtsUeberlagert", "alarm_led_rechts_ueberlagert"), + DeviceInfo("WCLicht Schalten", "wc_licht_taster"), ] power_plugs = [ # Vorratsraum @@ -297,7 +298,7 @@ def create_config(target_directory, development=False): additional_file = 'secrets_development.yaml' if development else 'secrets_deploy.yaml' output.write(open(os.path.join(script_path, additional_file), 'r').read()) - create_automation_rules(os.path.join(target_directory, 'automations')) + #create_automation_rules(os.path.join(target_directory, 'automations')) if __name__ == '__main__': diff --git a/config_creation/manual_config.yaml b/config_creation/manual_config.yaml index b98334d..b6b0714 100644 --- a/config_creation/manual_config.yaml +++ b/config_creation/manual_config.yaml @@ -54,6 +54,8 @@ homeassistant: half_position: 25 +pyscript: !include pyscript/config.yaml + # enable configuration editor config: @@ -257,15 +259,17 @@ long_click: - switch.wohnzimmer_szene_3 - switch.wohnzimmer_szene_4 - switch.wohnzimmer_szene_5 + - switch.wohnzimmer_terrassentur_szene_2 + - switch.wohnzimmer_terrassentur_szene_3 - switch.eingang_szene_2 - switch.eingang_szene_3 - switch.eingang_szene_4 - switch.eingang_szene_5 -#logger: -# default: info -# logs: -# #custom_components: debug +logger: + default: info + logs: + custom_components: info # #custom_components.reconnecting_client: debug # # Sensors @@ -638,7 +642,7 @@ light: - platform: group name: Garten Lichter entities: - - light.garten_spot_birke + - light.garten_vorne - light.garten_spot_magnolie - light.garten_spot_beet - light.garten_stehleuchte diff --git a/pyscript/config.yaml b/pyscript/config.yaml new file mode 100644 index 0000000..060b675 --- /dev/null +++ b/pyscript/config.yaml @@ -0,0 +1,9 @@ +apps: + ir_remote_kitchenpi + ir_remote_oben + ir_remote_schlafzimmer + herd + knx_buttons + licht_schlafzimmer + licht_gang_bogen + licht_wc \ No newline at end of file diff --git a/pyscript/herd.py b/pyscript/herd.py new file mode 100644 index 0000000..f93bbbe --- /dev/null +++ b/pyscript/herd.py @@ -0,0 +1,14 @@ + + +@state_trigger("switch.esszimmer_szene_4") +def esszimmer_gangtuer_herd(value=None): + entity_id = [f"switch.herd_phase_{i}" for i in range(1, 4)] + if value == "on": + switch.turn_on(entity_id=entity_id) + elif value == "off": + switch.turn_off(entity_id=entity_id) + + +@state_trigger("float(sensor.herd_phase_1_verbrauch) + float(sensor.herd_phase_2_verbrauch) + float(sensor.herd_phase_3_verbrauch) < 100", state_hold=30 * 60) +def herd_auto_aus(): + switch.esszimmer_szene_4.turn_off() diff --git a/pyscript/ir_remote_kitchenpi.py b/pyscript/ir_remote_kitchenpi.py new file mode 100644 index 0000000..b266628 --- /dev/null +++ b/pyscript/ir_remote_kitchenpi.py @@ -0,0 +1,33 @@ +from ir_helpers import * + + +@event_trigger("ir_command_received", "host == 'kitchenpi.fritz.box' and repeat_counter == 0") +def ir_remote_kitchenpi(button_name=None, **kwargs): + player = {'player': 'media_player.kitchenpi'} + mapping = { + **default_ir_light_control('group.living_area'), + **default_ir_cover_control('group.living_area'), + **default_ir_music_control(**player), + 'btn_1': playlist_f('Fast Jazz', shuffle=True, **player), + 'btn_2': playlist_f('Favorite Brass', shuffle=True, **player), + 'btn_3': playlist_f("Pop", shuffle=True, **player), + + 'btn_4': playlist_f('Bar Classics', **player), + 'btn_5': playlist_f('Sentimental Moods', **player), + 'btn_6': playlist_f(URLS['spotify_merkliste'], **player), + + 'btn_7': radio_f('BR24', **player), + 'btn_8': radio_f('BR-Klassik', **player), + 'btn_9': playlist_f(URLS['klassik_radio'], **player), + + 'btn_0': radio_f('Bayern 3', **player), + 'key_numeric_pound': radio_f('Bayern 2', **player), + 'key_numeric_star': radio_f('Antenne Bayern', **player), + + 'key_red': scene_f('wohnbereich_orange'), + 'key_green': scene_f('wohnbereich_grun'), + 'key_yellow': scene_f('wohnbereich_hell'), + 'key_blue': scene_f('wohnbereich_blau_grun'), + } + if button_name in mapping: + mapping[button_name]() diff --git a/pyscript/ir_remote_oben.py b/pyscript/ir_remote_oben.py new file mode 100644 index 0000000..4a91bc9 --- /dev/null +++ b/pyscript/ir_remote_oben.py @@ -0,0 +1,77 @@ +from ir_helpers import * + +light_counter = CyclicCounter( + lambda v: light.lampe_ersterstock.turn_on(**v), + [ + {'color_temp': 492}, + {'xy_color': [0.5794, 0.3752]}, + {'xy_color': [0.5535, 0.4104]}, + {'xy_color': [0.4662, 0.3252]}, + {'xy_color': [0.3423, 0.2252]}, + {'xy_color': [0.346, 0.394]}, + {'xy_color': [0.4119, 0.3671]}, + {'xy_color': [0.408, 0.517]}, + {'color_temp': 202}, + ], +) + + +def music_mapping(player): + player = {'player': player} + return { + 'btn_1': radio_f('Bayern 1', **player), + 'btn_2': radio_f('Bayern 2', **player), + 'btn_3': radio_f('BR Heimat', **player), + 'btn_4': radio_f('Bayern+', **player), + 'btn_5': radio_f('BR24', **player), + 'btn_6': radio_f('BR-Klassik', **player), + 'btn_7': playlist_f('Gesammelte Weihnachtslieder', **player), + 'btn_8': playlist_f('Harmonic Brass Christmas', **player), + 'btn_9': playlist_f('German Brass Christmas', **player), + 'key_numeric_star': playlist_f('Weihnachten mit den Wiener Sängerknaben', **player), + 'btn_0': playlist_f('Weihnachten mit den Wiener Sängerknaben', **player), + 'key_numeric_pound': playlist_f('SammlungGeorg', **player), + } + + +def light_mapping(): + return { + 'key_red': light_counter.next, + 'key_green': light_counter.prev, + 'key_blue': light.lampe_ersterstock.turn_off, + 'key_yellow': light.lampe_ersterstock.turn_off, + 'key_channelup': lambda: dimmer.dim(entity_id='light.lampe_ersterstock', offset=+30), + 'key_channeldown': lambda: dimmer.dim(entity_id='light.lampe_ersterstock', offset=-30), + } + +# ------------------------------------------------------------------------------------------------- + + +@event_trigger("ir_command_received", "host == 'esszimmerradio.fritz.box' and repeat_counter == 0") +def ir_remote_esszimmer_oben(button_name=None, **kwargs): + mapping = { + **music_mapping('media_player.esszimmer'), + **light_mapping(), + } + + buttons_to_switch_on = ['key_play', 'key_power'] + [f'btn_{i}' for i in range(10)] + buttons_to_switch_off = ['key_goto', 'key_pause'] + if button_name in buttons_to_switch_on: + switch.esszimmer_oben_radio_steckdose1.turn_on() + elif button_name in buttons_to_switch_off: + switch.esszimmer_oben_radio_steckdose1.turn_off() + elif button_name == 'key_record': + sysdweb.restart(service_name="squeezelite", hostname="esszimmerradio.fritz.box") + + if button_name in mapping: + mapping[button_name]() + + +@event_trigger("ir_command_received", "host == 'musikserverWohnzimmerOben.fritz.box' and repeat_counter==0") +def ir_remote_wohnzimmer_oben(button_name=None, **kwargs): + mapping = { + **music_mapping('media_player.wohnzimmer'), + **light_mapping(), + } + if button_name in mapping: + mapping[button_name]() diff --git a/pyscript/ir_remote_schlafzimmer.py b/pyscript/ir_remote_schlafzimmer.py new file mode 100644 index 0000000..81bad5b --- /dev/null +++ b/pyscript/ir_remote_schlafzimmer.py @@ -0,0 +1,66 @@ +from ir_helpers import * + + +@pyscript_compile +def timed_sleep_f(content, light_off_mins, music_off_mins, shuffle): + variables = { + 'media_content_id': content, + 'light_off_secs': light_off_mins * 60, + 'music_off_secs': music_off_mins * 60, + 'shuffle': shuffle, + } + + async def f(): + await hass.services.async_call('script', 'timed_sleep', variables) + return f + + +@event_trigger("ir_command_received", "host == 'bedroompi.fritz.box' and repeat_counter == 0") +def ir_remote_schlafzimmer(button_name=None, **kwargs): + p = {'player': 'media_player.bedroompi'} + mapping = { + **default_ir_light_control('group.bedroom'), + **default_ir_cover_control('group.bedroom'), + **default_ir_music_control(**p), + 'btn_1': playlist_f('Good Morning', **p), + 'btn_2': playlist_f('Good Night Long', **p), + 'btn_3': playlist_f('Good Night', **p), + + 'btn_4': playlist_f('Bar Classics', **p), + 'btn_5': playlist_f('Sentimental Moods', **p), + 'btn_6': playlist_f(URLS['spotify_merkliste'], **p), + + 'btn_7': radio_f('BR24', **p), + 'btn_8': radio_f('BR-Klassik', **p), + 'btn_9': playlist_f(URLS['klassik_radio'], **p), + + 'btn_0': radio_f('Bayern 3', **p), + 'key_numeric_pound': radio_f('Bayern 2', **p), + 'key_numeric_star': radio_f('Antenne Bayern', **player), + + 'key_red': scene_f('schlafzimmer_stillen'), + 'key_green': scene_f('schlafzimmer_orange'), + 'key_yellow': scene_f('schlafzimmer_ganz_hell'), + 'key_blue': scene_f('nachtswennallelieberschlafen'), + + 'key_tv': timed_sleep_f(URLS['spotify_rain'], light_off_mins=15, music_off_mins=45, shuffle=True), + 'key_video': timed_sleep_f('Good Night', light_off_mins=15, music_off_mins=45, shuffle=False), + 'key_music': timed_sleep_f(URLS['spotify_rain'], light_off_mins=5, music_off_mins=20, shuffle=True), + 'key_picture': timed_sleep_f('Good Night', light_off_mins=5, music_off_mins=20, shuffle=False) + } + if button_name in mapping: + mapping[button_name]() + elif button_name == "key_numeric_star": # Foen + repeat_one_crossfade(**p) + media_player.play_media(media_content_id='Foen', media_content_type='music', entity_id=p['player']) + media_player.volume_set(volume_level=60, entity_id=p['player']) + elif button_name == 'key_power': # Music & Lights off + media_player.media_pause(entity_id=p['player']) + light.turn_off(entity_id='group.bedroom') + elif button_name == 'key_ok': # Grosser Rollo zu, kleiner halb zu + cover.schlafzimmer_rollo_gross.close_cover() + cover_half.set_half(entity_id="cover.schlafzimmer_rollo_klein") + elif button_name == 'key_mute': # Alles aus ohne draussen & schlafzimmer + light.turn_off(entity_id='group.all_downstairs_but_bedroom_and_outside') + elif button_name == 'key_channel': # alles aus ausser schlafzimmer + light.turn_off(entity_id='group.all_downstairs_but_bedroom') diff --git a/pyscript/knx_buttons.py b/pyscript/knx_buttons.py new file mode 100644 index 0000000..efbf35f --- /dev/null +++ b/pyscript/knx_buttons.py @@ -0,0 +1,119 @@ +@pyscript_compile +def in_room(room): + return f"entity_id.startswith('switch.{room}_szene_')" + + +@event_trigger("short_click", in_room("eingang")) +@event_trigger("long_click", in_room("eingang")) +def eingang(entity_id=None, event_type=None): + long_click = (event_type == "long_click") + key = {'switch.eingang_szene_2': 'bulb_orange', + 'switch.eingang_szene_3': 'bulb_black', + 'switch.eingang_szene_4': 'key', + 'switch.eingang_szene_5': 'dog'}[entity_id] + + if key == "bulb_orange": + light.gang_licht.turn_on() + light.gang_einganglicht.turn_on() + if long_click: + scene.wohnbereich_hell.turn_on() + elif key == "bulb_black": + if long_click: + light.turn_off(entity_id="group.all_downstairs") + else: + light.turn_off(entity_id="group.all_downstairs_but_outside") + + +@event_trigger("short_click", in_room("esszimmer")) +@event_trigger("long_click", in_room("esszimmer")) +def esszimmer_gangtuer(entity_id=None, event_type=None): + key = {'switch.esszimmer_szene_0': 'arrow_down', + 'switch.esszimmer_szene_1': 'arrow_up', + 'switch.esszimmer_szene_2': 'bulb_orange', + 'switch.esszimmer_szene_3': 'bulb_yellow', + 'switch.esszimmer_szene_4': 'cooking_pot', # Herd an/aus in separater Datei + 'switch.esszimmer_szene_5': 'bulb_black'}[entity_id] + long_click = (event_type == "long_click") + + if long_click: + covers = ['cover.kuche_fenster_rollo', 'cover.esszimmer_fenster_rollo'] + else: + covers = ['group.living_area'] + + if key == "arrow_down": + cover_half.set_half(entity_id=covers) + elif key == "arrow_up": + cover.open_cover(entity_id=covers) + elif key == "bulb_orange": + if long_click: + scene.kuche_essbereich_orange.turn_on() + else: + scene.wohnbereich_orange.turn_on() + elif key == "bulb_yellow": + if long_click: + scene.kuche_essbereich_hell.turn_on() + else: + scene.wohnbereich_hell.turn_on() + elif key == "bulb_black": + if long_click: + light.essbereich_lichter.turn_off() + else: + light.turn_off(entity_id="group.living_area") + + +@event_trigger("short_click", in_room("wohnzimmer")) +@event_trigger("long_click", in_room("wohnzimmer")) +def wohnzimmer_gangtur(entity_id=None, event_type=None): + long_click = (event_type == "long_click") + key = {'switch.wohnzimmer_szene_0': 'arrow_down', + 'switch.wohnzimmer_szene_1': 'arrow_up', + 'switch.wohnzimmer_szene_2': 'bulb_orange', + 'switch.wohnzimmer_szene_3': 'bulb_yellow', + 'switch.wohnzimmer_szene_4': 'bulb_blue', + 'switch.wohnzimmer_szene_5': 'bulb_black'}[entity_id] + + if long_click: + covers = ['cover.wohnzimmer_fenster_rollo', 'cover.wohnzimmer_terrassentur_rollo'] + else: + covers = ['group.living_area'] + + if key == "arrow_down": + cover_half.set_half(entity_id=covers) + elif key == "arrow_up": + cover.open_cover(entity_id=covers) + elif key == "bulb_orange": + if long_click: + scene.wohnzimmer_orange.turn_on() + else: + scene.wohnbereich_orange.turn_on() + elif key == "bulb_yellow": + if long_click: + scene.wohnzimmer_hell.turn_on() + else: + scene.wohnbereich_hell.turn_on() + elif key == "bulb_blue": + if long_click: + scene.wohnzimmer_dunkel.turn_on() + else: + scene.wohnbereich_blau_grun.turn_on() + elif key == "bulb_black": + if long_click: + light.wohnzimmer_lichter.turn_off() + else: + light.turn_off(entity_id="group.living_area") + + +@event_trigger("short_click", in_room("wohnzimmer_terrassentur")) +@event_trigger("long_click", in_room("wohnzimmer_terrassentur")) +def wohnzimmer_terassentuer(entity_id=None, event_type=None): + long_click = (event_type == "long_click") + key = {'switch.wohnzimmer_terrassentur_szene_2': 'teddy', + 'switch.wohnzimmer_terrassentur_szene_3': 'flowers'}[entity_id] + if key == "teddy": + if long_click: + scene.wohnbereich_kuscheln.turn_on() + elif key == "flowers": + if long_click: + light.turn_off(entity_id="light.garten_lichter") + else: + scene.garten_savanna.turn_on() diff --git a/automations/esszimmerradio_oben_an_aus.yaml b/pyscript/licht_gang_bogen.py similarity index 100% rename from automations/esszimmerradio_oben_an_aus.yaml rename to pyscript/licht_gang_bogen.py diff --git a/pyscript/licht_schlafzimmer.py b/pyscript/licht_schlafzimmer.py new file mode 100644 index 0000000..de148b9 --- /dev/null +++ b/pyscript/licht_schlafzimmer.py @@ -0,0 +1,11 @@ + +@event_trigger("homematic.keypress", "name == 'schlafzimmer_deckenlampe'") +def schlafzimmer_licht(channel=None, param=None): + up = (channel == 1) + long = (param == "PRESS_LONG") + +# TODO +# oben: kurz: orange szene +# lang: helle szene +# unten: kurz: off, but 1 min bedlight +# lang: rollos zu diff --git a/pyscript/licht_wc.py b/pyscript/licht_wc.py new file mode 100644 index 0000000..554f0ab --- /dev/null +++ b/pyscript/licht_wc.py @@ -0,0 +1,4 @@ + +@state_trigger("switch.wc_licht_taster == 'on'") +def wc_licht(): + switch.wc_licht.toggle() diff --git a/pyscript/modules/ir_helpers.py b/pyscript/modules/ir_helpers.py new file mode 100644 index 0000000..ea89e9c --- /dev/null +++ b/pyscript/modules/ir_helpers.py @@ -0,0 +1,126 @@ +# ---------------------------------- Music --------------------------------------------- + +URLS = { + 'klassik_radio': "http://opml.radiotime.com/Tune.ashx?id=s25028&formats=aac,ogg,mp3", + 'spotify_rain': "spotify:playlist:37i9dQZF1DXbcPC6Vvqudd", + 'spotify_merkliste': "spotify:playlist:43wCckw3P4WKdy06Rd7eYO", +} + + +async def media_player_s(service_name, entity_id, **kwargs): + await hass.services.async_call('media_player', service_name, {'entity_id': entity_id, **kwargs}) + + +async def media_player_f(service_name, entity_id, **kwargs): + async def f(): + hass.services.async_call('media_player', service_name, {'entity_id': entity_id, **kwargs}) + return f + + +async def default_music_settings(player, shuffle=False): + await media_player_s('shuffle_set', player, shuffle=shuffle) + await media_player_s('squeezebox_call_method', player, command="playlist repeat 0") + await media_player_s('squeezebox_call_method', player, command="playerpref transitionType 0") + + +async def repeat_one_crossfade(player): + await media_player_s('repeat_set', player, repeat='one') + await media_player_s('squeezebox_call_method', player, command='playerpref transitionType 1') + + +def playlist_f(name, player, shuffle=False): + async def f(): + await default_music_settings(player, shuffle=shuffle) + await media_player_s('play_media', player, media_content_id=name, media_content_type='music') + return f + + +def radio_f(name, player): + async def f(): + await media_player_s('play_media', player, media_content_id=name, media_content_type='channel') + return f + + +def scene_f(name): + async def f(): + await hass.services.async_call('scene', 'turn_on', {'entity_id': 'scene.' + name}) + return f + + +def cover_f(name, entity_id, **kwargs): + async def f(): + await hass.services.async_call('cover', name, {'entity_id': entity_id, **kwargs}) + return f + + +def cover_half_f(entity_id): + async def f(): + await hass.services.async_call('cover_half', 'set_half', {'entity_id': entity_id}) + return f + + +def light_f(name, entity_id, **kwargs): + async def f(): + await hass.services.async_call('light', name, {'entity_id': entity_id, **kwargs}) + return f + + +def default_ir_music_control(player): + return { + 'key_play': media_player_f("media_play_pause", player), + 'key_pause': media_player_f("turn_off", player), + + 'key_forward': media_player_f('media_next_track', player), + 'key_fastforward': media_player_f('media_next_track', player), + 'key_previous': media_player_f('media_previous_track', player), + 'key_rewind': media_player_f('media_previous_track', player), + + 'key_volumeup': media_player_f('volume_up', player), + 'key_volumedown': media_player_f('volume_down', player), + + 'key_menu': media_player_f('shuffle_set', player, shuffle=True), + 'key_exit': media_player_f('shuffle_set', player, shuffle=False), + } + +# ---------------------------------- Covers -------------------------------------------- + + +def default_ir_cover_control(device_group): + return { + 'key_up': cover_f('open_cover', device_group), + 'key_down': cover_f('close_cover', device_group), + 'key_left': cover_half_f(device_group), + 'key_right': cover_half_f(device_group), + } + + +# ---------------------------------- Lights --------------------------------------------- + +def default_ir_light_control(device_group): + def dim_offset_f(offset): + async def f(): + await hass.services.async_call('dimmer', 'dim', {'entity_id': device_group, 'offset': offset}) + return f + + return { + 'key_channelup': dim_offset_f(+30), + 'key_channeldown': dim_offset_f(-30), + 'key_menu': dim_offset_f(130), + 'key_stop': dim_offset_f(-130), + 'key_goto': light_f('turn_off', device_group) + } + + +class CyclicCounter: + def __init__(self, func, values): + self.idx = 0 + self.values = values + self.func = func + + def next(self): + self.idx = (self.idx + 1) % len(self.values) + self.func(self.values[self.idx]) + + def prev(self): + self.idx = (self.idx - 1) % len(self.values) + self.func(self.values[self.idx]) diff --git a/scenes/kueche_essbereich.yaml b/scenes/kueche_essbereich.yaml index 9e9ec2d..6b6bc8f 100644 --- a/scenes/kueche_essbereich.yaml +++ b/scenes/kueche_essbereich.yaml @@ -3,13 +3,12 @@ entities: light.kuche_deckenlampe: state: true - brightness: 38 + brightness: 10 light.esszimmer_deckenlampe_west: state: true - brightness: 38 + brightness: 10 light.esszimmer_deckenlampe_mitte: - state: true - brightness: 38 + state: false light.esszimmer_schrankleuchte: state: false light.kuche_links: @@ -92,6 +91,9 @@ - name: Küche Essbereich Hell id: kueche_essbereich_hell entities: + light.esszimmer_deckenlampe_mitte: + state: true + brightness: 255 light.esszimmer_deckenlampe_west: state: true brightness: 255 diff --git a/scenes/wohnbereich.yaml b/scenes/wohnbereich.yaml index 638b00d..a6eb049 100644 --- a/scenes/wohnbereich.yaml +++ b/scenes/wohnbereich.yaml @@ -3,16 +3,15 @@ entities: light.kuche_deckenlampe: state: true - brightness: 38 + brightness: 10 light.wohnzimmer_deckenlampe: state: true - brightness: 38 + brightness: 10 light.esszimmer_deckenlampe_west: state: true - brightness: 38 + brightness: 10 light.esszimmer_deckenlampe_mitte: - state: true - brightness: 38 + state: false light.esszimmer_schrankleuchte: state: false light.kuche_links: @@ -68,8 +67,7 @@ state: true brightness: 38 light.esszimmer_deckenlampe_mitte: - state: true - brightness: 38 + state: false light.esszimmer_schrankleuchte: state: false light.kuche_links: @@ -184,6 +182,9 @@ - name: Wohnbereich Hell id: wohnbereich_hell entities: + light.esszimmer_deckenlampe_mitte: + state: true + brightness: 255 light.esszimmer_deckenlampe_west: state: true brightness: 255