#--------------------------------------------------
# Module importieren
import network
import time
import random
from umqtt.simple import MQTTClient

#--------------------------------------------------
# WLAN-Konfiguration
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""

# MQTT-Konfiguration
MQTT_BROKER = "public.cloud.shiftr.io"
MQTT_USER = "public"
MQTT_PASSWORD = "public"
MQTT_TOPIC = "BBW/random"

#--------------------------------------------------
# setup

# WiFi auf ESP32 starten
wlan = network.WLAN(network.STA_IF)
wlan.active(True)

# Verbinden mit WiFi-Netzwerk
print("Verbinde mit WiFi...")
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
    time.sleep(1)
    print("Warten auf Verbindung...")

print("Mit WiFi verbunden!")
print("IP-Adresse:", wlan.ifconfig()[0])

# Verbinden mit MQTT-Broker
client = MQTTClient("BBW_esp32_client", MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
print("Verbinde mit MQTT-Broker...")
client.connect()
print("Mit MQTT-Broker verbunden!")

#--------------------------------------------------
# loop
while True:
    # Zufälligen Wert (0..1000) generieren
    random_value = random.randint(0, 1000)
    
    # Nachricht auf MQTT-Broker publizieren
    client.publish(MQTT_TOPIC, str(random_value))

    # Info-Ausgabe in der Konsole
    print("Publiziere Payload", random_value, "auf Topic", MQTT_TOPIC)

    # 1 Sekunde Pause
    time.sleep(1)