Skip to content
Snippets Groups Projects
Commit 0de82a75 authored by jkerdreu's avatar jkerdreu
Browse files

Added gateway itself (missing)

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2264 b32b6428-25c9-4566-ad07-03861ab6144f
parent 9678b6d7
No related branches found
No related tags found
No related merge requests found
......@@ -38,7 +38,7 @@ class TuyaDev:
def init_properties(self):
for dev in self.devices:
dev.vendor_id = 'Tuya'
dev.vendor_id = 'IHSEV / Tuya'
dev.hw_id = self.tuya_id
dev.info = 'Tuya device: %s @ %s' % (self.tuya_id,self.tuya_ip)
if len(self.devices) > 1:
......@@ -50,6 +50,7 @@ class PowerRelay(TuyaDev):
dev.methods['on'] = self.on
dev.methods['off'] = self.off
dev.methods['toggle'] = self.toggle
dev.product_id = 'Generic Tuya Outlet'
self.devices.append(dev)
self.relay = pytuya.OutletDevice(self.tuya_id,self.tuya_ip,self.tuya_key)
self.relay.set_version(3.3)
......@@ -76,7 +77,7 @@ class PowerRelay(TuyaDev):
@retry(stop=stop_after_attempt(2))
def _update_status(self):
logger.info("Updating %s" % self)
logger.info("Updating %s" % self.tuya_id)
time.sleep(0.1)
self.last_update = now()
power = self.relay.status()['dps']['1']
......
from xaal.lib import tools,Device
from xaal import schemas
from . import devices
import atexit
......@@ -30,6 +31,13 @@ class GW:
self.cfg = cfg
def setup(self):
gw = schemas.devices.gateway(self.cfg['config']['addr'])
gw.vendor_id = 'IHSEV'
gw.product_id = 'Generic Tuya Gateway'
gw.info = 'Tuya Gateway'
gw.attributes['embedded'] = []
self.gw = gw
devices = self.cfg.get('devices',[])
for d in devices:
cfg = devices.get(d,{})
......@@ -45,6 +53,8 @@ class GW:
self.add_device(d,key,ip,base_addr,type_)
else:
logger.warn('Error in config file, wrong devices')
# loaded all devices
self.engine.add_device(gw)
def add_device(self,tuya_id,tuya_key,ip,base_addr,type_):
if type_ == 'powerrelay':
......@@ -52,6 +62,7 @@ class GW:
self.devices[tuya_id] = dev
for d in dev.devices:
self.engine.add_device(d)
self.gw.attributes['embedded'].append(d.address)
dev.update_status()
def update(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment