def __init__(self): """ Create lister and launch bg listening """ XplPlugin.__init__(self, name = 'zibase') self._config = Query(self.myxpl, self.log) self.address = self._config.query('zibase', 'ip') self.inter = self._config.query('zibase', 'interface') self.port = int(self._config.query('zibase', 'port')) self.valvar=self._config.query('zibase', 'envar') self.interv=int(self._config.query('zibase', 'interv')) self.log.info("Creating listener for ZiBase") Listener(self.zibase_command, self.myxpl, {'schema': 'zibase.basic', 'xpltype': 'xpl-cmnd'}) try: self.ip_host=get_ip_address(self.inter) self.log.debug("Adress IP Host=%s" % (self.ip_host)) except: self.log.error("IP Host not found=%s" % (traceback.format_exc())) return try: self.api = APIZiBase(self.log,self.address) except: self.log.error("API ZiBase error=%s" % (traceback.format_exc())) return try: self.th=ServerZiBase(self.log,self.ip_host,self.port,self.myxpl) self.th.start() except: self.log.error("Server ZiBase error=%s" % (traceback.format_exc())) self.stop() try: self.api.Connect(self.ip_host,self.port) except: self.log.error("Connection ZiBase error=%s" % (traceback.format_exc())) self.stop() if self.valvar=="True" : try: self.log.info("Start reading internal variables") var_read=XplTimer(self.interv,self.zibase_read_var,self.myxpl) var_read.start() except: self.log.error("reading internal variables error") return self.add_stop_cb(self.stop) self.enable_hbeat() self.log.info("Plugin ready :)")
def __init__(self): """ Create lister and launch bg listening """ XplPlugin.__init__(self, name='zibase') self._config = Query(self.myxpl, self.log) self.address = self._config.query('zibase', 'ip') self.inter = self._config.query('zibase', 'interface') self.port = int(self._config.query('zibase', 'port')) self.valvar = self._config.query('zibase', 'envar') self.interv = int(self._config.query('zibase', 'interv')) self.log.info("Creating listener for ZiBase") Listener(self.zibase_command, self.myxpl, { 'schema': 'zibase.basic', 'xpltype': 'xpl-cmnd' }) try: self.ip_host = get_ip_address(self.inter) self.log.debug("Adress IP Host=%s" % (self.ip_host)) except: self.log.error("IP Host not found=%s" % (traceback.format_exc())) return try: self.api = APIZiBase(self.log, self.address) except: self.log.error("API ZiBase error=%s" % (traceback.format_exc())) return try: self.th = ServerZiBase(self.log, self.ip_host, self.port, self.myxpl) self.th.start() except: self.log.error("Server ZiBase error=%s" % (traceback.format_exc())) self.stop() try: self.api.Connect(self.ip_host, self.port) except: self.log.error("Connection ZiBase error=%s" % (traceback.format_exc())) self.stop() if self.valvar == "True": try: self.log.info("Start reading internal variables") var_read = XplTimer(self.interv, self.zibase_read_var, self.myxpl) var_read.start() except: self.log.error("reading internal variables error") return self.add_stop_cb(self.stop) self.enable_hbeat() self.log.info("Plugin ready :)")
class ZiBaseMain(XplPlugin): '''Manage ZiBase ''' def __init__(self): """ Create lister and launch bg listening """ XplPlugin.__init__(self, name = 'zibase') self._config = Query(self.myxpl, self.log) self.address = self._config.query('zibase', 'ip') self.inter = self._config.query('zibase', 'interface') self.port = int(self._config.query('zibase', 'port')) self.valvar=self._config.query('zibase', 'envar') self.interv=int(self._config.query('zibase', 'interv')) self.log.info("Creating listener for ZiBase") Listener(self.zibase_command, self.myxpl, {'schema': 'zibase.basic', 'xpltype': 'xpl-cmnd'}) try: self.ip_host=get_ip_address(self.inter) self.log.debug("Adress IP Host=%s" % (self.ip_host)) except: self.log.error("IP Host not found=%s" % (traceback.format_exc())) return try: self.api = APIZiBase(self.log,self.address) except: self.log.error("API ZiBase error=%s" % (traceback.format_exc())) return try: self.th=ServerZiBase(self.log,self.ip_host,self.port,self.myxpl) self.th.start() except: self.log.error("Server ZiBase error=%s" % (traceback.format_exc())) self.stop() try: self.api.Connect(self.ip_host,self.port) except: self.log.error("Connection ZiBase error=%s" % (traceback.format_exc())) self.stop() if self.valvar=="True" : try: self.log.info("Start reading internal variables") var_read=XplTimer(self.interv,self.zibase_read_var,self.myxpl) var_read.start() except: self.log.error("reading internal variables error") return self.add_stop_cb(self.stop) self.enable_hbeat() self.log.info("Plugin ready :)") def zibase_command(self, message): """ Call zibase lib function in function of given xpl message @param message : xpl message """ commands = { 'off': 0, 'on': 1, 'preset-dim' : 2, } protocols = { 'PRESET': 0, 'VISONIC433' : 1, 'VISONIC868' : 2, 'CHACON' : 3, 'DOMIA' : 4, 'X10' : 5, 'ZWAVE' : 6, 'RFS10' : 7, 'XDD433AL' : 8, 'XDD868AL' : 9, 'XDD868INSH' : 10, 'XDD868PILOT' : 11, 'XDD868BOAC' : 12, } cmd = None dev = None protocol = None preset_dim = 0 if 'command' in message.data: cmd = message.data['command'] if 'device' in message.data: chaine=message.data['device'].split(':') try: dev = chaine[0].upper() protocol=chaine[1].upper() except: self.log.error("Syntax device not valid") if 'preset-dim' in message.data: preset_dim=message.data['preset-dim'] self.log.debug(message.data) if protocol == None : self.log.warning("Protocol not specified") return else: self.log.debug("%s received : device = %s protocol = %s number protocol=%s preset=%s" % (cmd, dev, protocol, protocols[protocol],str(preset_dim))) try: self.api.sendCommand(dev, commands[cmd], protocols[protocol],int(preset_dim)) except: self.log.error("Sendcommand error") return self.th.send_xpl_cmd(message.data['device'], cmd, preset_dim) def stop(self): self.log.debug("Stop plugin in progress...") self.var_read.stop() self.api.Disconnect(self.ip_host,self.port) self.th.stop() return def zibase_read_var(self): try: datas=self.api.getVariables() for data in datas: elmt=data.split(':') stats=['sta:' + elmt[1]] self.th.send_xpl_sensor(stats,elmt[0],'xpl-stat') except: self.log.error("Read var error=%s" % (traceback.format_exc()))
class ZiBaseMain(XplPlugin): '''Manage ZiBase ''' def __init__(self): """ Create lister and launch bg listening """ XplPlugin.__init__(self, name='zibase') self._config = Query(self.myxpl, self.log) self.address = self._config.query('zibase', 'ip') self.inter = self._config.query('zibase', 'interface') self.port = int(self._config.query('zibase', 'port')) self.valvar = self._config.query('zibase', 'envar') self.interv = int(self._config.query('zibase', 'interv')) self.log.info("Creating listener for ZiBase") Listener(self.zibase_command, self.myxpl, { 'schema': 'zibase.basic', 'xpltype': 'xpl-cmnd' }) try: self.ip_host = get_ip_address(self.inter) self.log.debug("Adress IP Host=%s" % (self.ip_host)) except: self.log.error("IP Host not found=%s" % (traceback.format_exc())) return try: self.api = APIZiBase(self.log, self.address) except: self.log.error("API ZiBase error=%s" % (traceback.format_exc())) return try: self.th = ServerZiBase(self.log, self.ip_host, self.port, self.myxpl) self.th.start() except: self.log.error("Server ZiBase error=%s" % (traceback.format_exc())) self.stop() try: self.api.Connect(self.ip_host, self.port) except: self.log.error("Connection ZiBase error=%s" % (traceback.format_exc())) self.stop() if self.valvar == "True": try: self.log.info("Start reading internal variables") var_read = XplTimer(self.interv, self.zibase_read_var, self.myxpl) var_read.start() except: self.log.error("reading internal variables error") return self.add_stop_cb(self.stop) self.enable_hbeat() self.log.info("Plugin ready :)") def zibase_command(self, message): """ Call zibase lib function in function of given xpl message @param message : xpl message """ commands = { 'off': 0, 'on': 1, 'preset-dim': 2, } protocols = { 'PRESET': 0, 'VISONIC433': 1, 'VISONIC868': 2, 'CHACON': 3, 'DOMIA': 4, 'X10': 5, 'ZWAVE': 6, 'RFS10': 7, 'XDD433AL': 8, 'XDD868AL': 9, 'XDD868INSH': 10, 'XDD868PILOT': 11, 'XDD868BOAC': 12, } cmd = None dev = None protocol = None preset_dim = 0 if 'command' in message.data: cmd = message.data['command'] if 'device' in message.data: chaine = message.data['device'].split(':') try: dev = chaine[0].upper() protocol = chaine[1].upper() except: self.log.error("Syntax device not valid") if 'preset-dim' in message.data: preset_dim = message.data['preset-dim'] self.log.debug(message.data) if protocol == None: self.log.warning("Protocol not specified") return else: self.log.debug( "%s received : device = %s protocol = %s number protocol=%s preset=%s" % (cmd, dev, protocol, protocols[protocol], str(preset_dim))) try: self.api.sendCommand(dev, commands[cmd], protocols[protocol], int(preset_dim)) except: self.log.error("Sendcommand error") return self.th.send_xpl_cmd(message.data['device'], cmd, preset_dim) def stop(self): self.log.debug("Stop plugin in progress...") self.var_read.stop() self.api.Disconnect(self.ip_host, self.port) self.th.stop() return def zibase_read_var(self): try: datas = self.api.getVariables() for data in datas: elmt = data.split(':') stats = ['sta:' + elmt[1]] self.th.send_xpl_sensor(stats, elmt[0], 'xpl-stat') except: self.log.error("Read var error=%s" % (traceback.format_exc()))