def __init__(self): ''' Start teleinfo device handler ''' XplPlugin.__init__(self, name='teleinfo') self._config = Query(self.myxpl, self.log) device = self._config.query('teleinfo', 'device') interval = self._config.query('teleinfo', 'interval') # Init Teleinfo teleinfo = Teleinfo(self.log, self.send_xpl) # Open Teleinfo modem try: teleinfo.open(device) except TeleinfoException as err: self.log.error(err.value) print(err.value) self.force_leave() return self.add_stop_cb(teleinfo.close) # Start reading Teleinfo teleinfo_process = threading.Thread(None, teleinfo.listen, 'teleinfo-listen', (float(interval),), {}) teleinfo_process.start() self.enable_hbeat()
def read(self, args = None): """ Read electrric meter """ tele = Teleinfo(self._log, None) try: tele.open(args[0]) except TeleinfoException as err: return [err.value] data = tele.read() try: tele.close() except TeleinfoException as err: return [err.value] resp = [] resp.append("Electric meter data : ") for entry in data: resp.append("%-10s : %-15s" % (entry["name"], entry["value"])) return resp