コード例 #1
0
 def __init__(self):
     """
     Create the tsChacon class
     This class is used to connect chacon devices (through TellSitck) to the xPL Network
     """
     XplPlugin.__init__(self, name='tschacon')
     self.log.debug("tschacon correctly started")
     self._device = "/dev/tellstick"
     #Check if the device exists
     if not os.path.exists(self._device):
         self.log.error(self._device + " is not present")
     else:
         self.log.debug("device present as " + self._device)
     self._config = Query(self.myxpl, self.log)
     try:
         self.__mytellstick = TellStick()
     except Exception:
         self.log.error(
             "Something went wrong during TellStick init, check logs")
         self.log.error("Exception : %s" % traceback.format_exc())
         exit(1)
     #Create listeners
     Listener(self.tsChacon_cmnd_cb, self.myxpl, {
         'schema': 'ts.arctech',
         'xpltype': 'xpl-cmnd'
     })
     self.enable_hbeat()
     self.log.debug("tschacon plugin correctly started")
コード例 #2
0
ファイル: tschacon.py プロジェクト: capof/domogik
    def __init__(self):
        """
        Create the tsChacon class
        This class is used to connect chacon devices (through TellSitck) to the xPL Network
        """
        XplPlugin.__init__(self, name = 'tschacon')
        self.log.debug("tschacon correctly started")
        self._device = "/dev/tellstick"
	#Check if the device exists
        if not os.path.exists(self._device):
            self.log.error(self._device + " is not present")
        else:
            self.log.debug("device present as "+self._device)
        self._config = Query(self.myxpl, self.log)
        try:
            self.__mytellstick = TellStick()
        except Exception:
            self.log.error("Something went wrong during TellStick init, check logs")
            self.log.error("Exception : %s" % traceback.format_exc())
            exit(1)
        #Create listeners
        Listener(self.tsChacon_cmnd_cb, self.myxpl, 
                 {'schema': 'ts.arctech', 'xpltype': 'xpl-cmnd'})
        self.enable_hbeat()
        self.log.debug("tschacon plugin correctly started")
コード例 #3
0
ファイル: tschacon.py プロジェクト: capof/domogik
class tsChacon(XplPlugin):
    '''Manage chacon devices through the TellStick device
    '''

    def __init__(self):
        """
        Create the tsChacon class
        This class is used to connect chacon devices (through TellSitck) to the xPL Network
        """
        XplPlugin.__init__(self, name = 'tschacon')
        self.log.debug("tschacon correctly started")
        self._device = "/dev/tellstick"
	#Check if the device exists
        if not os.path.exists(self._device):
            self.log.error(self._device + " is not present")
        else:
            self.log.debug("device present as "+self._device)
        self._config = Query(self.myxpl, self.log)
        try:
            self.__mytellstick = TellStick()
        except Exception:
            self.log.error("Something went wrong during TellStick init, check logs")
            self.log.error("Exception : %s" % traceback.format_exc())
            exit(1)
        #Create listeners
        Listener(self.tsChacon_cmnd_cb, self.myxpl, 
                 {'schema': 'ts.arctech', 'xpltype': 'xpl-cmnd'})
        self.enable_hbeat()
        self.log.debug("tschacon plugin correctly started")

    def tsChacon_cmnd_cb(self, message):
        """
        General callback for all command messages
        @param message : an XplMessage object
        """
        commands = {
            'on': lambda h, u: self.__mytellstick.sendOn("arctech","codeswitch",h,u),
            'off': lambda h, u: self.__mytellstick.sendOff("arctech","codeswitch",h,u),
        }
        cmd = None
        dev = None
        if 'command' in message.data:
            cmd = message.data['command']
        if 'device' in message.data:	    
            house = message.data['device'][0]
            unit = message.data['device'][1]
        self.log.debug("%s received : house = %s unit= %s" %
                       (cmd, house, unit))
        commands[cmd](house, unit)
        self.tsChacon_monitor_cb(house, unit, cmd)

    def tsChacon_monitor_cb(self, house, unit, order, args = None):
        """
        Callback for TellStick Chacon monitoring
        @param house : the house of the element controled
        @param unit : the unit of the element controled
        @param order : the order sent to the unit
        """
        self.log.debug("tschacon Callback YEDfor %s" % unit)
        mess = XplMessage()
        mess.set_type("xpl-trig")
        mess.set_schema("ts.arctech")
        mess.add_data({"device" :  house+unit})
        mess.add_data({"command" :  order})
        self.myxpl.send(mess)
コード例 #4
0
class tsChacon(XplPlugin):
    '''Manage chacon devices through the TellStick device
    '''
    def __init__(self):
        """
        Create the tsChacon class
        This class is used to connect chacon devices (through TellSitck) to the xPL Network
        """
        XplPlugin.__init__(self, name='tschacon')
        self.log.debug("tschacon correctly started")
        self._device = "/dev/tellstick"
        #Check if the device exists
        if not os.path.exists(self._device):
            self.log.error(self._device + " is not present")
        else:
            self.log.debug("device present as " + self._device)
        self._config = Query(self.myxpl, self.log)
        try:
            self.__mytellstick = TellStick()
        except Exception:
            self.log.error(
                "Something went wrong during TellStick init, check logs")
            self.log.error("Exception : %s" % traceback.format_exc())
            exit(1)
        #Create listeners
        Listener(self.tsChacon_cmnd_cb, self.myxpl, {
            'schema': 'ts.arctech',
            'xpltype': 'xpl-cmnd'
        })
        self.enable_hbeat()
        self.log.debug("tschacon plugin correctly started")

    def tsChacon_cmnd_cb(self, message):
        """
        General callback for all command messages
        @param message : an XplMessage object
        """
        commands = {
            'on':
            lambda h, u: self.__mytellstick.sendOn("arctech", "codeswitch", h,
                                                   u),
            'off':
            lambda h, u: self.__mytellstick.sendOff("arctech", "codeswitch", h,
                                                    u),
        }
        cmd = None
        dev = None
        if 'command' in message.data:
            cmd = message.data['command']
        if 'device' in message.data:
            house = message.data['device'][0]
            unit = message.data['device'][1]
        self.log.debug("%s received : house = %s unit= %s" %
                       (cmd, house, unit))
        commands[cmd](house, unit)
        self.tsChacon_monitor_cb(house, unit, cmd)

    def tsChacon_monitor_cb(self, house, unit, order, args=None):
        """
        Callback for TellStick Chacon monitoring
        @param house : the house of the element controled
        @param unit : the unit of the element controled
        @param order : the order sent to the unit
        """
        self.log.debug("tschacon Callback YEDfor %s" % unit)
        mess = XplMessage()
        mess.set_type("xpl-trig")
        mess.set_schema("ts.arctech")
        mess.add_data({"device": house + unit})
        mess.add_data({"command": order})
        self.myxpl.send(mess)