Hey all,
Transitioning from a HomeSeer hub to HA. I’ve got HA running, but some things are slower than it was on HomeSeer. Specifically, I have several HS 200+/300+ switches where I use status lights. My hub is a Zooz ZST39 (800 series). On ZWaveJS, devices have a good ping time, almost all between 50-75ms, and most devices directly connected to the hub. All devices are S2 security, “No Security”, and one device (a garage door controller) is S0 Legacy. All devices are ZWave+. There are NO 700 series chips in the network, everything is 500 or 800 chips. When updating the status lights, HA is VERY slow to get them updated and returned. HS updated nearly instantly. Here is an example of my YAML.
This section of code increments a counter, reads the lock and door states, delays 2 seconds, checks the counter, then sends an update to the desired switches. The update is extremely slow, taking more than 20 seconds between when the first switch changes and the last switch changes. I’ve tried moving things to parallel execution, changing logic, changing to multicast, etc. but it is still pretty slow. The trace indicates the logic runs in 0 seconds, the delay is 2 seconds, getting to the ZWave set is 0 seconds, while the whole thing takes around 8-9 seconds (2 of those seconds are expected). Would appreciate thoughts to improving the response time for this.
TIA,
Jason
alias: "Front Door: Update"
description: ""
trigger:
- platform: state
entity_id:
- input_select.front_door_battery
- input_select.front_door_lock_state
- input_select.front_door_state
condition: []
action:
- service: counter.increment
data: {}
target:
entity_id: counter.status_light_front_door_execution_count
- if:
- condition: state
entity_id: input_select.front_door_state
state: Open
- condition: state
entity_id: input_select.front_door_lock_state
state: Unlocked
then:
- service: input_number.set_value
data:
value: 5
target:
entity_id: input_number.front_door_color
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.status_light_7_flash
- if:
- condition: state
entity_id: input_select.front_door_state
state: Open
- condition: state
entity_id: input_select.front_door_lock_state
state: Locked
then:
- service: input_number.set_value
data:
value: 1
target:
entity_id: input_number.front_door_color
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.status_light_7_flash
- if:
- condition: state
entity_id: input_select.front_door_state
state: Closed
- condition: state
entity_id: input_select.front_door_lock_state
state: Unlocked
then:
- service: input_number.set_value
data:
value: 2
target:
entity_id: input_number.front_door_color
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.status_light_7_flash
- if:
- condition: state
entity_id: input_select.front_door_state
state: Closed
- condition: state
entity_id: input_select.front_door_lock_state
state: Locked
then:
- service: input_number.set_value
data:
value: 2
target:
entity_id: input_number.front_door_color
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.status_light_7_flash
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 0
- service: counter.decrement
data: {}
target:
entity_id: counter.status_light_front_door_execution_count
- if:
- condition: numeric_state
entity_id: counter.status_light_front_door_execution_count
below: 1
then:
- parallel:
- service: zwave_js.multicast_set_value
target:
entity_id:
- light.porch_lights
- light.den_fan_lights
- switch.office_lights
- light.stairs
- light.main_recessed_kitchen
- light.master_bedroom
- light.island_lights
data:
property: "27"
command_class: "112"
value: "{{ states('input_number.front_door_color') }}"
- service: zwave_js.multicast_set_value
target:
entity_id:
- light.porch_lights
- light.den_fan_lights
- switch.office_lights
- light.stairs
- light.main_recessed_kitchen
- light.master_bedroom
- light.island_lights
data:
property: "31"
command_class: "112"
value: >
{% set led1_blink = states('input_boolean.status_light_1_flash')
%} {% set led2_blink =
states('input_boolean.status_light_2_flash') %} {% set
led3_blink = states('input_boolean.status_light_3_flash') %} {%
set led4_blink = states('input_boolean.status_light_4_flash')
%} {% set led5_blink =
states('input_boolean.status_light_5_flash') %} {% set
led6_blink = states('input_boolean.status_light_6_flash') %} {%
set led7_blink = states('input_boolean.status_light_7_flash')
%} {{(led1_blink == 'on') | int * 1 + (led2_blink == 'on') |
int * 2 + (led3_blink == 'on') | int * 4 + (led4_blink == 'on')
| int * 8 + (led5_blink == 'on') | int * 16 + (led6_blink ==
'on') | int * 32 + (led7_blink == 'on') | int * 64 }}
- service: zwave_js.multicast_set_value
target:
entity_id:
- light.porch_lights
- light.den_fan_lights
- switch.office_lights
- light.stairs
- light.main_recessed_kitchen
- light.master_bedroom
- light.island_lights
data:
property: "30"
command_class: "112"
value: 5
mode: parallel
max: 10