Module mqtt implemented

This commit is contained in:
Dirk Alders 2022-09-12 21:05:41 +01:00
parent 934992d275
commit 01fc7408ff
3 changed files with 13 additions and 16 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "report"]
path = report
url = https://git.mount-mockery.de/pylib/report.git
[submodule "mqtt"]
path = mqtt
url = https://git.mount-mockery.de/pylib/mqtt.git

1
mqtt Submodule

@ -0,0 +1 @@
Subproject commit 3d9fc164b4a2cca4a528bd71f04b87a50cd5a078

View File

@ -2,7 +2,7 @@ import config
import json
import lirc
import logging
import paho.mqtt.client as paho
import mqtt
import report
import socket
import time
@ -14,26 +14,19 @@ except ImportError:
logger = logging.getLogger(ROOT_LOGGER_NAME).getChild('main')
class remote_control(object):
class remote_control(mqtt.mqtt_client):
def __init__(self):
self.__lirc_client__ = None
self.__lirc_init__()
#
self.__start_data__ = None
#
self.__client__ = paho.Client(config.APP_NAME) # create client object
self.__client__.on_message = self.__receive__ # attach function to callback
self.__client__.username_pw_set(config.MQTT_USER, config.MQTT_PASS) # login with credentials
try:
self.__client__.connect(config.MQTT_SERVER, 1883) # establish connection
self.__client__.loop_start() # start the loop
for remote in config.SUPPORTED_REMOTES:
for command in config.SUPPORTED_REMOTES[remote]:
topic = config.MQTT_TOPIC + "/" + remote + "/" + command
logger.debug("Subscribing \"%s\"", topic)
self.__client__.subscribe(topic) # subscibe a topic
except (socket.timeout, OSError) as e:
logger.warning("Erro while setting up mqtt instance and listener")
mqtt.mqtt_client.__init__(self, config.APP_NAME, config.MQTT_SERVER, 1883, config.MQTT_USER, config.MQTT_PASS)
#
for remote in config.SUPPORTED_REMOTES:
for command in config.SUPPORTED_REMOTES[remote]:
topic = config.MQTT_TOPIC + "/" + remote + "/" + command
self.add_callback(topic, self.mqtt_to_lirc)
def __lirc_init__(self):
if self.__lirc_client__ is not None:
@ -42,7 +35,7 @@ class remote_control(object):
logger.info("Initiating lirc connection")
self.__lirc_client__ = lirc.Client()
def __receive__(self, client, userdata, message):
def mqtt_to_lirc(self, client, userdata, message):
try:
payload = json.loads(message.payload)
except json.decoder.JSONDecodeError: