36 lines
947 B
Python
36 lines
947 B
Python
import json
|
|
import os
|
|
import time
|
|
from datetime import datetime
|
|
|
|
import paho.mqtt.client as mqtt
|
|
|
|
BROKER_HOST = os.getenv("MQTT_HOST", "127.0.0.1")
|
|
BROKER_PORT = int(os.getenv("MQTT_PORT", "1883"))
|
|
USERNAME = os.getenv("MQTT_USERNAME", "testuser")
|
|
PASSWORD = os.getenv("MQTT_PASSWORD", "testpass")
|
|
TOPIC = os.getenv("MQTT_TOPIC", "devices/demo")
|
|
INTERVAL = float(os.getenv("MQTT_INTERVAL", "2"))
|
|
|
|
client = mqtt.Client()
|
|
if USERNAME:
|
|
client.username_pw_set(USERNAME, PASSWORD)
|
|
|
|
client.connect(BROKER_HOST, BROKER_PORT, 60)
|
|
|
|
try:
|
|
counter = 0
|
|
while True:
|
|
payload = {
|
|
"message": f"hello from host {counter}",
|
|
"timestamp": datetime.utcnow().isoformat() + "Z",
|
|
}
|
|
client.publish(TOPIC, json.dumps(payload), qos=0)
|
|
print(f"published to {TOPIC}: {payload}")
|
|
counter += 1
|
|
time.sleep(INTERVAL)
|
|
except KeyboardInterrupt:
|
|
print("stopped")
|
|
finally:
|
|
client.disconnect()
|