import time
import random
import paho.mqtt.client as mqtt

# MQTT Configuration
BROKER = "test.mosquitto.org"  # Replace with your broker's address
PORT = 1883
TOPIC = "random/float"

# MQTT Client Setup
client = mqtt.Client()

def connect_mqtt():
    try:
        client.connect(BROKER, PORT, 60)
        print(f"Connected to MQTT Broker: {BROKER}")
    except Exception as e:
        print(f"Failed to connect to broker: {e}")

# Publishing random float every second
def publish_random_floats():
    print(f"Publishing to topic: {TOPIC}")
    while True:
        random_float = round(random.uniform(0.01, 10), 2)
        client.publish(TOPIC, random_float)
        print(f"Published: {random_float} to {TOPIC}")
        time.sleep(1)

if __name__ == "__main__":
    connect_mqtt()
    client.loop_start()  # Start the MQTT loop to process network events
    try:
        publish_random_floats()
    except KeyboardInterrupt:
        print("\nExiting...")
        client.loop_stop()
        client.disconnect()

# usage: mosquitto_sub -h test.mosquitto.org -t "random/float"