Trouble setting a custom Z-Wave parameter

Folks, I’m trying to control the RGB led on a ZW117 Aeotec / AEON Labs Range Extender 6 device (to use as a visual indicator for important notifications, etc).

I can change the LED color via HA UI normally (it shows the color picker and everything), but I can’t figure out how to change it via automation / script.

I tried using the action “Setting a value of a Z-Wave Value”, with command class Color Switch, and all possible combinations of property / property key / end point, without success (see example below). I always get an error like Node(node_id=9) - NotFoundError: Value 9-51-0-33-0 not found on node Node(node_id=9).

Also tried with command class “Configuration”, but same error.

I don’t have much experience with HA, so would appreciate any tips on how to set a custom Z-Wave parameter, or how to begin troubleshooting.

This is the device, and here’s the documentation. Below you have the Z-Wave debug logs for color switch event done manually through the UI (indentation added).

Thank you!

2023-05-21 18:36:58.615 DEBUG (MainThread) [zwave_js_server] Publishing message:
{
	'command': 'node.set_value',
	'messageId': 'aa04ce5893034a149fd8b969897542c1',
	'nodeId': 9, 
	'options': {'transitionDuration': 'default'},
	'value': {'blue': 36, 'green': 255, 'red': 145}, 
	'valueId': {'commandClass': 51, 'endpoint': 0, 'property': 'targetColor'}
}

2023-05-21 18:36:58.763 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event", "event": {
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"currentColor",
			"propertyKey":2,
			"endpoint":0,
			"newValue":145,
			"prevValue":255,
			"propertyName":"currentColor",
			"propertyKeyName":"Red"
		}
	}
}', extra='')

2023-05-21 18:36:58.764 DEBUG (MainThread) [homeassistant.components.zwave_js] [light.range_extender_aeotec_6] Value currentColor/Red changed to: 145

2023-05-21 18:36:58.764 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event",
	"event":{
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"currentColor",
			"propertyKey":3,
			"endpoint":0,
			"newValue":255,
			"prevValue":0,
			"propertyName":"currentColor",
			propertyKeyName":"Green"
		}
	}
}', extra='')
2023-05-21 18:36:58.764 DEBUG (MainThread) [homeassistant.components.zwave_js] [light.range_extender_aeotec_6] Value currentColor/Green changed to: 255

2023-05-21 18:36:58.764 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event",
	"event":{
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"currentColor",
			"propertyKey":4,
			"endpoint":0,
			"newValue":36,
			"prevValue":0,
			"propertyName":"currentColor",
			"propertyKeyName":"Blue"
		}
	}
}', extra='')
2023-05-21 18:36:58.765 DEBUG (MainThread) [homeassistant.components.zwave_js] [light.range_extender_aeotec_6] Value currentColor/Blue changed to: 36

2023-05-21 18:36:58.765 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event",
	"event":{
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"currentColor",
			"endpoint":0,
			"newValue":{"red":145,"green":255,"blue":36},
			"prevValue":{"red":145,"green":255,"blue":36},
			"propertyName":"currentColor"
		}
	}
}', extra='')
2023-05-21 18:36:58.765 DEBUG (MainThread) [homeassistant.components.zwave_js] [light.range_extender_aeotec_6] Value currentColor/None changed to: {'red': 145, 'green': 255, 'blue': 36}

2023-05-21 18:36:58.767 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event",
	"event":{
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"targetColor",
			"endpoint":0,
			"newValue":{"red":145,"green":255,"blue":36},
			"prevValue":{"red":145,"green":255,"blue":36},
			"propertyName":"targetColor"
		}
	}
}', extra='')
2023-05-21 18:36:58.768 DEBUG (MainThread) [homeassistant.components.zwave_js] [light.range_extender_aeotec_6] Value targetColor/None changed to: {'red': 145, 'green': 255, 'blue': 36}

2023-05-21 18:36:58.768 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"event",
	"event":{
		"source":"node",
		"event":"value updated",
		"nodeId":9,
		"args":{
			"commandClassName":"Color Switch",
			"commandClass":51,
			"property":"hexColor",
			"endpoint":0,
			"newValue":"91ff24",
			"prevValue":"ff0000",
			"propertyName":"hexColor"
		}
	}
}', extra='')

2023-05-21 18:36:58.768 DEBUG (MainThread) [zwave_js_server] Received message:
WSMessage(type=<WSMsgType.TEXT: 1>, data='
{
	"type":"result",
	"success":true,
	"messageId":"aa04ce5893034a149fd8b969897542c1",
	"result":{"success":true}
}', extra='')

You would need to use the targetColor or hexColor properties. The device diagnostic file has the example form of the data structure for each of those.

The debug logs show the object required for targetColor property: {"red":145,"green":255,"blue":36}.

Oh, if you are able to use the color picker, then just use the light.turn_on service with the color values.

1 Like

oh, you’re a genius – thank you @freshcoast! Spot on. I first tried with targetColor, but still couldn’t quite get it working (although it was an improvement – it accepted the command using {"red":145,"green":255,"blue":36}, but the color didn’t change, irrespective of the RGB values).

But light.turn_on worked flawlessly, with the advantage that I can use the color picker directly in the UI, so that’s more than enough.

Thank you!

Gui