bdraco / nexia Goto Github PK
View Code? Open in Web Editor NEWPython library for connecting to nexia
License: Apache License 2.0
Python library for connecting to nexia
License: Apache License 2.0
I have a Trane XL1050 with a remote sensor and RoomIQ enabled on my account; this allows me to see both the thermostat temperature and the remote temperature sensor on Trane's automation website.
Is it possible for this library to support the RoomIQ sensors, and to expose them to HomeAssistant?
I've done some digging into Trane's API and it looks like the RoomIQ sensors are present in the API. If you can give some guidance on how I can add support, I can help work on that or test.
I saw your comment on the other thread about the change only affecting AS devices. I have an AS device (XL824?). Is this an issue that I need to wait for a fix?
Nexia changed websites. I am assuming this is why my nexia integration no longer works.
The new website should be https://asairhome.com/houses/<YOUR_HOUSE_ID>/climate.
Also, I uninstalled the nexia integration and it won't reinstall.
From the Log...
Unable to prepare setup for platform nexia.binary_sensor: Unable to set up component.
February 25, 2021, 12:36:05 PM – setup.py (ERROR) - message first occurred at February 25, 2021, 12:36:05 PM and shows up 3 times
Setup of nexia is taking longer than 300 seconds. Startup will proceed without waiting any longer
February 25, 2021, 12:36:05 PM – setup.py (ERROR)
Waiting on integrations to complete setup: nexia
February 25, 2021, 12:35:07 PM – bootstrap.py (WARNING) - message first occurred at February 25, 2021, 12:32:07 PM and shows up 4 times
ClimateDevice is deprecated, modify NexiaZone to extend ClimateEntity
February 25, 2021, 12:31:07 PM – Climate (WARNING)
BinarySensorDevice is deprecated, modify NexiaBinarySensor to extend BinarySensorEntity
February 25, 2021, 12:31:05 PM – Binary sensor (WARNING)
have you ever looked into the event streamer websocket url returned from the /mobile/session endpoint? once connected, you receive some updates (like run mode - auto/cool/heat/off and system mode - schedule/hold) but not other updates (like setpoint and temp changes). would be nice to move away from polling but i've never gotten too far...
The Home Assistant climate.py tries to import nexia.const.FAN_MODES:
Unable to prepare setup for platform nexia.climate: Platform not found (cannot import name 'FAN_MODES' from 'nexia.const' (/usr/local/lib/python3.7/site-packages/nexia/const.py)).
FAN_MODES should contain ["auto", "on", "circulate"] if I recall correctly.
I have XR724 thermostat and looks like API to work with it is different from XR724.
Data about it is not visible with https://www.mynexia.com/houses/{HOUSE_ID}/xxl_thermostats request, but at least from web site UI can be accessed with request to https://www.mynexia.com/houses/{HOUSE_ID}/diagnostics/thermostats/{DEVICE_ID}
Sample of this data:
{
"name":"Second floor",
"temperature_scale":"c",
"temperature":"24.5",
"heat_setpoint":"24.0",
"cool_setpoint":"27.0",
"min_cool_setpoint":"13",
"max_cool_setpoint":"37",
"min_heat_setpoint":"13",
"max_heat_setpoint":"37",
"setpoint_increment":0.5,
"humidity":"35",
"outdoor_temperature":"",
"mode":"Auto",
"run_mode":"Run Schedule",
"fan_mode":"Auto",
"operating_state":"System Idle",
"fan_state":"Fan Off",
"display_lock":false,
"is_connected":true
}
In Nexia web UI configuration settings for it are limited - I see more options in Nexia Android application. I also don't see this device with Nexia Google Assistnat and Alexa integration - so I'm really interested in bringing some support of it in HomeAssistant.
Unable to set emergency heat via home assistant using tranehome.
https://community.home-assistant.io/t/nexia-and-trane-xl1050-xl850-thermostat/48673/205
The website lets you download the history for the past week at /xxl_history/$thermosat_id/daily_history.json or the histor for the last month at /xxl_history/$thermosat_id/daily_history.json
It also supports a csv:
https://www.mynexia.com/xxl_history/$thermostat_id/monthly_history.csv
https://www.mynexia.com/xxl_history/$thermostat_id/daily_history.csv
When I try to change the temperature in Home Assistant, I get the following error, which appears to be coming from the nexia API itself:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 202, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1738, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1775, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 207, in handle_service
await service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 931, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/init.py", line 613, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/nexia/climate.py", line 340, in async_set_temperature
await self._zone.set_heat_cool_temp(
File "/usr/local/lib/python3.10/site-packages/nexia/zone.py", line 340, in set_heat_cool_temp
heat_temperature = min(
TypeError: '<' not supported between instances of 'int' and 'NoneType'
I am running the newest version of home assistant (2022.10.5), with version 2.0.4 of the nexia API. I have a XL850 thermostat for my system, and am trying to set the temperature with the system in Heating or Cooling mode.
On line:
https://github.com/bdraco/nexia/blob/master/nexia/home.py#L423
The path to the list of thermostat's was not accurate for my XL950, on an account with only 1 HVAC system. The code would have to be updated as follows to work on my unit:
def _extract_devices_from_houses_json(json_dict: dict):
"""Extras the payload from the houses json endpoint data."""
return json_dict["result"]["_links"]["child"][DEVICES_ELEMENT]["data"]
Note the removal of the "items" key at the end. I was able to work around this by manually creating the NexiaThermostat object with the appropriate json subkey.
I’ve been using the Nexia integration for several months and have had no issues. My account has been moved over to asairhome.com for a month or so now since I have an American Standard system.
As previously reported last week in a closed issue I too am starting to get the 401 error in the logs. I assume the integration is still pointing to nexia login and not asairhome. So I removed the Nexia integration and tried to reinstall the integration.
I enter in my log in credentials but I keep getting Invalid Authentication error. I’m able to use the same log in credentials on asairhome.com and get right in so the login credentials are correct.
Hi @bdraco, really appreciate your work here and would like to help. I'm an experienced dev, but I was hoping you could save me some time by giving me an overview of how you maintain this plugin.
Are you just using a local proxy to MITM the Nexia/Trane/AS app's API calls?
I'll try to find out how to work on Home Assistant elsewhere, but any Nexia-specific info is helpful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.