def test_switching_group(fake_home : Home): with no_ssl_verification(): g = fake_home.search_group_by_id('00000000-0000-0000-0000-000000000018') assert isinstance(g, SwitchingGroup) for d in g.devices: assert d.id in ['3014F7110000000000000010', '3014F7110000000000000009', '3014F7110000000000000008'] assert g.dimLevel == None assert g.dutyCycle == False assert g.homeId == "00000000-0000-0000-0000-000000000001" assert g.id == "00000000-0000-0000-0000-000000000018" assert g.label == "Strom" assert g.lastStatusUpdate == datetime(2018, 4, 23, 20, 49, 14, 56000) + timedelta(0,utc_offset) assert g.lowBat == None assert g.metaGroup.id == "00000000-0000-0000-0000-000000000017" assert g.on == True assert g.processing == None assert g.shutterLevel == None assert g.slatsLevel == None assert g.unreach == False assert str(g) == ('SWITCHING Strom: on(True) dimLevel(None) processing(None) shutterLevel(None) slatsLevel(None)' ' dutyCycle(False) lowBat(None)') g.turn_off() g.set_label("NEW GROUP") g.set_shutter_level(50) fake_home.get_current_state() g = fake_home.search_group_by_id('00000000-0000-0000-0000-000000000018') assert g.on == False assert g.label == "NEW GROUP" assert g.shutterLevel == 50 assert str(g) == ('SWITCHING NEW GROUP: on(False) dimLevel(None) processing(None) shutterLevel(50) slatsLevel(None)' ' dutyCycle(False) lowBat(None)') g.turn_on() fake_home.get_current_state() g = fake_home.search_group_by_id('00000000-0000-0000-0000-000000000018') assert g.on == True fake_home.delete_group(g) fake_home.get_current_state() gNotFound = fake_home.search_group_by_id('00000000-0000-0000-0000-000000000018') assert gNotFound == None result = g.delete() assert result["errorCode"] == 'INVALID_GROUP' result = g.set_label('LABEL') assert result["errorCode"] == 'INVALID_GROUP' result = g.turn_off() assert result["errorCode"] == 'INVALID_GROUP' result = g.set_shutter_level(50) assert result["errorCode"] == 'INVALID_GROUP'
def test_heating_group(fake_home: Home): g = fake_home.search_group_by_id("00000000-0000-0000-0000-000000000012") assert isinstance(g, HeatingGroup) for d in g.devices: assert d.id in [ "3014F7110000000000000004", "3014F7110000000000000022", "3014F7110000000000000011", ] assert g.activeProfile.index == "PROFILE_1" assert g.activeProfile.enabled == True assert g.activeProfile.name == "" assert g.activeProfile.visible == True assert g.activeProfile.id == "00000000-0000-0000-0000-000000000023" assert g.activeProfile.groupId == "00000000-0000-0000-0000-000000000012" profile3 = g.profiles[2] assert profile3.index == "PROFILE_3" assert profile3.visible == False assert profile3.id == "00000000-0000-0000-0000-000000000025" assert g.actualTemperature == 24.7 assert g.boostDuration == 15 assert g.boostMode == False assert g.controlMode == ClimateControlMode.AUTOMATIC assert g.controllable == True assert g.cooling == False assert g.coolingAllowed == False assert g.coolingIgnored == False assert g.dutyCycle == False assert g.ecoAllowed == True assert g.ecoIgnored == False assert g.externalClockCoolingTemperature == 23.0 assert g.externalClockEnabled == False assert g.externalClockHeatingTemperature == 19.0 assert g.floorHeatingMode == "FLOOR_HEATING_STANDARD" assert g.humidity == 43 assert g.humidityLimitEnabled == True assert g.humidityLimitValue == 60 assert g.label == "Schlafzimmer" assert g.lastStatusUpdate == datetime(2018, 4, 23, 20, 48, 54, 382000) + timedelta(0, utc_offset) assert g.lowBat == False assert g.maxTemperature == 30.0 assert g.metaGroup.id == "00000000-0000-0000-0000-000000000011" assert g.minTemperature == 5.0 assert g.partyMode == False assert g.setPointTemperature == 5.0 assert g.unreach == False assert g.valvePosition == 0.0 assert g.windowOpenTemperature == 5.0 assert g.windowState == "OPEN" assert str(g) == ( "HEATING Schlafzimmer windowOpenTemperature(5.0) setPointTemperature(5.0) windowState(OPEN) motionDetected(30.0)" " sabotage(5.0) cooling(False) partyMode(False) controlMode(AUTOMATIC) actualTemperature(24.7) valvePosition(0.0)" ) assert (g._rawJSONData == fake_home_download_configuration()["groups"] ["00000000-0000-0000-0000-000000000012"]) with no_ssl_verification(): g.set_boost_duration(20) g.set_boost(True) g.set_active_profile(3) g.set_point_temperature(10.5) g.set_control_mode(ClimateControlMode.MANUAL) fake_home.get_current_state() g = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000012") assert g.boostDuration == 20 assert g.boostMode == True assert g.activeProfile.index == "PROFILE_4" assert g.setPointTemperature == 10.5 assert g.controlMode == ClimateControlMode.MANUAL fake_home.delete_group(g) fake_home.get_current_state() gNotFound = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000012") assert gNotFound == None result = g.set_boost_duration(20) assert result["errorCode"] == "INVALID_GROUP" result = g.set_boost(True) assert result["errorCode"] == "INVALID_GROUP" result = g.set_active_profile(1) assert result["errorCode"] == "INVALID_GROUP" result = g.set_point_temperature(10.5) assert result["errorCode"] == "INVALID_GROUP" result = g.set_control_mode(ClimateControlMode.MANUAL) assert result["errorCode"] == "INVALID_GROUP"
def test_switching_group(fake_home: Home): with no_ssl_verification(): g = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000018") assert isinstance(g, SwitchingGroup) for d in g.devices: assert d.id in [ "3014F7110000000000000010", "3014F7110000000000000009", "3014F7110000000000000008", ] assert g.dimLevel is None assert g.dutyCycle is False assert g.homeId == "00000000-0000-0000-0000-000000000001" assert g.id == "00000000-0000-0000-0000-000000000018" assert g.label == "Strom" assert g.lastStatusUpdate == datetime( 2018, 4, 23, 20, 49, 14, 56000) + timedelta(0, utc_offset) assert g.lowBat is None assert g.metaGroup.id == "00000000-0000-0000-0000-000000000017" assert g.on is True assert g.processing is False assert g.shutterLevel is None assert g.slatsLevel is None assert g.unreach is False assert g.primaryShadingLevel == 1.0 assert g.primaryShadingStateType == ShadingStateType.POSITION_USED assert g.secondaryShadingLevel == None assert g.secondaryShadingStateType == ShadingStateType.NOT_EXISTENT assert str(g) == ( "SWITCHING Strom on(True) dimLevel(None) dutyCycle(False) lowBat(None)" " processing(False) shutterLevel(None) slatsLevel(None)") g.turn_off() g.set_label("NEW GROUP") g.set_shutter_level(50) fake_home.get_current_state() g = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000018") assert g.on is False assert g.label == "NEW GROUP" assert g.shutterLevel == 50 assert str(g) == ( "SWITCHING NEW GROUP on(False) dimLevel(None) dutyCycle(False) lowBat(None)" " processing(False) shutterLevel(50) slatsLevel(None)") g.turn_on() g.set_slats_level(1.0, 20) fake_home.get_current_state() g = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000018") assert g.on is True assert g.slatsLevel == 1.0 assert g.shutterLevel == 20 g.set_shutter_stop() fake_home.delete_group(g) fake_home.get_current_state() gNotFound = fake_home.search_group_by_id( "00000000-0000-0000-0000-000000000018") assert gNotFound is None result = g.delete() assert result["errorCode"] == "INVALID_GROUP" result = g.set_label("LABEL") assert result["errorCode"] == "INVALID_GROUP" result = g.turn_off() assert result["errorCode"] == "INVALID_GROUP" result = g.set_shutter_level(50) assert result["errorCode"] == "INVALID_GROUP" result = g.set_slats_level(1.0, 20) assert result["errorCode"] == "INVALID_GROUP"