commit
1c742796da
homeassistant
components
bluetooth
fibaro
frontend
gtfs
hassio
hive
homekit_controller
netatmo
switchbot
unifi
generated
tests/components
homekit_controller
netatmo
|
@ -9,7 +9,7 @@
|
|||
"bleak==0.18.1",
|
||||
"bleak-retry-connector==2.1.3",
|
||||
"bluetooth-adapters==0.6.0",
|
||||
"bluetooth-auto-recovery==0.3.3",
|
||||
"bluetooth-auto-recovery==0.3.4",
|
||||
"dbus-fast==1.24.0"
|
||||
],
|
||||
"codeowners": ["@bdraco"],
|
||||
|
|
|
@ -650,8 +650,8 @@ class FibaroDevice(Entity):
|
|||
attr[ATTR_BATTERY_LEVEL] = int(
|
||||
self.fibaro_device.properties.batteryLevel
|
||||
)
|
||||
if "fibaroAlarmArm" in self.fibaro_device.interfaces:
|
||||
attr[ATTR_ARMED] = bool(self.fibaro_device.properties.armed)
|
||||
if "armed" in self.fibaro_device.properties:
|
||||
attr[ATTR_ARMED] = self.fibaro_device.properties.armed.lower() == "true"
|
||||
except (ValueError, KeyError):
|
||||
pass
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"domain": "frontend",
|
||||
"name": "Home Assistant Frontend",
|
||||
"documentation": "https://www.home-assistant.io/integrations/frontend",
|
||||
"requirements": ["home-assistant-frontend==20221006.0"],
|
||||
"requirements": ["home-assistant-frontend==20221010.0"],
|
||||
"dependencies": [
|
||||
"api",
|
||||
"auth",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"domain": "gtfs",
|
||||
"name": "General Transit Feed Specification (GTFS)",
|
||||
"documentation": "https://www.home-assistant.io/integrations/gtfs",
|
||||
"requirements": ["pygtfs==0.1.6"],
|
||||
"requirements": ["pygtfs==0.1.7"],
|
||||
"codeowners": [],
|
||||
"iot_class": "local_polling",
|
||||
"loggers": ["pygtfs"]
|
||||
|
|
|
@ -6,6 +6,5 @@
|
|||
"after_dependencies": ["panel_custom"],
|
||||
"codeowners": ["@home-assistant/supervisor"],
|
||||
"iot_class": "local_polling",
|
||||
"quality_scale": "internal",
|
||||
"integration_type": "system"
|
||||
"quality_scale": "internal"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"models": ["HHKBridge*"]
|
||||
},
|
||||
"documentation": "https://www.home-assistant.io/integrations/hive",
|
||||
"requirements": ["pyhiveapi==0.5.13"],
|
||||
"requirements": ["pyhiveapi==0.5.14"],
|
||||
"codeowners": ["@Rendili", "@KJonline"],
|
||||
"iot_class": "cloud_polling",
|
||||
"loggers": ["apyhiveapi"]
|
||||
|
|
|
@ -565,6 +565,14 @@ class HomeKitClimateEntity(HomeKitBaseClimateEntity):
|
|||
# This characteristic describes the current mode of a device,
|
||||
# e.g. a thermostat is "heating" a room to 75 degrees Fahrenheit.
|
||||
# Can be 0 - 2 (Off, Heat, Cool)
|
||||
|
||||
# If the HVAC is switched off, it must be idle
|
||||
# This works around a bug in some devices (like Eve radiator valves) that
|
||||
# return they are heating when they are not.
|
||||
target = self.service.value(CharacteristicsTypes.HEATING_COOLING_TARGET)
|
||||
if target == HeatingCoolingTargetValues.OFF:
|
||||
return HVACAction.IDLE
|
||||
|
||||
value = self.service.value(CharacteristicsTypes.HEATING_COOLING_CURRENT)
|
||||
return CURRENT_MODE_HOMEKIT_TO_HASS.get(value)
|
||||
|
||||
|
|
|
@ -38,10 +38,10 @@ from .const import (
|
|||
CONF_SUBTYPE = "subtype"
|
||||
|
||||
DEVICES = {
|
||||
"NACamera": INDOOR_CAMERA_TRIGGERS,
|
||||
"NOC": OUTDOOR_CAMERA_TRIGGERS,
|
||||
"NATherm1": CLIMATE_TRIGGERS,
|
||||
"NRV": CLIMATE_TRIGGERS,
|
||||
"Smart Indoor Camera": INDOOR_CAMERA_TRIGGERS,
|
||||
"Smart Outdoor Camera": OUTDOOR_CAMERA_TRIGGERS,
|
||||
"Smart Thermostat": CLIMATE_TRIGGERS,
|
||||
"Smart Valve": CLIMATE_TRIGGERS,
|
||||
}
|
||||
|
||||
SUBTYPES = {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"domain": "switchbot",
|
||||
"name": "SwitchBot",
|
||||
"documentation": "https://www.home-assistant.io/integrations/switchbot",
|
||||
"requirements": ["PySwitchbot==0.19.13"],
|
||||
"requirements": ["PySwitchbot==0.19.15"],
|
||||
"config_flow": true,
|
||||
"dependencies": ["bluetooth"],
|
||||
"codeowners": [
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"name": "UniFi Network",
|
||||
"config_flow": true,
|
||||
"documentation": "https://www.home-assistant.io/integrations/unifi",
|
||||
"requirements": ["aiounifi==38"],
|
||||
"requirements": ["aiounifi==39"],
|
||||
"codeowners": ["@Kane610"],
|
||||
"quality_scale": "platinum",
|
||||
"ssdp": [
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
"zha-quirks==0.0.82",
|
||||
"zigpy-deconz==0.19.0",
|
||||
"zigpy==0.51.3",
|
||||
"zigpy-xbee==0.16.1",
|
||||
"zigpy-zigate==0.10.1",
|
||||
"zigpy-xbee==0.16.2",
|
||||
"zigpy-zigate==0.10.2",
|
||||
"zigpy-znp==0.9.1"
|
||||
],
|
||||
"usb": [
|
||||
|
|
|
@ -8,7 +8,7 @@ from .backports.enum import StrEnum
|
|||
APPLICATION_NAME: Final = "HomeAssistant"
|
||||
MAJOR_VERSION: Final = 2022
|
||||
MINOR_VERSION: Final = 10
|
||||
PATCH_VERSION: Final = "2"
|
||||
PATCH_VERSION: Final = "3"
|
||||
__short_version__: Final = f"{MAJOR_VERSION}.{MINOR_VERSION}"
|
||||
__version__: Final = f"{__short_version__}.{PATCH_VERSION}"
|
||||
REQUIRED_PYTHON_VER: Final[tuple[int, int, int]] = (3, 9, 0)
|
||||
|
|
|
@ -1690,6 +1690,11 @@
|
|||
"iot_class": "local_polling",
|
||||
"name": "Harman Kardon AVR"
|
||||
},
|
||||
"hassio": {
|
||||
"config_flow": false,
|
||||
"iot_class": "local_polling",
|
||||
"name": "Home Assistant Supervisor"
|
||||
},
|
||||
"haveibeenpwned": {
|
||||
"config_flow": false,
|
||||
"iot_class": "cloud_polling",
|
||||
|
|
|
@ -13,7 +13,7 @@ bcrypt==3.1.7
|
|||
bleak-retry-connector==2.1.3
|
||||
bleak==0.18.1
|
||||
bluetooth-adapters==0.6.0
|
||||
bluetooth-auto-recovery==0.3.3
|
||||
bluetooth-auto-recovery==0.3.4
|
||||
certifi>=2021.5.30
|
||||
ciso8601==2.2.0
|
||||
cryptography==38.0.1
|
||||
|
@ -21,7 +21,7 @@ dbus-fast==1.24.0
|
|||
fnvhash==0.1.0
|
||||
hass-nabucasa==0.56.0
|
||||
home-assistant-bluetooth==1.3.0
|
||||
home-assistant-frontend==20221006.0
|
||||
home-assistant-frontend==20221010.0
|
||||
httpx==0.23.0
|
||||
ifaddr==0.1.7
|
||||
jinja2==3.1.2
|
||||
|
|
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||
|
||||
[project]
|
||||
name = "homeassistant"
|
||||
version = "2022.10.2"
|
||||
version = "2022.10.3"
|
||||
license = {text = "Apache-2.0"}
|
||||
description = "Open-source home automation platform running on Python 3."
|
||||
readme = "README.rst"
|
||||
|
|
|
@ -40,7 +40,7 @@ PyRMVtransport==0.3.3
|
|||
PySocks==1.7.1
|
||||
|
||||
# homeassistant.components.switchbot
|
||||
PySwitchbot==0.19.13
|
||||
PySwitchbot==0.19.15
|
||||
|
||||
# homeassistant.components.transport_nsw
|
||||
PyTransportNSW==0.1.1
|
||||
|
@ -276,7 +276,7 @@ aiosyncthing==0.5.1
|
|||
aiotractive==0.5.4
|
||||
|
||||
# homeassistant.components.unifi
|
||||
aiounifi==38
|
||||
aiounifi==39
|
||||
|
||||
# homeassistant.components.vlc_telnet
|
||||
aiovlc==0.1.0
|
||||
|
@ -438,7 +438,7 @@ bluemaestro-ble==0.2.0
|
|||
bluetooth-adapters==0.6.0
|
||||
|
||||
# homeassistant.components.bluetooth
|
||||
bluetooth-auto-recovery==0.3.3
|
||||
bluetooth-auto-recovery==0.3.4
|
||||
|
||||
# homeassistant.components.bond
|
||||
bond-async==0.1.22
|
||||
|
@ -865,7 +865,7 @@ hole==0.7.0
|
|||
holidays==0.16
|
||||
|
||||
# homeassistant.components.frontend
|
||||
home-assistant-frontend==20221006.0
|
||||
home-assistant-frontend==20221010.0
|
||||
|
||||
# homeassistant.components.home_connect
|
||||
homeconnect==0.7.2
|
||||
|
@ -1586,7 +1586,7 @@ pyfttt==0.3
|
|||
pygatt[GATTTOOL]==4.0.5
|
||||
|
||||
# homeassistant.components.gtfs
|
||||
pygtfs==0.1.6
|
||||
pygtfs==0.1.7
|
||||
|
||||
# homeassistant.components.hvv_departures
|
||||
pygti==0.9.3
|
||||
|
@ -1601,7 +1601,7 @@ pyheos==0.7.2
|
|||
pyhik==0.3.0
|
||||
|
||||
# homeassistant.components.hive
|
||||
pyhiveapi==0.5.13
|
||||
pyhiveapi==0.5.14
|
||||
|
||||
# homeassistant.components.homematic
|
||||
pyhomematic==0.1.77
|
||||
|
@ -2604,10 +2604,10 @@ ziggo-mediabox-xl==1.1.0
|
|||
zigpy-deconz==0.19.0
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-xbee==0.16.1
|
||||
zigpy-xbee==0.16.2
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-zigate==0.10.1
|
||||
zigpy-zigate==0.10.2
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-znp==0.9.1
|
||||
|
|
|
@ -36,7 +36,7 @@ PyRMVtransport==0.3.3
|
|||
PySocks==1.7.1
|
||||
|
||||
# homeassistant.components.switchbot
|
||||
PySwitchbot==0.19.13
|
||||
PySwitchbot==0.19.15
|
||||
|
||||
# homeassistant.components.transport_nsw
|
||||
PyTransportNSW==0.1.1
|
||||
|
@ -251,7 +251,7 @@ aiosyncthing==0.5.1
|
|||
aiotractive==0.5.4
|
||||
|
||||
# homeassistant.components.unifi
|
||||
aiounifi==38
|
||||
aiounifi==39
|
||||
|
||||
# homeassistant.components.vlc_telnet
|
||||
aiovlc==0.1.0
|
||||
|
@ -352,7 +352,7 @@ bluemaestro-ble==0.2.0
|
|||
bluetooth-adapters==0.6.0
|
||||
|
||||
# homeassistant.components.bluetooth
|
||||
bluetooth-auto-recovery==0.3.3
|
||||
bluetooth-auto-recovery==0.3.4
|
||||
|
||||
# homeassistant.components.bond
|
||||
bond-async==0.1.22
|
||||
|
@ -645,7 +645,7 @@ hole==0.7.0
|
|||
holidays==0.16
|
||||
|
||||
# homeassistant.components.frontend
|
||||
home-assistant-frontend==20221006.0
|
||||
home-assistant-frontend==20221010.0
|
||||
|
||||
# homeassistant.components.home_connect
|
||||
homeconnect==0.7.2
|
||||
|
@ -1123,7 +1123,7 @@ pyhaversion==22.8.0
|
|||
pyheos==0.7.2
|
||||
|
||||
# homeassistant.components.hive
|
||||
pyhiveapi==0.5.13
|
||||
pyhiveapi==0.5.14
|
||||
|
||||
# homeassistant.components.homematic
|
||||
pyhomematic==0.1.77
|
||||
|
@ -1799,10 +1799,10 @@ zha-quirks==0.0.82
|
|||
zigpy-deconz==0.19.0
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-xbee==0.16.1
|
||||
zigpy-xbee==0.16.2
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-zigate==0.10.1
|
||||
zigpy-zigate==0.10.2
|
||||
|
||||
# homeassistant.components.zha
|
||||
zigpy-znp==0.9.1
|
||||
|
|
|
@ -619,6 +619,27 @@ async def test_hvac_mode_vs_hvac_action(hass, utcnow):
|
|||
assert state.attributes["hvac_action"] == "heating"
|
||||
|
||||
|
||||
async def test_hvac_mode_vs_hvac_action_current_mode_wrong(hass, utcnow):
|
||||
"""Check that we cope with buggy HEATING_COOLING_CURRENT."""
|
||||
helper = await setup_test_component(hass, create_thermostat_service)
|
||||
|
||||
await helper.async_update(
|
||||
ServicesTypes.THERMOSTAT,
|
||||
{
|
||||
CharacteristicsTypes.TEMPERATURE_CURRENT: 22,
|
||||
CharacteristicsTypes.TEMPERATURE_TARGET: 21,
|
||||
CharacteristicsTypes.HEATING_COOLING_CURRENT: 1,
|
||||
CharacteristicsTypes.HEATING_COOLING_TARGET: 0,
|
||||
CharacteristicsTypes.RELATIVE_HUMIDITY_CURRENT: 50,
|
||||
CharacteristicsTypes.RELATIVE_HUMIDITY_TARGET: 45,
|
||||
},
|
||||
)
|
||||
|
||||
state = await helper.poll_and_get_state()
|
||||
assert state.state == "off"
|
||||
assert state.attributes["hvac_action"] == "idle"
|
||||
|
||||
|
||||
def create_heater_cooler_service(accessory):
|
||||
"""Define thermostat characteristics."""
|
||||
service = accessory.add_service(ServicesTypes.HEATER_COOLER)
|
||||
|
|
|
@ -47,10 +47,10 @@ def calls(hass):
|
|||
@pytest.mark.parametrize(
|
||||
"platform,device_type,event_types",
|
||||
[
|
||||
("camera", "NOC", OUTDOOR_CAMERA_TRIGGERS),
|
||||
("camera", "NACamera", INDOOR_CAMERA_TRIGGERS),
|
||||
("climate", "NRV", CLIMATE_TRIGGERS),
|
||||
("climate", "NATherm1", CLIMATE_TRIGGERS),
|
||||
("camera", "Smart Outdoor Camera", OUTDOOR_CAMERA_TRIGGERS),
|
||||
("camera", "Smart Indoor Camera", INDOOR_CAMERA_TRIGGERS),
|
||||
("climate", "Smart Valve", CLIMATE_TRIGGERS),
|
||||
("climate", "Smart Thermostat", CLIMATE_TRIGGERS),
|
||||
],
|
||||
)
|
||||
async def test_get_triggers(
|
||||
|
@ -105,15 +105,15 @@ async def test_get_triggers(
|
|||
|
||||
@pytest.mark.parametrize(
|
||||
"platform,camera_type,event_type",
|
||||
[("camera", "NOC", trigger) for trigger in OUTDOOR_CAMERA_TRIGGERS]
|
||||
+ [("camera", "NACamera", trigger) for trigger in INDOOR_CAMERA_TRIGGERS]
|
||||
[("camera", "Smart Outdoor Camera", trigger) for trigger in OUTDOOR_CAMERA_TRIGGERS]
|
||||
+ [("camera", "Smart Indoor Camera", trigger) for trigger in INDOOR_CAMERA_TRIGGERS]
|
||||
+ [
|
||||
("climate", "NRV", trigger)
|
||||
("climate", "Smart Valve", trigger)
|
||||
for trigger in CLIMATE_TRIGGERS
|
||||
if trigger not in SUBTYPES
|
||||
]
|
||||
+ [
|
||||
("climate", "NATherm1", trigger)
|
||||
("climate", "Smart Thermostat", trigger)
|
||||
for trigger in CLIMATE_TRIGGERS
|
||||
if trigger not in SUBTYPES
|
||||
],
|
||||
|
@ -183,12 +183,12 @@ async def test_if_fires_on_event(
|
|||
@pytest.mark.parametrize(
|
||||
"platform,camera_type,event_type,sub_type",
|
||||
[
|
||||
("climate", "NRV", trigger, subtype)
|
||||
("climate", "Smart Valve", trigger, subtype)
|
||||
for trigger in SUBTYPES
|
||||
for subtype in SUBTYPES[trigger]
|
||||
]
|
||||
+ [
|
||||
("climate", "NATherm1", trigger, subtype)
|
||||
("climate", "Smart Thermostat", trigger, subtype)
|
||||
for trigger in SUBTYPES
|
||||
for subtype in SUBTYPES[trigger]
|
||||
],
|
||||
|
@ -262,7 +262,7 @@ async def test_if_fires_on_event_with_subtype(
|
|||
|
||||
@pytest.mark.parametrize(
|
||||
"platform,device_type,event_type",
|
||||
[("climate", "NAPLUG", trigger) for trigger in CLIMATE_TRIGGERS],
|
||||
[("climate", "NAPlug", trigger) for trigger in CLIMATE_TRIGGERS],
|
||||
)
|
||||
async def test_if_invalid_device(
|
||||
hass, device_reg, entity_reg, platform, device_type, event_type
|
||||
|
|
Loading…
Reference in New Issue