Skip to content
Snippets Groups Projects
Commit 289d021c authored by jkerdreu's avatar jkerdreu
Browse files

Added value filtering..

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2510 b32b6428-25c9-4566-ad07-03861ab6144f
parent 3edbaff3
No related branches found
No related tags found
No related merge requests found
......@@ -73,9 +73,6 @@ class TuyaDev:
elif ev_type == tuyaclient.Event.DISCONNECTED:
self.parent.add_inactive([k.address for k in self.devices])
else:
logger.debug(f"{ev_type} / {ev_data}")
def post_dps(self,data):
self.tuya_client.post_dps(data)
......@@ -119,6 +116,16 @@ class PowerRelay(TuyaDev):
tmp.attributes['power'] = dps[k]
def out_hysteresis(value,new_value,tol):
if value == None:
return True
mini = value - tol
maxi = value + tol
if new_value < mini or new_value > maxi:
return True
return False
class SmartPlug(PowerRelay):
def setup(self):
......@@ -136,16 +143,25 @@ class SmartPlug(PowerRelay):
def on_dps(self,dps):
PowerRelay.on_dps(self,dps)
pmeter_attr = self.devices[0].attributes
# extract current / power / voltage from
# current
current = get_dps(dps,self.pmeter_dps[0])
if current!=None:
pmeter_attr['current'] = int(current) / 1000
tmp = round(int(current) / 1000,2)
if out_hysteresis(pmeter_attr['current'],tmp,0.02):
pmeter_attr['current'] = tmp
# power
power = get_dps(dps,self.pmeter_dps[1])
if power!=None:
pmeter_attr['power'] = int(power) / 10
tmp = round(int(power) / 10)
if out_hysteresis(pmeter_attr['power'],tmp,2):
pmeter_attr['power'] = tmp
# voltage
voltage = get_dps(dps,self.pmeter_dps[2])
if voltage!=None:
pmeter_attr['voltage'] = round(int(voltage) / 10)
tmp = round(int(voltage) / 10)
if out_hysteresis(pmeter_attr['voltage'],tmp,2):
pmeter_attr['voltage'] = tmp
class Lamp(TuyaDev):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment