Exemplo n.º 1
0
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
Exemplo n.º 2
0
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