maverick2041 Posted January 21, 2021 Posted January 21, 2021 Hi there, I'm trying to figure out if it's possible, and how to format a proper service call, to update the LED on a Inovelli ZWave Red Series On/Off Switch from Home Assistant using the ISY994 integration. I'm using this tool to determine the proper parameters to send: https://nathanfiscus.github.io/inovelli-notification-calc/ This works great when running from the ISY, but I'm unsure how to proceed with Home Assistant. Fast-Blinks the LED Orange for 5 seconds It seems like I would need to use isy994.send_raw_node_command (https://www.home-assistant.io/integrations/isy994/) in Home Assistant but I'm not sure what/if to use for "command:" or how to indicate the byte sizes of the parameters and their actual values. I understand that it needs to be in dictionary format, but have no idea what the key names might be. This is the format specified for using the isy994.send_raw_node_command: Parameter Description Example entity_id Name of an entity to send command. light.front_door command The ISY REST Command to be sent to the device DON value (Optional) The integer value to be sent with the command. 255 parameters (Optional) A dict of parameters to be sent in the query string (e.g. for controlling colored bulbs). [object Object] unit_of_measurement (Optional) The ISY Unit of Measurement (UOM) to send with the command, if required. 67 I know I can communicate with the switch since I'm able to turn it on/off from Home Assistant by using the following in an isy994.send_raw_node_command call: entity_id: switch.zw_002_on_off_power_switch command: DON (or DOF) Any ideas or guidance you have would be very much appreciated! Thank you for reading!
Javi Posted January 21, 2021 Posted January 21, 2021 Hi @maverick2041, Below is a rest command to set the param you may have to change the uom (uom107) to the correct correct byte value (see uom definitions for corresponding numerical values, i.e the 107 in uom107). You may be able to set CONFIG as the command then NUM.uom107 and VAL.uom107 (with correct bit values) as the dict keys. I don't use Home Assistant but this may help you find the right path /rest/nodes/ZW014_1/cmd/CONFIG?NUM.uom107=0&VAL.uom107=1 2
maverick2041 Posted January 21, 2021 Author Posted January 21, 2021 (edited) Thanks very much for the suggestion Javi. I tried to implement what you had and came up with this for the service call in Home Assistant: entity_id: switch.zw_002_on_off_power_switch command: CONFIG parameters: {"num.uom107":8,"val.uom114":33884690} Home Assistant won't accept the dict for parameters unless I encase the key names in quotes "" Based on the UOM values found here: https://wiki.universal-devices.com/index.php?title=ISY_Developers:API:V5:Appendix:Units_of_Measure Home Assistant however throws this error using "CONFIG" for the command: Failed to call service isy994/send_raw_node_command. Invalid ISY Command. for dictionary value @ data['command'] It accepts the command if I change CONFIG to ST, or DON, DOF, etc, but it just performs the command and ignores the parameters.I found the REST equivalent of what I'm trying to do here: https://wiki.universal-devices.com/index.php?title=ISY_Developers:API:REST_Interface#Commands This works: http://x.x.x.x/rest/zwave/node/ZW002_1/config/set/8/33884690/4 Seems like I'll have to figure out or ask if the isy994 integration for Home Assistant supports a "config" command, but at least I can pass the values over REST requests for now. Thanks again. Edited January 22, 2021 by maverick2041
Screw Loose Dan Posted January 22, 2021 Posted January 22, 2021 I wasn't trying to set a ZWave parameter, but I have a few instances were I wanted to do things not natively supported by Home Assistant (or at least I couldn't figure it out). Rather than using rest calls (which I hadn't even considered, ironically), I used state variables which trigger programs to complete what I needed. Setting a state variable was relatively easy in HA. Many ways to skin a cat... 2
maverick2041 Posted January 23, 2021 Author Posted January 23, 2021 (edited) Also a good idea, thank you! ? Though I was hoping to do this as directly as possible. I managed to find two issues on GitHub tracking feature requests for this exact functionality for PyISY & the ISY994 home assistant component, so it looks like it may be possible in the future. PyISY: https://github.com/automicus/PyISY/issues/140 ISY994 HA component: https://github.com/shbatm/hacs-isy994/issues/70 Edited January 23, 2021 by maverick2041 1
maverick2041 Posted February 19, 2021 Author Posted February 19, 2021 I'm happy to report, thanks to developer shbatm in the two aforementioned repos, that this is now working directly in Home Assistant via the isy994 integration. Tested with an Inovelli Red Series On/Off switch as-of release 3.0.0.dev17 here: https://github.com/shbatm/hacs-isy994/releases 2
MrBill Posted February 21, 2021 Posted February 21, 2021 On 2/19/2021 at 5:57 PM, maverick2041 said: I'm happy to report, thanks to developer shbatm in the two aforementioned repos, that this is now working directly in Home Assistant via the isy994 integration. Tested with an Inovelli Red Series On/Off switch as-of release 3.0.0.dev17 here: https://github.com/shbatm/hacs-isy994/releases shbatm also made a nice change/bug fix yesterday for the Insteon folks that have battery devices (mini remotes, open/close sensors, hidden door sensor, motion). The change was actually to the PyISY library which is used by the HA integration. Groups/Scenes that contain a battery device now ignore the state of the battery device when determining whether the scene is on or off in HA... So far the fix is only in beta release version 3.0.0dev18. It's a wonderful change! especially if you have battery devices as scene controllers in the ISY.
Recommended Posts