Closed sjhill01 closed 2 years ago
Attempts to do this in other ways also fail; if I try to do this:
Dim objDevice As HsDevice = hs.GetDeviceWithFeaturesByRef(13)
It fails with this error:
HSCF.Communication.ScsServices.Communication.Messages.ScsRemoteException: 'Exception while executing GetDeviceWithFeaturesByRef - devRef : 13 - message : Error while converting 21 to HsFeature : Specified argument was out of the range of valid values.'
(Note that 21 is the specific feature I was trying to get in the original issue, so there's something about that feature that the HS isn't handling well...)
can you send me your devices.json so that I can try to reproduce with this specific feature
I'm closing this issue, if you still have this problem please reopen and send me the devices.json file.
Sorry, I wasn't getting email notifications from github to the right account so I missed all this. I think I've figured out the problem thanks to this thread: https://forums.homeseer.com/forum/hs4-products/hs4-plugins/utilities-plug-ins-aa/device-history-shill-aa/1594383-upgrade-failure
The bottom line is that if a device has an invalid Status Value/Graphics configuration (overlapping values/ranges) caused by the migration from HS3's way of separating the status/control from graphics to HS4's method of controls vs. status/graphics (sometimes? this is still weird IMO). So if you have a device with a status range of -10 to 10 AND a single value of 0, you'll see Homeseer throw an error in the log when you try to retrieve the device via a plugin/hs.GetDevice call:
2/21/2023 6:50:53 PM HomeSeer Error Error while getting feature 3531 : A status graphic with that value set already exists
followed in my case by:
2/21/2023 6:50:51 PM Device History Error Device Location/Name lookup failed: Object reference not set to an instance of an object
because the result of the request was Nothing.
I no longer have the problem in my environment (so I can't share the json) since I addressed the underlying cause without realizing it was this, and HS4 no longer lets you get devices into this state. But hopefully this is enough detail for you to recreate the problem and provide a solution.
Environment
HomeSeer
OS
Windows
HS Version
v4.2.130
Development
PSDK Version
v1.4.1.0
Language
VB
IDE
VS2019
Dev OS
Windows
Plugin
Honeywell WiFi Plugin
Problem
Description
Title says it all. This line of code fully executes (it passes both checks) and still the return value is Nothing:
If hs.DoesRefExist(intRef) And hs.IsRefDevice(intRef) = False Then objFeature = hs.GetFeatureByRef(intRef)
Expected Behavior
Requesting the feature for a valid ref should return the feature.
Steps to Reproduce
See above.