Using HA 0.51.2, I am having difficulty getting the set_config_parameter functionality to work with the Aeotec Siren Version Gen5. Calling this service from the HA Z-Wave Manager works, showing the issuance of:
2017-08-18 20:14:40.750 Info, Node008, Value::Set - COMMAND_CLASS_CONFIGURATION - Siren sound and Volume - 37 - 1 - Sound 2 - Low Volume
2017-08-18 20:14:40.751 Info, Node008, Configuration::Set - Parameter=37, Value=513 Size=2
in the OZW_Log.txt. This successfully changes sound and volume.
However, when calling the same method from a script or an action does not appear to work!
If I execute a script such as:
- service: zwave.set_config_parameter
data_template: {
"node_id": 8,
"parameter": 37,
"value": 257,
"size": 2
}
- service: switch.turn_on
entity_id: switch.aeotec_zw080_siren_gen5_switch
- delay:
seconds: 2
- service: switch.turn_off
entity_id: switch.aeotec_zw080_siren_gen5_switch
then the sound does not get changed, nomatter what value is used! I merely get 3 seconds of alarm as previously set in the Z-Wave Manager. The OpenZWave log shows for the start of this sequence:
2017-08-18 21:03:36.888 Info, Node008, Value::Set - COMMAND_CLASS_SWITCH_BINARY - Switch - 0 - 1 - True
2017-08-18 21:03:36.888 Info, Node008, SwitchBinary::Set - Setting node 8 to On
and in the HA log I get:
2017-08-18 21:03:36 ERROR (Thread-8) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/core.py", line 1030, in execute_service service_handler.func(service_call)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py", line 443, in set_config_parameter value.data = selection
File "/srv/homeassistant/lib/python3.4/site-packages/openzwave/value.py", line 292, in data self._network.manager.setValue(self.value_id, value)
File "src-lib/libopenzwave/libopenzwave.pyx", line 2867, in libopenzwave.PyManager.setValue (openzwave-embed/open-zwave-master/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:23786)
TypeError: Expected str, got int
I have also tried excluding the “size” parameter, and enclosing all parameter values in quotes, but get the same behaviour.
Any ideas? Is there a way to force COMMAND_CLASS_CONFIGURATION communication rather than just COMMAND_CLASS_SWITCH_BINARY?
Thanks!