mirror of
https://github.com/GeorgeSG/sarah.git
synced 2026-05-10 10:24:42 +00:00
Workaround Tuya lag by using Tuya scenes
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user