Example #1
0
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
Example #2
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
Example #3
0
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