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

switched to AsyncEngine

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2753 b32b6428-25c9-4566-ad07-03861ab6144f
parent cbdc6ffc
Branches
No related tags found
No related merge requests found
from . import gw
from xaal.lib import helpers
helpers.run_package(gw.PACKAGE_NAME,gw.setup)
helpers.run_async_package(gw.PACKAGE_NAME,gw.setup)
import platform
import atexit
import logging
import pyowm
......@@ -7,6 +6,8 @@ from pyowm.exceptions import OWMError
from xaal.lib import tools
from xaal.schemas import devices
from xaal.lib import helpers
PACKAGE_NAME = "xaal.owm"
RATE = 300 # update every 5 min
API_KEY = '3a5989bac31472cd41d69e92838bd454'
......@@ -24,13 +25,14 @@ def setup_dev(dev):
class GW:
def __init__(self,engine):
self.eng = engine
atexit.register(self._exit)
engine.on_stop(self.save_config)
cfg = tools.load_cfg(PACKAGE_NAME)
if cfg == None:
logger.info('New config file')
logger.info('New config file')
cfg = tools.new_cfg(PACKAGE_NAME)
cfg['config']['base_addr'] = str(tools.get_random_base_uuid())
self.cfg = cfg
self.setup()
self.update()
......@@ -48,7 +50,7 @@ class GW:
self.devs = [d1,d2,d3,d4]
# gw
gw = devices.gateway(tools.str_to_uuid(cfg['addr']))
gw = devices.gateway(tools.get_uuid(cfg['addr']))
gw.attributes['embedded'] = [dev.address for dev in self.devs]
for dev in (self.devs + [gw,]):
......@@ -68,6 +70,7 @@ class GW:
# We are ready
self.owm = pyowm.OWM(api_key)
@helpers.spawn
def update(self):
try:
self._update()
......@@ -85,7 +88,7 @@ class GW:
self.devs[3].attributes['wind_angle'] = weather.get_wind().get('deg',None)
self.devs[3].attributes['gust_strength'] = weather.get_wind().get('gust',None)
def _exit(self):
def save_config(self):
cfg = tools.load_cfg(PACKAGE_NAME)
if cfg != self.cfg:
logger.info('Saving configuration file')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment