Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing key in dict after upgrade to 0.7.0 #10

Open
mlamoure opened this issue Oct 2, 2018 · 6 comments
Open

Missing key in dict after upgrade to 0.7.0 #10

mlamoure opened this issue Oct 2, 2018 · 6 comments

Comments

@mlamoure
Copy link

mlamoure commented Oct 2, 2018

See log below. Usually editing the device and saving it will add missing dicts, but when I tried that I got validation errors for my devices.

Stopped plugin "SenseME Fan 0.7.0"
Starting plugin "SenseME Fan 0.7.0" (pid 22147)
Started plugin "SenseME Fan 0.7.0"
SenseME Fan Error Error in plugin execution runConcurrentThread:

Traceback (most recent call last):
File "plugin.py", line 515, in runConcurrentThread
File "plugin.py", line 434, in processFanMessage
KeyError: 'key fanTempUnits not found in dict'

SenseME Fan Error plugin runConcurrentThread function returned or failed (will attempt again in 10 seconds)
SenseME Fan Error Error in plugin execution runConcurrentThread:

Traceback (most recent call last):
File "plugin.py", line 515, in runConcurrentThread
File "plugin.py", line 449, in processFanMessage
KeyError: 'key fanTempUnits not found in dict'

SenseME Fan Error plugin runConcurrentThread function returned or failed (will attempt again in 10 seconds)
Z-Wave received "Upstairs Hallway Motion Sensor" status update is off
Trigger Turn off lights when no motion in Upstairs Hallway
SenseME Fan Error Error in plugin execution UiValidate:

Traceback (most recent call last):
File "plugin.py", line 553, in validateDeviceConfigUi
ValueError: invalid literal for int() with base 10: ''

SenseME Fan Error Error in plugin execution runConcurrentThread:

Traceback (most recent call last):
File "plugin.py", line 515, in runConcurrentThread
File "plugin.py", line 434, in processFanMessage
KeyError: 'key fanTempUnits not found in dict'

SenseME Fan Error plugin runConcurrentThread function returned or failed (will attempt again in 10 seconds)
SenseME Fan Error Error in plugin execution runConcurrentThread:

Traceback (most recent call last):
File "plugin.py", line 515, in runConcurrentThread
File "plugin.py", line 449, in processFanMessage
KeyError: 'key fanTempUnits not found in dict'

SenseME Fan Error plugin runConcurrentThread function returned or failed (will attempt again in 10 seconds)

@bpennypacker
Copy link
Owner

Sorry for the delay in getting back to you about this. Are you still seeing these errors or were you able to resolve it? If you're still seeing this then a few questions/suggestions:

How did you install the new version? Did you disable the old version before installing the new version?

Try disabling the plugin then re-installing and see if the error persists. If it does then try disabling it, removing the disabled plugin (Delete it from /Library/Application Support/Perceptive Automation/Indigo 7.2/Plugins (Disabled)/ or whatever version of Indigo you have), then re-installing it by double clicking on SenseME.indigoPlugin.

@mlamoure
Copy link
Author

mlamoure commented Oct 5, 2018

Hi there-

Same issue when following that disable and re-install procedure. But, I've gotten around it by hacking a bit.

I have a couple of published plugins for Indigo myself. Whenever you add a state to a existing device, Indigo throws ugly messages if someone upgrades and is missing those states. A hack is to edit the device, click save, and Indigo will add the missing properties during the save procedure. I tried that with your plugin, but I received a validation error:

Traceback (most recent call last):
File "plugin.py", line 556, in validateDeviceConfigUi
ValueError: invalid literal for int() with base 10: ''

SenseME Fan Error Error in plugin execution runConcurrentThread:

So, I commented out the Feireinheight block of your validateDeviceConfigUi function, lines following the else statement on 552. I was then able to re-save my devices, which seems to have added the keys. I then uncommented to be back aligned to your current release code.

My setup is now straight, but maybe adding some conditional checks to see if "fanTempUnits" is part of the dict for each fan device that the user has and adding it. I assume this was added on this latest release? If my solution was repeatable I would have submitted a pull request with the changes.

@smokey-live
Copy link

I'm having the same problem when upgrading to 0.7.0. Tried disabling the plugin and then upgrading but resulted in the same error.

@gt3mike
Copy link

gt3mike commented Oct 14, 2018

Same here. Also tried deleting my fan and recreating it, and I can't create a new SenseME device. I'm told to check the highlighted fields on the device settings, but none of the fields are highlighted.

Happy to help test if you'd like.

@codeskein
Copy link

It appears that devices which were created with 0.6.1 are missing some fields that are needed for the configuration UI validation step to succeed. I've submitted a pull request (#11) which should fix that and, in turn, allow the original problem to be fixed by editing/saving the device.

@smeee-again
Copy link

I have the same issue but started with v0.7.0. I'm currently running the 0.6.1 plugin without issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants