add username and password for mqtt

This commit is contained in:
2026-01-25 14:14:07 +01:00
parent 5956185a1c
commit 0ad6ac0a70
2 changed files with 20 additions and 3 deletions

View File

@@ -12,4 +12,4 @@ services:
- ./src:/app/src:ro
network_mode: host
extra_hosts:
- host:192.168.2.200
- host:192.168.2.150

View File

@@ -13,7 +13,9 @@ import paho.mqtt.client as mqtt
# -----------------------------
MQTT_BROKER = os.getenv("MQTT_BROKER", "localhost")
MQTT_PORT = int(os.getenv("MQTT_PORT", 1883))
MQTT_TOPIC = os.getenv("MQTT_TOPIC", "goodwe/runtime")
MQTT_TOPIC = os.getenv("MQTT_TOPIC", "goodwe")
MQTT_USER = os.getenv("MQTT_USER", "goodwe")
MQTT_PASSWORD = os.getenv("MQTT_PASSWORD", "goodwe")
DISCOVERY_INTERVAL = int(os.getenv("DISCOVERY_INTERVAL", 60)) # seconds
BROADCAST_SUBNET = os.getenv("BROADCAST_SUBNET", "192.168.1.255") # directed broadcast
@@ -32,7 +34,20 @@ logger = logging.getLogger("goodwe-daemon")
# -----------------------------
# MQTT CLIENT SETUP
# -----------------------------
def on_connect(client, userdata, flags, reason_code, properties):
if reason_code == "Success":
logger.info("MQTT connected and authenticated")
else:
raise RuntimeError(f"MQTT connect/auth failed: {reason_code}")
mqtt_client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqtt_client.username_pw_set(
username=MQTT_USER,
password=MQTT_PASSWORD,
)
mqtt_client.on_connect = on_connect
mqtt_client.connect(MQTT_BROKER, MQTT_PORT)
mqtt_client.loop_start()
@@ -76,7 +91,9 @@ async def publish_runtime(ip):
runtime = await read_runtime(ip)
if runtime:
payload = {"ip": ip, "data": runtime}
mqtt_client.publish(MQTT_TOPIC, json.dumps(payload, default=json_serializer))
result = mqtt_client.publish(MQTT_TOPIC, json.dumps(payload, default=json_serializer))
if result.rc != mqtt.MQTT_ERR_SUCCESS:
raise logger.warning(f"Publish failed: {result.rc}")
logger.info(f"Published runtime for {ip}")
# -----------------------------