def setup(self): """ connect to serial port, and load configuration file""" # connect to serial port port = self.cfg['config']['port'] self.ser = serial.Serial(port, 19200, timeout=0.5) # load devices from devices = [] relays = self.cfg['relays'] for k in relays: dev = new_dev(self, k[0], k[1], relays[k]['addr'], relays[k]['type']) devices.append(dev) self.engine.add_devices(devices) # last step build the GW device gw = Device("gateway.basic") gw.address = self.cfg['config']['addr'] gw.vendor_id = "JKX" gw.product_id = "HQ Product RF433 Gateway" gw.version = 0.1 gw.info = "%s@%s" % (PACKAGE_NAME, platform.node()) emb = gw.new_attribute('embedded', []) emb.value = [dev.address for dev in devices] self.engine.add_device(gw)
def build_dev(addr, devtype): dev = Device(devtype) dev.address = addr dev.vendor_id = "DIY Wireless Bug" dev.url = "http://dwb.ilhost.fr/" dev.version = 0.3 return dev
def setup(): """ setup xAAL Engine & Device. And start it in a Greenlet""" helpers.setup_console_logger() global monitor engine = Engine() cfg = tools.load_cfg(PACKAGE_NAME) if not cfg: logger.info('Missing config file, building a new one') cfg = tools.new_cfg(PACKAGE_NAME) cfg.write() dev = Device("hmi.basic") dev.address = cfg['config']['addr'] dev.vendor_id = "IHSEV" dev.product_id = "WEB Interface" dev.version = 0.1 dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) engine.add_device(dev) db_server = None if 'db_server' in cfg['config']: db_server = cfg['config']['db_server'] else: logger.info('You can set "db_server" in the config file') monitor = Monitor(dev, filter_func=monitor_filter, db_server=db_server) monitor.subscribe(event_handler) engine.start() green_let = Greenlet(xaal_loop, engine) green_let.start()
def setup(self): dev = Device("logger.basic") dev.address = self.cfg['addr'] dev.vendor_id = "IHSEV" dev.product_id = "WARP10 Logger" dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) self.eng.add_device(dev) self.http = urllib3.PoolManager()
def build_dev(dtype, addr): dev = Device(dtype) dev.address = addr dev.vendor_id = "IHSEV" dev.product_id = "OpenWeatherMap" dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) dev.url = "https://www.openweathermap.org" dev.version = 0.2 return dev
def build_dev(dtype, addr): dev = Device(dtype) dev.address = addr dev.vendor_id = "NETATMO" dev.product_id = "NetatmoWeatherStation" dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) dev.url = "https://dev.netatmo.com/" dev.version = 0.1 return dev
def setup_gw(self): # last step build the GW device gw = Device("gateway.basic") gw.address = self.cfg['config']['addr'] gw.vendor_id = "IHSEV" gw.product_id = "IPX-800 Ethernet Control System" gw.version = 0.1 gw.url = "http://gce-electronics.com/fr/home/57-module-ip-rail-din-webserver-8-relais-ipx800-v3.html" gw.info = "%s@%s" % (PACKAGE_NAME, platform.node()) emb = gw.new_attribute('embedded', []) emb.value = [io.dev.address for io in self.in_out] self.engine.add_device(gw)
def setup_gw(self): # last step build the GW device gw = Device("gateway.basic") gw.address = self.cfg['config']['addr'] gw.vendor_id = "DIY Wireless Bug" gw.product_id = "bugOne Gateway" gw.version = 0.3 gw.url = "http://dwb.ilhost.fr/" gw.info = "%s@%s" % (PACKAGE_NAME, platform.node()) emb = gw.new_attribute('embedded', []) for node in self.nodes.values(): for dev in node.get_devices(): emb.value.append(dev.address) self.engine.add_device(gw)
def monitor_example(engine): # load config cfg = tools.load_cfg_or_die(PACKAGE_NAME) # create a device & register it dev = Device("hmi.basic") dev.address = cfg['config']['addr'] dev.vendor_id = "IHSEV" dev.product_id = "Monitor Example" dev.version = 0.1 dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) engine.add_device(dev) # start the monitoring mon = Monitor(dev) mon.subscribe(display_event) return mon
def setup(self): addr = self.cfg['config']['addr'] dev = Device("metadatadb.basic") dev.address = addr dev.vendor_id = "IHSEV" dev.product_id = "Metadata database" dev.version = 0.1 dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) dev.add_method('getDevices', self.get_devices) dev.add_method('getKeysValues', self.get_keys_values) dev.add_method('getValue', self.get_value) dev.add_method('updateKeysValues', self.update_keys_values) dev.add_method('addKeysValues', self.add_keys_values) self.dev = dev self.engine.add_device(dev) self.engine.add_timer(self.periodic_save, 60)
def setup_xaal(): """ setup xAAL Engine & Device. And start it in a Greenlet""" global monitor engine = Engine() cfg = tools.load_cfg_or_die(PACKAGE_NAME) dev = Device("hmi.basic") dev.address = cfg['config']['addr'] dev.vendor_id = "IHSEV" dev.product_id = "REST API" dev.version = 0.1 dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) engine.add_device(dev) monitor = Monitor(dev, filter_func=monitor_filter) engine.start() green_let = Greenlet(xaal_loop, engine) green_let.start()
def setup(self): cfg = self.cfg client = influxdb.InfluxDBClient( host=cfg['host'], port=int(cfg['port']), username=cfg['user'], password=cfg['password'], database=cfg['database'], ssl=(cfg['ssl'] == "true")) self.influxdb = client dev = Device("logger.basic") dev.address = self.cfg['addr'] dev.vendor_id = "IHSEV" dev.product_id = "InfluxDB Logger" dev.url = "https://www.influxdata.com" dev.version = 0.1 dev.info = "%s@%s:%s" % (cfg['database'],cfg['host'],cfg['port']) self.eng.add_device(dev)
def setup(self): """ connect to mqtt server & register xaal dev""" cfg = self.cfg client = mqtt.Client(client_id=cfg['client_id'], clean_session=True, userdata=None, protocol=mqtt.MQTTv31) client.username_pw_set(cfg['username'], cfg['password']) client.connect(host=cfg['host'], port=int(cfg['port']), keepalive=60, bind_address="") client.loop_start() self.mqtt = client dev = Device("logger.basic") dev.address = self.cfg['addr'] dev.vendor_id = "IHSEV" dev.product_id = "MQTT Logger" dev.info = "%s@%s:%s" % (cfg['client_id'], cfg['host'], cfg['port']) self.eng.add_devices([ dev, ])