def shutter(device_uid: str) -> Zwave: """ Represent a shutter in tests :param device_uid: Device UID this mock shall have :return: Metering Plug device """ file = pathlib.Path(__file__).parent / ".." / "test_data.json" with file.open("r") as fh: test_data = json.load(fh) mydevolo = Mydevolo() device = Zwave(mydevolo_instance=mydevolo, **test_data['devices']['blinds']) device.multi_level_switch_property = {} device.settings_property = {} device.multi_level_switch_property[f'devolo.Blinds:{device_uid}'] = MultiLevelSwitchProperty( element_uid=f"devolo.Blinds:{device_uid}", setter=lambda uid, state: None, value=test_data['devices']['blinds']['value'], max=test_data['devices']['blinds']['max'], min=test_data['devices']['blinds']['min']) device.settings_property['i2'] = SettingsProperty(element_uid=f"bas.{device_uid}", setter=lambda uid, state: None, value=test_data['devices']['blinds']['i2']) device.settings_property["general_device_settings"] = SettingsProperty(element_uid=f'gds.{device_uid}', setter=lambda uid, state: None, icon=test_data['devices']['blinds']['icon'], name=test_data['devices']['blinds']['itemName'], zone_id=test_data['devices']['blinds']['zoneId'], zones=test_data['gateway']['zones']) device.settings_property["automatic_calibration"] = SettingsProperty( element_uid=f'acs.{device_uid}', setter=lambda uid, state: None, calibration_status=test_data['devices']['blinds']['calibrationStatus'] == 2) device.settings_property["movement_direction"] = SettingsProperty( element_uid=f'bss.{device_uid}', setter=lambda uid, state: None, direction=not bool(test_data['devices']['blinds']['movement_direction'])) device.settings_property["shutter_duration"] = SettingsProperty( element_uid=f'mss.{device_uid}', setter=lambda uid, state: None, shutter_duration=test_data['devices']['blinds']['shutter_duration']) return device
def siren(device_uid: str) -> Zwave: """ Represent a siren in tests :param device_uid: Device UID this mock shall have :return: Siren device """ file = pathlib.Path(__file__).parent / ".." / "test_data.json" with file.open("r") as fh: test_data = json.load(fh) mydevolo = Mydevolo() device = Zwave(mydevolo_instance=mydevolo, **test_data['devices']['siren']) gateway = MockGateway(test_data['gateway']['id'], mydevolo=mydevolo) session = requests.Session() device.multi_level_switch_property = {} device.multi_level_switch_property[f'devolo.SirenMultiLevelSwitch:{device_uid}'] = \ MultiLevelSwitchProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f"devolo.SirenMultiLevelSwitch:{device_uid}", state=test_data['devices']['siren']['state']) device.settings_property = {} device.settings_property['muted'] = \ SettingsProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f"bas.{device_uid}", value=test_data['devices']['siren']['muted']) device.settings_property["general_device_settings"] = \ SettingsProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f"gds.{device_uid}", icon=test_data['devices']['siren']['icon'], name=test_data['devices']['siren']['itemName'], zone_id=test_data['devices']['siren']['zoneId']) device.settings_property["tone"] = \ SettingsProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f"mss.{device_uid}", value=test_data['devices']['siren']['properties']['value']) return device
def multi_level_switch_device(device_uid: str) -> Zwave: """ Represent a multi level switch device in tests :param device_uid: Device UID this mock shall have :return: Multi level switch device """ file = pathlib.Path(__file__).parent / ".." / "test_data.json" with file.open("r") as fh: test_data = json.load(fh) mydevolo = Mydevolo() device = Zwave(mydevolo_instance=mydevolo, **test_data.get("devices").get("multi_level_switch")) gateway = MockGateway(test_data.get("gateway").get("id"), mydevolo=mydevolo) session = requests.Session() device.multi_level_switch_property = {} device.settings_property = {} device.multi_level_switch_property[f'devolo.MultiLevelSwitch:{device_uid}'] = \ MultiLevelSwitchProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f"devolo.MultiLevelSwitch:{device_uid}", value=test_data.get("devices").get("multi_level_switch").get("value"), max=test_data.get("devices").get("multi_level_switch").get("max"), min=test_data.get("devices").get("multi_level_switch").get("min")) device.settings_property["general_device_settings"] = \ SettingsProperty(gateway=gateway, session=session, mydevolo=mydevolo, element_uid=f'gds.{device_uid}', icon=test_data.get("devices").get("multi_level_switch").get("icon"), name=test_data.get("devices").get("multi_level_switch").get("itemName"), zone_id=test_data.get("devices").get("multi_level_switch").get("zoneId")) return device
def multi_level_switch_device(device_uid: str) -> Zwave: """ Represent a multi level switch device in tests :param device_uid: Device UID this mock shall have :return: Multi level switch device """ file = pathlib.Path(__file__).parent / ".." / "test_data.json" with file.open("r") as fh: test_data = json.load(fh) mydevolo = Mydevolo() device = Zwave(mydevolo_instance=mydevolo, **test_data.get("devices").get("multi_level_switch")) device.multi_level_switch_property = {} device.settings_property = {} device.multi_level_switch_property[ f'devolo.MultiLevelSwitch:{device_uid}'] = MultiLevelSwitchProperty( element_uid=f"devolo.MultiLevelSwitch:{device_uid}", setter=lambda uid, state: None, value=test_data.get("devices").get("multi_level_switch").get( "value"), max=test_data.get("devices").get("multi_level_switch").get("max"), min=test_data.get("devices").get("multi_level_switch").get("min")) device.settings_property['general_device_settings'] = SettingsProperty( element_uid=f"gds.{device_uid}", setter=lambda uid, state: None, icon=test_data.get("devices").get("multi_level_switch").get("icon"), name=test_data.get("devices").get("multi_level_switch").get( "itemName"), zone_id=test_data.get("devices").get("multi_level_switch").get( "zoneId"), zones=test_data.get("gateway").get("zones")) return device