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

New UUID, so new base_addr, and clearner code.

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2322 b32b6428-25c9-4566-ad07-03861ab6144f
parent 2eadcd81
No related branches found
No related tags found
No related merge requests found
......@@ -29,34 +29,26 @@ class GW:
if cfg == None:
logger.info('New config file')
cfg = tools.new_cfg(PACKAGE_NAME)
cfg.write()
if not cfg.get('config',None): cfg['config'] = {}
cfg['config']['base_addr'] = str(tools.get_random_base_uuid())
self.cfg = cfg
self.setup()
def get_config_addr(self,key):
""" return a new xaal address and flag an update"""
cfg = self.cfg['config']
if cfg.get(key,None) == None:
cfg[key] = tools.get_random_uuid()
logger.info("New device addr : %s = %s" % (key,cfg[key]))
return cfg[key]
def setup(self):
""" create devices, register .."""
cfg = self.cfg['config']
base_addr = tools.str_to_uuid(cfg['base_addr'])
# devices
self.devs = []
self.devs.append(devices.thermometer(self.get_config_addr('temperature')))
self.devs.append(devices.hygrometer(self.get_config_addr('humidity')))
self.devs.append(devices.barometer(self.get_config_addr('pressure')))
wind = devices.windgauge(self.get_config_addr('wind'))
wind.unsupported_attributes.append('gustAngle')
wind.del_attribute(wind.get_attribute('gustAngle'))
self.devs.append(wind)
d1 = devices.thermometer(base_addr +0)
d2 = devices.hygrometer(base_addr +1)
d3 = devices.barometer(base_addr +2)
d4 = devices.windgauge(base_addr +3)
d4.unsupported_attributes.append('gustAngle')
d4.del_attribute(d4.get_attribute('gustAngle'))
self.devs = [d1,d2,d3,d4]
# gw
gw = devices.gateway(self.get_config_addr('addr'))
gw.attributes['embedded'] = [dev.address for dev in self.devs]
gw = devices.gateway(tools.str_to_uuid(cfg['addr']))
gw.attributes['embedded'] = [dev.address.bytes for dev in self.devs]
for dev in (self.devs + [gw,]):
setup_dev(dev)
......@@ -65,13 +57,13 @@ class GW:
# OWM stuff
self.eng.add_timer(self.update,RATE)
# API Key
api_key = self.cfg['config'].get('api_key',None)
api_key = cfg.get('api_key',None)
if not api_key:
self.cfg['config']['api_key'] = api_key = API_KEY
cfg['api_key'] = api_key = API_KEY
# Place
self.place = self.cfg['config'].get('place',None)
self.place = cfg.get('place',None)
if not self.place:
self.cfg['config']['place'] = self.place = 'Brest,FR'
cfg['place'] = self.place = 'Brest,FR'
# We are ready
self.owm = pyowm.OWM(api_key)
......@@ -98,7 +90,6 @@ class GW:
logger.info('Saving configuration file')
self.cfg.write()
def setup(engine):
gw = GW(engine)
return True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment