Telemetry
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import json
|
||||
import os
|
||||
import paho.mqtt.publish as publish
|
||||
import sys
|
||||
|
||||
# Retrieve broker parameters from shared config or environment variables
|
||||
MQTT_HOST = os.getenv("MQTT_HOST", "localhost")
|
||||
MQTT_PORT = int(os.getenv("MQTT_PORT", 8884))
|
||||
MQTT_USER = os.getenv("MQTT_USER", None)
|
||||
MQTT_PASS = os.getenv("MQTT_PASS", None)
|
||||
|
||||
|
||||
def send_command(topic: str = "cmd/all", payload: dict | str = None):
|
||||
"""
|
||||
Publishes an MQTT command payload to a given topic.
|
||||
"""
|
||||
if payload is None:
|
||||
payload = {}
|
||||
|
||||
if isinstance(payload, dict):
|
||||
payload_str = json.dumps(payload)
|
||||
else:
|
||||
payload_str = str(payload)
|
||||
|
||||
auth = None
|
||||
if MQTT_USER:
|
||||
auth = {"username": MQTT_USER, "password": MQTT_PASS or ""}
|
||||
|
||||
publish.single(
|
||||
topic=topic,
|
||||
payload=payload_str,
|
||||
hostname=MQTT_HOST,
|
||||
port=MQTT_PORT,
|
||||
auth=auth
|
||||
)
|
||||
print(f"[MQTT] Published command to '{topic}': {payload_str}")
|
||||
Reference in New Issue
Block a user