INNER CODE UNIT · Python
on_message
bkbilly/lnxlink · lnxlink/__main__.py:406
def on_message(self, client, userdata, msg):
"""MQTT message is received with a module command to execute"""
command_prefix = f"{self.config['pref_topic']}/commands/"
if not msg.topic.startswith(command_prefix):
logger.debug("Ignoring MQTT message outside command prefix: %s", msg.topic)
return
topic = msg.topic.replace(command_prefix, "")
message = msg.payload
logger.info("Message received %s: %s", topic, message)
try:
message = json.loads(message)
except json.decoder.JSONDecodeError:
message = message.decode()
except Exception as err:
logger.debug("Error reading message: %s", err)
service = topic.split("/")