|
|
@@ -359,8 +359,8 @@ class TuyaDpsConfig:
|
|
|
def get_value(self, device):
|
|
|
"""Return the value of the dps from the given device."""
|
|
|
mask = self.mask(device)
|
|
|
- if mask:
|
|
|
- bytevalue = self.decoded_value(device)
|
|
|
+ bytevalue = self.decoded_value(device)
|
|
|
+ if mask and isinstance(bytevalue, bytes):
|
|
|
value = int.from_bytes(bytevalue, "big")
|
|
|
scale = mask & (1 + ~mask)
|
|
|
map_scale = self.scale(device)
|
|
|
@@ -380,9 +380,9 @@ class TuyaDpsConfig:
|
|
|
v,
|
|
|
self.name,
|
|
|
)
|
|
|
- return None
|
|
|
+ return v
|
|
|
|
|
|
- elif self.rawtype == "base64":
|
|
|
+ elif self.rawtype == "base64" and isinstance(v, str):
|
|
|
try:
|
|
|
return b64decode(v)
|
|
|
except ValueError:
|
|
|
@@ -392,7 +392,7 @@ class TuyaDpsConfig:
|
|
|
v,
|
|
|
self.name,
|
|
|
)
|
|
|
- return None
|
|
|
+ return v
|
|
|
else:
|
|
|
return v
|
|
|
|