Ejemplo n.º 1
0
async def test_genericflag_sensor():
    """Verify that generic flag sensor works."""
    sensor = create_sensor("0", FIXTURE_GENERICFLAG, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("CLIPGenericFlag", )

    assert sensor.state is True
    assert sensor.is_tripped is True
    assert sensor.flag is True

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep is None
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag is None
    assert sensor.manufacturer is ""
    assert sensor.modelid == "Switch"
    assert sensor.name == "Kitchen Switch"
    assert sensor.swversion == "1.0.0"
    assert sensor.type == "CLIPGenericFlag"
    assert sensor.uniqueid == "kitchen-switch"
Ejemplo n.º 2
0
async def test_carbonmonoxide_sensor():
    """Verify that carbon monoxide sensor works."""
    sensor = create_sensor("0", FIXTURE_CARBONMONOXIDE, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHACarbonMonoxide", )

    assert sensor.state is False
    assert sensor.is_tripped is False
    assert sensor.carbonmonoxide is False

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is False
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is False
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "b7599df551944df97b2aa87d160b9c45"
    assert sensor.manufacturer == "Heiman"
    assert sensor.modelid == "CO_V16"
    assert sensor.name == "Cave, CO"
    assert sensor.swversion == "20150330"
    assert sensor.type == "ZHACarbonMonoxide"
    assert sensor.uniqueid == "00:15:8d:00:02:a5:21:24-01-0101"
Ejemplo n.º 3
0
async def test_temperature_sensor():
    """Verify that temperature sensor works."""
    sensor = create_sensor("0", FIXTURE_TEMPERATURE, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHATemperature", "CLIPTemperature")

    assert sensor.state == 21.8
    assert sensor.temperature == 21.8

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "1220e5d026493b6e86207993703a8a71"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.weather"
    assert sensor.name == "Mi temperature 1"
    assert sensor.swversion == "20161129"
    assert sensor.type == "ZHATemperature"
    assert sensor.uniqueid == "00:15:8d:00:02:45:dc:53-01-0402"

    del sensor.raw["state"]["temperature"]
    assert sensor.state is None
Ejemplo n.º 4
0
async def test_consumption_sensor():
    """Verify that consumption sensor works."""
    sensor = create_sensor("0", FIXTURE_CONSUMPTION, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAConsumption", )

    assert sensor.state == 11.342
    assert sensor.consumption == 11342
    assert sensor.power == 123

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "a99e5bc463d15c23af7e89946e784cca"
    assert sensor.manufacturer == "Heiman"
    assert sensor.modelid == "SmartPlug"
    assert sensor.name == "Consumption 15"
    assert sensor.swversion is None
    assert sensor.type == "ZHAConsumption"
    assert sensor.uniqueid == "00:0d:6f:00:0b:7a:64:29-01-0702"

    del sensor.raw["state"]["consumption"]
    assert sensor.state is None
Ejemplo n.º 5
0
async def test_fire_sensor():
    """Verify that fire sensor works."""
    sensor = create_sensor("0", FIXTURE_FIRE, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHAFire", )

    assert sensor.state is False
    assert sensor.is_tripped is False
    assert sensor.fire is False

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "2b585d2c016bfd665ba27a8fdad28670"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.sensor_smoke"
    assert sensor.name == "sensor_kitchen_smoke"
    assert sensor.swversion is None
    assert sensor.type == "ZHAFire"
    assert sensor.uniqueid == "00:15:8d:00:01:d9:3e:7c-01-0500"
Ejemplo n.º 6
0
async def test_battery_sensor():
    """Verify that alarm sensor works."""
    sensor = create_sensor("0", FIXTURE_BATTERY, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHABattery", )

    assert sensor.state == 100

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "23a8659f1cb22df2f51bc2da0e241bb4"
    assert sensor.manufacturer == "IKEA of Sweden"
    assert sensor.modelid == "FYRTUR block-out roller blind"
    assert sensor.name == "FYRTUR block-out roller blind"
    assert sensor.swversion == "2.2.007"
    assert sensor.type == "ZHABattery"
    assert sensor.uniqueid == "00:0d:6f:ff:fe:01:23:45-01-0001"
Ejemplo n.º 7
0
async def test_thermostat_sensor():
    """Verify that thermostat sensor works."""
    sensor = create_sensor("0", FIXTURE_THERMOSTAT, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAThermostat", "CLIPThermostat")

    assert sensor.state == 21.5
    assert sensor.heatsetpoint == 21.00
    assert sensor.locked is False
    assert sensor.mode == "auto"
    assert sensor.offset == 0
    assert sensor.state_on is False
    assert sensor.temperature == 21.5
    assert sensor.valve == 0

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "25aac331bc3c4b465cfb2197f6243ea4"
    assert sensor.manufacturer == "Eurotronic"
    assert sensor.modelid == "SPZB0001"
    assert sensor.name == "Living Room Radiator"
    assert sensor.swversion == "15181120"
    assert sensor.type == "ZHAThermostat"
    assert sensor.uniqueid == "00:15:8d:00:01:92:d2:51-01-0201"
Ejemplo n.º 8
0
async def test_pressure_sensor():
    """Verify that pressure sensor works."""
    sensor = create_sensor("0", FIXTURE_PRESSURE, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAPressure", "CLIPPressure")
    assert sensor.SENSOR_CLASS == "pressure"
    assert sensor.SENSOR_ICON == "mdi:gauge"
    assert sensor.SENSOR_UNIT == "hPa"

    assert sensor.state == 1010
    assert sensor.pressure == 1010

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "1220e5d026493b6e86207993703a8a71"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.weather"
    assert sensor.name == "Mi temperature 1"
    assert sensor.swversion == "20161129"
    assert sensor.type == "ZHAPressure"
    assert sensor.uniqueid == "00:15:8d:00:02:45:dc:53-01-0403"
Ejemplo n.º 9
0
async def test_water_sensor():
    """Verify that water sensor works."""
    sensor = create_sensor("0", FIXTURE_WATER, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHAWater", )

    assert sensor.state is False
    assert sensor.is_tripped is False
    assert sensor.water is False

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is False
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is False
    assert sensor.secondary_temperature == 25

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "fae893708dfe9b358df59107d944fa1c"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.sensor_wleak.aq1"
    assert sensor.name == "water2"
    assert sensor.swversion == "20170721"
    assert sensor.type == "ZHAWater"
    assert sensor.uniqueid == "00:15:8d:00:02:2f:07:db-01-0500"
Ejemplo n.º 10
0
async def test_humidity_sensor():
    """Verify that humidity sensor works."""
    sensor = create_sensor("0", FIXTURE_HUMIDITY, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAHumidity", "CLIPHumidity")
    assert sensor.SENSOR_CLASS == "humidity"
    assert sensor.SENSOR_UNIT == "%"

    assert sensor.state == 35.5
    assert sensor.humidity == 3555

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "1220e5d026493b6e86207993703a8a71"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.weather"
    assert sensor.name == "Mi temperature 1"
    assert sensor.swversion == "20161129"
    assert sensor.type == "ZHAHumidity"
    assert sensor.uniqueid == "00:15:8d:00:02:45:dc:53-01-0405"

    del sensor.raw["state"]["humidity"]
    assert sensor.state is None
Ejemplo n.º 11
0
async def test_create_sensor_fails():
    """Verify failing behavior for create_sensor."""
    sensor_id = '0'
    sensor = {'type': 'not supported'}
    result = create_sensor(sensor_id, sensor, None)

    assert not result
Ejemplo n.º 12
0
async def test_switch_sensor_cube():
    """Verify that cube switch sensor works."""
    sensor = create_sensor("0", FIXTURE_MAGIC_CUBE, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHASwitch", "ZGPSwitch", "CLIPSwitch")

    assert sensor.state == 747
    assert sensor.buttonevent == 747
    assert sensor.gesture == 7

    # DeconzSensor
    assert sensor.battery == 90
    assert sensor.ep == 3
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature == 11.0

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "e34fa1c7a19d960e35a1f4d56ac475af"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.sensor_cube.aqgl01"
    assert sensor.name == "Mi Magic Cube"
    assert sensor.swversion == "20160704"
    assert sensor.type == "ZHASwitch"
    assert sensor.uniqueid == "00:15:8d:00:02:8b:3b:24-03-000c"
Ejemplo n.º 13
0
async def test_genericstatus_sensor():
    """Verify that generic flag sensor works."""
    sensor = create_sensor("0", FIXTURE_GENERICSTATUS, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("CLIPGenericStatus", )

    assert sensor.state == 0
    assert sensor.status == 0

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep is None
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "aacc83bc7d6e4af7e44014e9f776b206"
    assert sensor.manufacturer == "Phoscon"
    assert sensor.modelid == "PHOSCON_FSM_STATE"
    assert sensor.name == "FSM_STATE Motion stair"
    assert sensor.swversion == "1.0"
    assert sensor.type == "CLIPGenericStatus"
    assert sensor.uniqueid == "fsm-state-1520195376277"
Ejemplo n.º 14
0
async def test_switch_sensor():
    """Verify that switch sensor works."""
    sensor = create_sensor("0", FIXTURE_HUE_DIMMER, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHASwitch", "ZGPSwitch", "CLIPSwitch")

    assert sensor.state == 1002
    assert sensor.buttonevent == 1002
    assert sensor.gesture is None

    # DeconzSensor
    assert sensor.battery == 90
    assert sensor.ep == 2
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "233ae541bbb7ac98c42977753884b8d2"
    assert sensor.manufacturer == "Philips"
    assert sensor.modelid == "RWL021"
    assert sensor.name == "Dimmer switch 3"
    assert sensor.swversion == "5.45.1.17846"
    assert sensor.type == "ZHASwitch"
    assert sensor.uniqueid == "00:17:88:01:02:0e:32:a3-02-fc00"
Ejemplo n.º 15
0
async def test_presence_sensor():
    """Verify that presence sensor works."""
    sensor = create_sensor("0", FIXTURE_PRESENCE, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHAPresence", "CLIPPresence")

    assert sensor.state is False
    assert sensor.is_tripped is False
    assert sensor.presence is False
    assert sensor.dark is None
    assert sensor.duration is None

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 2
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "5cfb81765e86aa53ace427cfd52c6d52"
    assert sensor.manufacturer == "Philips"
    assert sensor.modelid == "SML001"
    assert sensor.name == "Motion sensor 4"
    assert sensor.swversion == "6.1.0.18912"
    assert sensor.type == "ZHAPresence"
    assert sensor.uniqueid == "00:17:88:01:03:28:8c:9b-02-0406"
Ejemplo n.º 16
0
async def test_power_sensor():
    """Verify that power sensor works."""
    sensor = create_sensor("0", FIXTURE_POWER, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAPower", )

    assert sensor.state == 64
    assert sensor.current == 34
    assert sensor.power == 64
    assert sensor.voltage == 231

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "96e71c7db4685b334d3d0decc3f11868"
    assert sensor.manufacturer == "Heiman"
    assert sensor.modelid == "SmartPlug"
    assert sensor.name == "Power 16"
    assert sensor.swversion is None
    assert sensor.type == "ZHAPower"
    assert sensor.uniqueid == "00:0d:6f:00:0b:7a:64:29-01-0b04"
Ejemplo n.º 17
0
async def test_openclose_sensor():
    """Verify that open/close sensor works."""
    sensor = create_sensor("0", FIXTURE_OPENCLOSE, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHAOpenClose", "CLIPOpenClose")

    assert sensor.state is False
    assert sensor.is_tripped is False
    assert sensor.open is False

    # DeconzSensor
    assert sensor.battery == 95
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature == 33

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "66cc641d0368110da6882b50090174ac"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.sensor_magnet.aq2"
    assert sensor.name == "Back Door"
    assert sensor.swversion == "20161128"
    assert sensor.type == "ZHAOpenClose"
    assert sensor.uniqueid == "00:15:8d:00:02:2b:96:b4-01-0006"
Ejemplo n.º 18
0
async def test_alarm_sensor():
    """Verify that alarm sensor works."""
    sensor = create_sensor("0", FIXTURE_ALARM, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHAAlarm", )

    assert sensor.state is None
    assert sensor.alarm is None

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature == 26

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "18c0f3c2100904e31a7f938db2ba9ba9"
    assert sensor.manufacturer == "dresden elektronik"
    assert sensor.modelid == "lumi.sensor_motion.aq2"
    assert sensor.name == "Alarm 10"
    assert sensor.swversion == "20170627"
    assert sensor.type == "ZHAAlarm"
    assert sensor.uniqueid == "00:15:8d:00:02:b5:d1:80-01-0500"
Ejemplo n.º 19
0
async def test_daylight_sensor():
    """Verify that daylight sensor works."""
    sensor = create_sensor("0", FIXTURE_DAYLIGHT, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("Daylight", )
    assert sensor.SENSOR_CLASS == "daylight"
    assert sensor.SENSOR_ICON == "mdi:white-balance-sunny"

    assert sensor.state == "solar_noon"
    assert sensor.configured is True
    assert sensor.daylight is True
    assert sensor.status == "solar_noon"
    assert sensor.sunriseoffset == 30
    assert sensor.sunsetoffset == -30

    # DeconzSensor
    assert sensor.battery is None
    assert sensor.ep is None
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "55047cf652a7e594d0ee7e6fae01dd38"
    assert sensor.manufacturer == "Philips"
    assert sensor.modelid == "PHDL00"
    assert sensor.name == "Daylight"
    assert sensor.swversion == "1.0"
    assert sensor.type == "Daylight"
    assert sensor.uniqueid is None

    statuses = {
        100: "nadir",
        110: "night_end",
        120: "nautical_dawn",
        130: "dawn",
        140: "sunrise_start",
        150: "sunrise_end",
        160: "golden_hour_1",
        170: "solar_noon",
        180: "golden_hour_2",
        190: "sunset_start",
        200: "sunset_end",
        210: "dusk",
        220: "nautical_dusk",
        230: "night_start",
        0: "unknown",
    }

    for k, v in statuses.items():
        event = {"state": {"status": k}}
        sensor.update(event)

        assert sensor.state == v
        assert sensor.changed_keys == {"state", "status"}
Ejemplo n.º 20
0
async def test_create_sensor_fails():
    """Verify failing behavior for create_sensor."""
    sensor_id = "0"
    sensor = {"type": "not supported", "name": "name"}
    result = create_sensor(sensor_id, sensor, None)

    assert result.BINARY is None
    assert not result.ZHATYPE
Ejemplo n.º 21
0
async def test_create_sensor():
    """Verify that create-sensor can create all types."""
    sensor_id = '0'
    for sensor_type in DECONZ_BINARY_SENSOR + DECONZ_SENSOR + OTHER_SENSOR:
        sensor = {'type': sensor_type, 'config': {}, 'state': {}}
        result = create_sensor(sensor_id, sensor, None)

        assert result
Ejemplo n.º 22
0
async def test_vibration_sensor():
    """Verify that vibration sensor works."""
    sensor = create_sensor("0", FIXTURE_VIBRATION, None)

    assert sensor.BINARY is True
    assert sensor.ZHATYPE == ("ZHAVibration", )
    assert sensor.SENSOR_CLASS == "motion"

    assert sensor.state is True
    assert sensor.is_tripped is True
    assert sensor.orientation == [10, 1059, 0]
    assert sensor.sensitivity == 21
    assert sensor.sensitivitymax == 21
    assert sensor.tiltangle == 83
    assert sensor.vibration is True
    assert sensor.vibrationstrength == 114

    # DeconzSensor
    assert sensor.battery == 91
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature == 32

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "b7599df551944df97b2aa87d160b9c45"
    assert sensor.manufacturer == "LUMI"
    assert sensor.modelid == "lumi.vibration.aq1"
    assert sensor.name == "Vibration 1"
    assert sensor.swversion == "20180130"
    assert sensor.type == "ZHAVibration"
    assert sensor.uniqueid == "00:15:8d:00:02:a5:21:24-01-0101"

    mock_callback = Mock()
    sensor.register_callback(mock_callback)
    assert sensor._callbacks

    event = {
        "state": {
            "lastupdated": "2019-03-15T10:15:17",
            "orientation": [0, 84, 6]
        }
    }
    sensor.update(event)

    mock_callback.assert_called_once()
    assert sensor.changed_keys == {"state", "lastupdated", "orientation"}

    sensor.remove_callback(mock_callback)
    assert not sensor._callbacks
Ejemplo n.º 23
0
async def test_create_sensor():
    """Verify that create-sensor can create all types."""
    assert len(SENSOR_CLASSES) == 19

    sensor_id = "0"

    for sensor_class in SENSOR_CLASSES:
        for sensor_type in sensor_class.ZHATYPE:
            sensor = {"type": sensor_type, "config": {}, "state": {}}
            result = create_sensor(sensor_id, sensor, None)

            assert result
Ejemplo n.º 24
0
async def test_vibration_sensor():
    """Verify that vibration sensor works."""
    sensor = create_sensor('0', FIXTURE_VIBRATION, None)

    assert sensor.state is True
    assert sensor.is_tripped is True
    assert sensor.orientation == [10, 1059, 0]
    assert sensor.sensitivity == 21
    assert sensor.sensitivitymax == 21
    assert sensor.tiltangle == 83
    assert sensor.vibration is True
    assert sensor.vibrationstrength == 114

    # DeconzSensor
    assert sensor.battery == 91
    assert sensor.ep == 1
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True

    # DeconzDevice
    assert sensor.deconz_id == '/sensors/0'
    assert sensor.etag == 'b7599df551944df97b2aa87d160b9c45'
    assert sensor.manufacturer == 'LUMI'
    assert sensor.modelid == 'lumi.vibration.aq1'
    assert sensor.name == "Vibration 1"
    assert sensor.swversion == '20180130'
    assert sensor.type == 'ZHAVibration'
    assert sensor.uniqueid == '00:15:8d:00:02:a5:21:24-01-0101'

    mock_callback = Mock()
    sensor.register_async_callback(mock_callback)
    assert sensor._async_callbacks

    event = {
        "state": {
            "lastupdated": "2019-03-15T10:15:17",
            "orientation": [0, 84, 6]
        }
    }
    sensor.async_update(event)

    mock_callback.assert_called_with({
        'attr': ['lastupdated', 'orientation'],
        'state': True,
        'config': False
    })

    sensor.remove_callback(mock_callback)
    assert not sensor._async_callbacks
Ejemplo n.º 25
0
async def test_lightlevel_sensor():
    """Verify that light level sensor works."""
    sensor = create_sensor("0", FIXTURE_LIGHTLEVEL, None)

    assert sensor.BINARY is False
    assert sensor.ZHATYPE == ("ZHALightLevel", "CLIPLightLevel")
    assert sensor.SENSOR_CLASS == "illuminance"
    assert sensor.SENSOR_UNIT == "lux"

    assert sensor.state == 5
    assert sensor.dark is True
    assert sensor.daylight is False
    assert sensor.lightlevel == 6955
    assert sensor.lux == 5
    assert sensor.tholddark == 12000
    assert sensor.tholdoffset == 7000

    # DeconzSensor
    assert sensor.battery == 100
    assert sensor.ep == 2
    assert sensor.lowbattery is None
    assert sensor.on is True
    assert sensor.reachable is True
    assert sensor.tampered is None
    assert sensor.secondary_temperature is None

    # DeconzDevice
    assert sensor.deconz_id == "/sensors/0"
    assert sensor.etag == "5cfb81765e86aa53ace427cfd52c6d52"
    assert sensor.manufacturer == "Philips"
    assert sensor.modelid == "SML001"
    assert sensor.name == "Motion sensor 4"
    assert sensor.swversion == "6.1.0.18912"
    assert sensor.type == "ZHALightLevel"
    assert sensor.uniqueid == "00:17:88:01:03:28:8c:9b-02-0400"

    del sensor.raw["state"]["lightlevel"]
    assert sensor.state is None