Files
bt-mqtt-gateway/workers/mysensors.py
T
Dennis Keitzel c9a634870f Improved logging mechanism (and a few minor goodies) (#54)
* Improved logging mechanism

* Allow for suppression of any errors regarding failed device updates
2019-03-03 19:46:38 +01:00

23 lines
668 B
Python

import serial
from mqtt import MqttMessage
from workers.base import BaseWorker
import logger
REQUIREMENTS = ['pyserial']
_LOGGER = logger.get(__name__)
class MysensorsWorker(BaseWorker):
def run(self, mqtt):
with serial.Serial(self.port, self.baudrate, timeout=10) as ser:
_LOGGER.debug("Starting mysensors at: %s" % ser.name)
while True:
line = ser.readline()
if not line:
continue
splited_line = self.format_topic(line.decode('utf-8').strip()).split(';')
topic = '/'.join(splited_line[0:-1])
payload = ''.join(splited_line[-1])
mqtt.publish([MqttMessage(topic=topic, payload=payload)])