async def test_climate_change_thermostat_state(hass, utcnow): """Test that we can turn a HomeKit thermostat on and off again.""" from homekit.model.services import ThermostatService helper = await setup_test_component(hass, [ThermostatService()]) await hass.services.async_call(DOMAIN, SERVICE_SET_HVAC_MODE, { 'entity_id': 'climate.testdevice', 'hvac_mode': HVAC_MODE_HEAT, }, blocking=True) assert helper.characteristics[HEATING_COOLING_TARGET].value == 1 await hass.services.async_call(DOMAIN, SERVICE_SET_HVAC_MODE, { 'entity_id': 'climate.testdevice', 'hvac_mode': HVAC_MODE_COOL, }, blocking=True) assert helper.characteristics[HEATING_COOLING_TARGET].value == 2 await hass.services.async_call(DOMAIN, SERVICE_SET_HVAC_MODE, { 'entity_id': 'climate.testdevice', 'hvac_mode': HVAC_MODE_HEAT_COOL, }, blocking=True) assert helper.characteristics[HEATING_COOLING_TARGET].value == 3 await hass.services.async_call(DOMAIN, SERVICE_SET_HVAC_MODE, { 'entity_id': 'climate.testdevice', 'hvac_mode': HVAC_MODE_OFF, }, blocking=True) assert helper.characteristics[HEATING_COOLING_TARGET].value == 0
async def test_climate_change_thermostat_temperature(hass, utcnow): """Test that we can turn a HomeKit thermostat on and off again.""" from homekit.model.services import ThermostatService helper = await setup_test_component(hass, [ThermostatService()]) await hass.services.async_call( DOMAIN, SERVICE_SET_TEMPERATURE, { "entity_id": "climate.testdevice", "temperature": 21 }, blocking=True, ) assert helper.characteristics[TEMPERATURE_TARGET].value == 21 await hass.services.async_call( DOMAIN, SERVICE_SET_TEMPERATURE, { "entity_id": "climate.testdevice", "temperature": 25 }, blocking=True, ) assert helper.characteristics[TEMPERATURE_TARGET].value == 25
async def test_climate_read_thermostat_state(hass, utcnow): """Test that we can read the state of a HomeKit thermostat accessory.""" from homekit.model.services import ThermostatService helper = await setup_test_component(hass, [ThermostatService()]) # Simulate that heating is on helper.characteristics[TEMPERATURE_CURRENT].value = 19 helper.characteristics[TEMPERATURE_TARGET].value = 21 helper.characteristics[HEATING_COOLING_CURRENT].value = 1 helper.characteristics[HEATING_COOLING_TARGET].value = 1 state = await helper.poll_and_get_state() assert state.state == 'heat' assert state.attributes['current_temperature'] == 19 # Simulate that cooling is on helper.characteristics[TEMPERATURE_CURRENT].value = 21 helper.characteristics[TEMPERATURE_TARGET].value = 19 helper.characteristics[HEATING_COOLING_CURRENT].value = 2 helper.characteristics[HEATING_COOLING_TARGET].value = 2 state = await helper.poll_and_get_state() assert state.state == 'cool' assert state.attributes['current_temperature'] == 21