diff --git a/config/lovelace/home_dashboard/00_home.yaml b/config/lovelace/home_dashboard/00_home.yaml index 056b448..cdf9cfc 100644 --- a/config/lovelace/home_dashboard/00_home.yaml +++ b/config/lovelace/home_dashboard/00_home.yaml @@ -13,8 +13,8 @@ cards: cards: - type: custom:button-card template: small - entity: light.all_lights - name: All + entity: light.ceiling_lights + name: Ceiling - type: custom:button-card template: small entity: light.living_room_main_lights @@ -25,13 +25,13 @@ cards: name: Bedroom - type: custom:button-card template: small - entity: light.hallway_main_lights + entity: light.tuya_hallway_main_lights name: Hallway - type: horizontal-stack cards: - type: custom:button-card template: small - entity: light.kitchen_main_lights + entity: light.tuya_kitchen_main_lights name: Kitchen - type: custom:button-card template: small @@ -42,7 +42,7 @@ cards: name: Bedside - type: custom:button-card template: small - entity: light.hallway_entrance_lights + entity: light.tuya_hallway_entrance_lights name: Entrance - type: entities diff --git a/config/lovelace/home_dashboard/03_kitchen.yaml b/config/lovelace/home_dashboard/03_kitchen.yaml index 53f7f31..c943f8b 100644 --- a/config/lovelace/home_dashboard/03_kitchen.yaml +++ b/config/lovelace/home_dashboard/03_kitchen.yaml @@ -8,7 +8,7 @@ cards: show_header_toggle: false entities: - type: custom:fold-entity-row - entity: light.kitchen_main_lights + entity: light.tuya_kitchen_main_lights name: Main lights entities: - light.light_le_11 diff --git a/config/lovelace/home_dashboard/05_hallway.yaml b/config/lovelace/home_dashboard/05_hallway.yaml index 8965386..0068ee8 100644 --- a/config/lovelace/home_dashboard/05_hallway.yaml +++ b/config/lovelace/home_dashboard/05_hallway.yaml @@ -7,7 +7,9 @@ cards: title: Lights show_header_toggle: false entities: - - light.hallway_all_lights + - light.tuya_hallway_all_lights + - light.tuya_hallway_entrance_light + - light.tuya_hallway_main_lights - type: custom:fold-entity-row entity: light.hallway_entrance_lights name: Entrance lights diff --git a/config/lovelace/home_dashboard/06_lights.yaml b/config/lovelace/home_dashboard/06_lights.yaml index 99e54c6..2c68102 100644 --- a/config/lovelace/home_dashboard/06_lights.yaml +++ b/config/lovelace/home_dashboard/06_lights.yaml @@ -8,6 +8,8 @@ cards: title: Living room icon: mdi:sofa entities: + - light.tuya_living_room_main_lights + - type: divider - light.living_room_all_lights - light.living_room_main_lights - light.light_lohas_1 @@ -32,6 +34,8 @@ cards: title: Kitchen icon: mdi:chef-hat entities: + - light.tuya_kitchen_main_lights + - type: divider - light.kitchen_main_lights - light.light_le_11 - light.light_le_12 @@ -41,6 +45,10 @@ cards: title: Hallway icon: mdi:door-closed entities: + - light.tuya_hallway_all_lights + - light.tuya_hallway_main_lights + - light.tuya_hallway_entrance_lights + - type: divider - light.hallway_all_lights - light.hallway_main_lights - light.hallway_entrance_lights diff --git a/config/packages/modules/lighting/groups.yaml b/config/packages/modules/lighting/groups.yaml index 8b2da61..9de46ff 100644 --- a/config/packages/modules/lighting/groups.yaml +++ b/config/packages/modules/lighting/groups.yaml @@ -1,11 +1,17 @@ light: + # Used only to set correct initial state of tuya_living_room_main_lights + - platform: group + name: Living room tuya lights + entities: + - light.light_le_9 + - light.light_le_10 + - platform: group name: Living room main lights entities: - light.light_lohas_1 - light.light_lohas_2 - - light.light_le_9 - - light.light_le_10 + - light.tuya_living_room_main_lights - platform: group name: Living room all lights @@ -52,18 +58,48 @@ light: - light.hallway_entrance_lights - light.hallway_main_lights + - platform: group + name: Tuya Hallway all lights + entities: + - light.tuya_hallway_entrance_lights + - light.tuya_hallway_main_lights + - platform: group name: Ceiling lights entities: - light.living_room_all_lights - light.master_bedroom_main_lights - - light.kitchen_main_lights - - light.hallway_all_lights + - light.tuya_kitchen_main_lights + - light.tuya_hallway_all_lights - platform: group name: All lights entities: - light.living_room_all_lights - light.master_bedroom_all_lights - - light.kitchen_main_lights - - light.hallway_all_lights + - light.tuya_kitchen_main_lights + - light.tuya_hallway_all_lights + + +homeassistant: + customize: + light.living_room_main_lights: + icon: mdi:vanity-light + light.living_room_all_lights: + icon: mdi:vanity-light + light.master_bedroom_main_lights: + icon: mdi:vanity-light + light.kitchen_main_lights: + icon: mdi:vanity-light + light.hallway_entrance_lights: + icon: mdi:vanity-light + light.hallway_main_lights: + icon: mdi:vanity-light + light.hallway_all_lights: + icon: mdi:vanity-light + light.tuya_hallway_all_lights: + icon: mdi:vanity-light + light.ceiling_lights: + icon: mdi:ceiling-light + light.pc: + icon: mdi:ceiling-light diff --git a/config/packages/modules/lighting/tuya.yaml b/config/packages/modules/lighting/tuya.yaml new file mode 100644 index 0000000..51b25f2 --- /dev/null +++ b/config/packages/modules/lighting/tuya.yaml @@ -0,0 +1,112 @@ +# Tuya Light groups setup via scenes +# Credit: https://community.home-assistant.io/t/personal-setup-vps-vpn-faster-tuya-and-more/180995 + +# Tuya lights respond faster if they're grouped into scenes in the Tuya app. +# 1. Create ON and OFF scenes for every Tuya light group and sync them with Home Assistant. +# 2. Create an input_boolean marking each scene on/off. +# 3. Create template light acting as a group light for every input_boolean / tuya scene pair. +# 4. Automate ON/OFF when an input_boolean is toggled. + +# Light groups in Tuya. Name: "tuya_{{scene_name}}_lights_state" +input_boolean: + tuya_living_room_main_lights_state: + tuya_kitchen_main_lights_state: + tuya_hallway_main_lights_state: + tuya_hallway_entrance_lights_state: + +light: + - platform: template + lights: + tuya_living_room_main_lights: + friendly_name: Living room main lights (scene) + value_template: "{{ is_state('input_boolean.tuya_living_room_main_lights_state', 'on') }}" + icon_template: mdi:vanity-light + turn_on: + service: input_boolean.turn_on + data: + entity_id: input_boolean.tuya_living_room_main_lights_state + turn_off: + service: input_boolean.turn_off + data: + entity_id: input_boolean.tuya_living_room_main_lights_state + + tuya_kitchen_main_lights: + friendly_name: Kitchen main lights (scene) + value_template: "{{ is_state('input_boolean.tuya_kitchen_main_lights_state', 'on') }}" + icon_template: mdi:vanity-light + turn_on: + service: input_boolean.turn_on + data: + entity_id: input_boolean.tuya_kitchen_main_lights_state + turn_off: + service: input_boolean.turn_off + data: + entity_id: input_boolean.tuya_kitchen_main_lights_state + + tuya_hallway_main_lights: + friendly_name: Hallway main lights (scene) + value_template: "{{ is_state('input_boolean.tuya_hallway_main_lights_state', 'on') }}" + icon_template: mdi:vanity-light + turn_on: + service: input_boolean.turn_on + data: + entity_id: input_boolean.tuya_hallway_main_lights_state + turn_off: + service: input_boolean.turn_off + data: + entity_id: input_boolean.tuya_hallway_main_lights_state + + tuya_hallway_entrance_lights: + friendly_name: Entrance lights (scene) + value_template: "{{ is_state('input_boolean.tuya_hallway_entrance_lights_state', 'on') }}" + icon_template: mdi:vanity-light + turn_on: + service: input_boolean.turn_on + data: + entity_id: input_boolean.tuya_hallway_entrance_lights_state + turn_off: + service: input_boolean.turn_off + data: + entity_id: input_boolean.tuya_hallway_entrance_lights_state + + +# Try to keep input_booleans consistent. +automation: + - alias: Lighting · Tuya · Update kitchen lights + trigger: + platform: state + entity_id: + - input_boolean.tuya_living_room_main_lights_state + - input_boolean.tuya_kitchen_main_lights_state + - input_boolean.tuya_hallway_main_lights_state + - input_boolean.tuya_hallway_entrance_lights_state + action: + - service: scene.turn_on + data_template: + entity_id: > + + {% set scene_name = trigger.entity_id.split('tuya_')[1].split('_lights')[0] %} + {% set state = states(trigger.entity_id) %} + scene.tuya_{{ scene_name }}_{{ state }} + + - alias: Lighting · Tuya · Update states on start + trigger: + platform: homeassistant + event: start + action: + - delay: 00:00:03 + - service_template: "input_boolean.turn_{{ states('light.living_room_tuya_lights') }}" + data: + entity_id: input_boolean.tuya_living_room_main_lights_state + + - service_template: "input_boolean.turn_{{ states('light.kitchen_main_lights') }}" + data: + entity_id: input_boolean.tuya_kitchen_main_lights_state + + - service_template: "input_boolean.turn_{{ states('light.hallway_main_lights') }}" + data: + entity_id: input_boolean.tuya_hallway_main_lights_state + + - service_template: "input_boolean.turn_{{ states('light.hallway_entrance_lights') }}" + data: + entity_id: input_boolean.tuya_hallway_entrance_lights_state diff --git a/config/packages/routines/bedtime.yaml b/config/packages/routines/bedtime.yaml index 70dc32f..3076be6 100644 --- a/config/packages/routines/bedtime.yaml +++ b/config/packages/routines/bedtime.yaml @@ -32,8 +32,8 @@ script: - service: light.turn_off entity_id: - light.living_room_all_lights - - light.hallway_all_lights - - light.kitchen_main_lights + - light.tuya_hallway_all_lights + - light.tuya_kitchen_main_lights automation: - alias: Routine · Bedtime · Toggle on bedside switch hold diff --git a/config/packages/routines/coming_home.yaml b/config/packages/routines/coming_home.yaml index aa1fa11..b27058d 100644 --- a/config/packages/routines/coming_home.yaml +++ b/config/packages/routines/coming_home.yaml @@ -11,9 +11,9 @@ script: # Enter home mode. - service: script.security_camera_off - service: light.turn_on - entity_id: light.hallway_entrance_lights - - service: light.turn_on - entity_id: light.hallway_main_lights + entity_id: + - light.tuya_hallway_entrance_lights + - light.tuya_hallway_main_lights # TODO: Only if it's dark in the living room - service: light.turn_on diff --git a/config/tablet-lovelace.yaml b/config/tablet-lovelace.yaml index 847ab26..e5475f3 100644 --- a/config/tablet-lovelace.yaml +++ b/config/tablet-lovelace.yaml @@ -24,8 +24,8 @@ views: cards: - type: custom:button-card template: small - entity: light.all_lights - name: All + entity: light.ceiling_lights + name: Ceiling - type: custom:button-card template: small entity: light.living_room_main_lights @@ -36,13 +36,13 @@ views: name: Bedroom - type: custom:button-card template: small - entity: light.hallway_main_lights + entity: light.tuya_hallway_main_lights name: Hallway - type: horizontal-stack cards: - type: custom:button-card template: small - entity: light.kitchen_main_lights + entity: light.tuya_kitchen_main_lights name: Kitchen - type: custom:button-card template: small @@ -53,7 +53,7 @@ views: name: Bedside - type: custom:button-card template: small - entity: light.hallway_entrance_lights + entity: light.tuya_hallway_entrance_lights name: Entrance - type: horizontal-stack