Cleanup and refactoring
This commit is contained in:
@@ -1,19 +1,44 @@
|
||||
|
||||
from builtins import property
|
||||
from collections import namedtuple
|
||||
|
||||
Device = namedtuple("Device", ["model", "type", "dimmable"])
|
||||
|
||||
LIGHT = "light"
|
||||
SENSOR = "sensor"
|
||||
SWITCH = "switch"
|
||||
|
||||
HARDWARE_TYPES = {
|
||||
"0": Device("-unknown-", LIGHT, False),
|
||||
"1": Device("DIM-01", LIGHT, True),
|
||||
"2": Device("DIM-02", LIGHT, True),
|
||||
"3": Device("CTR-01", LIGHT, False),
|
||||
"4": Device("GWY-01", SENSOR, False),
|
||||
"5": Device("LED-10", LIGHT, True),
|
||||
"6": Device("WPH-01", SWITCH, False),
|
||||
"7": Device("REL-01", SWITCH, False),
|
||||
"8": Device("-unknown-", LIGHT, False),
|
||||
"9": Device("-unknown-", LIGHT, False),
|
||||
"10": Device("-unknown-", LIGHT, False),
|
||||
"11": Device("DIM-01", LIGHT, True),
|
||||
"12": Device("-unknown-", LIGHT, False),
|
||||
"13": Device("Generic", LIGHT, False),
|
||||
"14": Device("-unknown-", LIGHT, False),
|
||||
"15": Device("-unknown-", LIGHT, False),
|
||||
"16": Device("-unknown-", LIGHT, False),
|
||||
"17": Device("REL-01", SWITCH, False),
|
||||
"18": Device("REL-02", SWITCH, False),
|
||||
"19": Device("-unknown-", LIGHT, False),
|
||||
"20": Device("SPR-01", SWITCH, False),
|
||||
}
|
||||
|
||||
class PlejdDevice:
|
||||
|
||||
def __init__(self, manager, address, BLE_address, name, type, model, dimmable, room, firmware):
|
||||
def __init__(self, manager, address, BLE_address, data):
|
||||
self.manager = manager
|
||||
self.address = address
|
||||
self._BLE_address = BLE_address
|
||||
self.name = name
|
||||
self.type = type
|
||||
self.model = model
|
||||
self.dimmable = dimmable
|
||||
self.room = room
|
||||
self.firmware = firmware
|
||||
self.data = data #{name, hardwareId, dimmable, room, firmware}
|
||||
|
||||
self.updateCallback = None
|
||||
|
||||
@@ -26,12 +51,37 @@ class PlejdDevice:
|
||||
|
||||
@property
|
||||
def dim(self):
|
||||
return self._dim
|
||||
return self._dim/255
|
||||
|
||||
@property
|
||||
def BLE_address(self):
|
||||
return self._BLE_address
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self.data["name"]
|
||||
@property
|
||||
def room(self):
|
||||
return self.data["room"]
|
||||
@property
|
||||
def firmware(self):
|
||||
return self.data["firmware"]
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
return self.hardware_data.type
|
||||
@property
|
||||
def model(self):
|
||||
return self.hardware_data.model
|
||||
@property
|
||||
def dimmable(self):
|
||||
return self.hardware_data.dimmable and self.data["dimmable"] != False
|
||||
|
||||
@property
|
||||
def hardware_data(self):
|
||||
deviceType = HARDWARE_TYPES.get(self.data["hardwareId"], HARDWARE_TYPES["0"])
|
||||
return deviceType
|
||||
|
||||
async def new_state(self, state, dim):
|
||||
update = False
|
||||
if state != self._state:
|
||||
|
||||
Reference in New Issue
Block a user