Add aircleaner and humidify service to nexia climate (#33078)
* Add aircleaner and humidify service to nexia climate * These were removed from the original merge to reduce review scope * Additional tests for binary_sensor, sensor, and climate states * Switch to signals for services Get rid of everywhere we call device and change to zone or thermostat as it was too confusing Renames to make it clear that zone and thermostat are tightly coupled * Make scene activation responsive * no need to use update for only one key/value * stray comma * use async_call_later * its async, need ()s * cleaner * merge entity platform services testing branch
This commit is contained in:
parent
0e3dc7976c
commit
b8fdebd05c
13 changed files with 575 additions and 291 deletions
133
tests/components/nexia/test_sensor.py
Normal file
133
tests/components/nexia/test_sensor.py
Normal file
|
@ -0,0 +1,133 @@
|
|||
"""The sensor tests for the nexia platform."""
|
||||
|
||||
from .util import async_init_integration
|
||||
|
||||
|
||||
async def test_create_sensors(hass):
|
||||
"""Test creation of sensors."""
|
||||
|
||||
await async_init_integration(hass)
|
||||
|
||||
state = hass.states.get("sensor.nick_office_temperature")
|
||||
assert state.state == "23"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"device_class": "temperature",
|
||||
"friendly_name": "Nick Office Temperature",
|
||||
"unit_of_measurement": "°C",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.nick_office_zone_setpoint_status")
|
||||
assert state.state == "Permanent Hold"
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Nick Office Zone Setpoint Status",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.nick_office_zone_status")
|
||||
assert state.state == "Relieving Air"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Nick Office Zone Status",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_air_cleaner_mode")
|
||||
assert state.state == "auto"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Master Suite Air Cleaner Mode",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_current_compressor_speed")
|
||||
assert state.state == "69.0"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Master Suite Current Compressor Speed",
|
||||
"unit_of_measurement": "%",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_outdoor_temperature")
|
||||
assert state.state == "30.6"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"device_class": "temperature",
|
||||
"friendly_name": "Master Suite Outdoor Temperature",
|
||||
"unit_of_measurement": "°C",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_relative_humidity")
|
||||
assert state.state == "52.0"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"device_class": "humidity",
|
||||
"friendly_name": "Master Suite Relative Humidity",
|
||||
"unit_of_measurement": "%",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_requested_compressor_speed")
|
||||
assert state.state == "69.0"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Master Suite Requested Compressor Speed",
|
||||
"unit_of_measurement": "%",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
||||
|
||||
state = hass.states.get("sensor.master_suite_system_status")
|
||||
assert state.state == "Cooling"
|
||||
|
||||
expected_attributes = {
|
||||
"attribution": "Data provided by mynexia.com",
|
||||
"friendly_name": "Master Suite System Status",
|
||||
}
|
||||
# Only test for a subset of attributes in case
|
||||
# HA changes the implementation and a new one appears
|
||||
assert all(
|
||||
state.attributes[key] == expected_attributes[key] for key in expected_attributes
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue