Thanks for the reply Ryan. This shows up in the text 3 times:
“zoning_enabled”:false
I just pushed an update. It doesn’t break my zoned system… let us see if it fixes your non-zoned systems.
The switch to HACS for Nexia worked for me…
I installed it over the top of my current config and restarted. My climate entity was renamed from climate.nativezone to climate.thermostat_1, which affected my thermostat cards, but other sensors like sensor.thermostat_1_system_status, etc. were not changed.
Thanks!!
Ryan, It worked! Thanks for the help, this is a great addition to HA.
I’m relatively new to Home Assistant having installed HASS.IO on a spare Raspberry Pi a couple weeks ago in preparation of Wink going under, so I was glad to see this integration with Nexia.
I had some trouble getting it installed due to the entities (climate.thermostat etc.) not showing up in the entity list. I found they are options for Lovelace cards though. This has me confused. Is there any way to figure out why?
Secondly it would be nice if there was an AirCleaner entity since there are times we need to put it on Allergy. I know I could make a card to call the service, but it would be nice to see the state as well. Being an old C programming electronic designer I am not much good a Python so I am not sure how difficult it would be.
Lastly as the temperature drops in Michigan bringing the humidity to zero it would be nice to have the humidifies added. It looks like the JSON for the humidifier is the same as the dehumidifier but without the ‘de’. This might be easier except and I’d be willing to test it out.
Hey,
Regarding this:
I had some trouble getting it installed due to the entities (climate.thermostat etc.) not showing up in the entity list. I found they are options for Lovelace cards though. This has me confused. Is there any way to figure out why?
I think what you’re having an issue with is getting the climate component to show up. Besides installing with HACS, you do still need to configure it using your configuration.yaml and add entries in the climate, binary_sensor, and sensor configurations.
Regarding:
Secondly it would be nice if there was an AirCleaner entity since there are times we need to put it on Allergy. I know I could make a card to call the service, but it would be nice to see the state as well. Being an old C programming electronic designer I am not much good a Python so I am not sure how difficult it would be.
I have the service exposed, but I don’t think there is a good way to show this as a switch or climate entity. You can set the air cleaner using the service.set_aircleaner_mode.
Finally, regarding:
Lastly as the temperature drops in Michigan bringing the humidity to zero it would be nice to have the humidifies added. It looks like the JSON for the humidifier is the same as the dehumidifier but without the ‘de’. This might be easier except and I’d be willing to test it out.
The POST URL should be the same for humidify and dehumidify, and I think all I would need to do is set the humidify_setpoint and change humidify_allowed to True in this function.
Since I do not have a humidifier on my system (Austin, TX isn’t as dry as they say it is), I have no way to test this. You can fork my repo, and you and I can work on making changes to enable the humidifier. Once it works, you can create a pull request and I’ll pull it into my repo.
I’m not sure of the best approach. Maybe copy the function, and flip around the dehumidify and humidify parts? The other option would be to combine both humidify and dehumidify into one function.
How does the humidity panel look on nexiahome?
Ryan,
I have the configuration.yaml entries and when I go to add cards I see the entities, but when I go to the entity list I do not see them. That is what is weird. They are there in the system and accesible, but not in the hassio configurations-entities list.
Looking a little deeper into the aircleaner, what I thought would be nice is an AirCleaner class that doesn’t exist and I did not see a class that would fit it. If the Climate class had Aircleaner functions it would be nice, but it doesn’t so I think your service.set_aircleaner_mode is best for setting it. I did not see a method to read it though and I may try to add it as I try to learn more python.
I actually tried to start adding the humidify functionality, and I might continue when I get some time. I was thinking of using the Climate humidity target +x% for dehumidify, and -x% for humidify, or setting one or the other depending on the heat/cool setting. I also thought about just exposing both set point methods as services.
It’ll be an opportunity to learn python, since most of my programming has been in C for embedded and we are likely to start using python at work for testing our automotive electronics.
Thanks for the answers.
Rob
Huh, you’re right… they don’t show up under the Entities list. I’m not sure if that is reserved for HA Integrations or something.
If you have the Developer Tools tab, it should show up under the States tab.
I can add an sensor._air_cleaner_status sensor. I have the function call in the nexia_thermostat.py, but never added it to the sensors.
I think I have the humidify support integrated, but now looking back, something has regressed, even in the current release, where I cannot set the target humidity.
Is anyone else seeing this issue?
An air cleaner status would be great. Thanks.
I just tried the humidify change and it is not working for me in what HACS reports as 7ad0968. It just snaps back to whatever I set the dehumidify to in the android app.
Rob
Hey Rob,
That’s the behavior I’m seeing right now as well. I didn’t have a chance to look into it today. I’ll try to look into it tomorrow evening.
Thanks,
Ryan Nazaretian
Sorry, tomorrow evening took a little longer than anticipated.
I sat down for an hour and looked at it more. I think the issue was using some default values. Now I query the JSON data for default values if either dehumidify or humidify is not supported.
Please let me know if this fixes the humidify_setpoint issue.
Can someone explain how I get my zone 2 and 3? They are connected to the main stat via zwave. The zone 2 and 3 stat is not an XL850, its a XR724
They must not be exposed in the same way that wired ones are. Can you change them via the Nexia app or visa the mynexia.com portal? I’m guessing so. You may need to grab the JSON from mynexia.com.
If you feel safe doing it, get my your JSON file. Feel free to scrub any personal data you find in it. Insert your below, and send it to me ([email protected]).
https://www.mynexia.com/houses//xxl_thermostats
I just saw the post about the humidity update last night and found the changes are still in prerelease on GitHub. So I copied the nexia directory to my custom components and restarted. after restart the thermostat was gone. I used HACS to go back to the released version and it is back.
I’ll try to get a chance tonight to look into why it is not initializing.
Rob
Check if there are any errors in the Home Assistant log.
I do have one small update that I’m going to try to push tonight that allows anyone to download their JSON file and while offline, interactively poke at the function calls (useful for debugging Ken’s issue). It shouldn’t affect normal operation, but I need to double-check that it doesn’t since interfere with online operations.
I got a few minutes to SVN home and found the error. Line 74 of Climate.py has an extra () after humidify_set_service. removing the ‘()’ makes the error go away and I have a climate entity:
2020-01-06 09:13:41 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform nexia
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/nexia/climate.py", line 74, in setup_platform
DOMAIN, SERVICE_SET_HUMIDIFY_SETPOINT, humidify_set_service(),
TypeError: humidify_set_service() missing 1 required positional argument: 'service'
Oops, yep. That’ll do it. That’s why I didn’t release it yet. I wanted someone to check it out.
If you can fix that locally and let me know if that fixes everything. I cannot test that function since my system has no humidifier function.
-Ryan
I tried to set the humidity and it gave an error. Line 446 has a type (humdify instead of humidify). It should read:
self._device.set_humidify_setpoint(humidify_setpoint / 100.0, self._thermostat_id)
hopefully I’ll get some more time to check it tonight.
Rob
I got it working sort of. It sends commands to Nexia, but if it is less that 1 or greater than 100 nexia received a “set humidify setpoint to 0%” and if it is greater than 1 but less than 100 nexia reports it received a “set humidify setpoint 1%”.
Does the input truncate greater than 100 to 0 and it nexia is expecting 0-100 not 0 to 1 so the ‘/100’ before calling the post is the problem?
Rob