82 lines
1.8 KiB
Python
82 lines
1.8 KiB
Python
import paho.mqtt.client as mqtt
|
|
import sys
|
|
|
|
# ===== KONFIGURATION =====
|
|
# BROKER = "141.75.215.233"
|
|
PORT = 1883
|
|
|
|
TOPIC = "PREDICTION"
|
|
MESSAGE = "sad gummy bitches"
|
|
|
|
USERNAME = None
|
|
PASSWORD = None
|
|
QOS = 0
|
|
# ==========================
|
|
|
|
import socket
|
|
|
|
def get_local_ip():
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
try:
|
|
s.connect(("8.8.8.8", 80))
|
|
ip = s.getsockname()[0]
|
|
finally:
|
|
s.close()
|
|
return ip
|
|
|
|
|
|
|
|
def on_connect(client, userdata, flags, rc):
|
|
if rc == 0:
|
|
print("✅ Erfolgreich mit Broker verbunden")
|
|
|
|
# Subscribe
|
|
client.subscribe(TOPIC, qos=QOS)
|
|
print(f"📡 Abonniert Topic: '{TOPIC}'")
|
|
|
|
# Publish
|
|
client.publish(TOPIC, MESSAGE, qos=QOS)
|
|
print(f"📤 Nachricht gesendet an Topic '{TOPIC}': {MESSAGE}")
|
|
|
|
else:
|
|
print(f"❌ Verbindung fehlgeschlagen mit Code {rc}")
|
|
|
|
|
|
def on_message(client, userdata, msg):
|
|
try:
|
|
payload = msg.payload.decode()
|
|
except:
|
|
payload = msg.payload
|
|
|
|
print("📥 Nachricht empfangen:")
|
|
print(f" Topic: {msg.topic}")
|
|
print(f" QoS: {msg.qos}")
|
|
print(f" Payload: {payload}")
|
|
print("-" * 40)
|
|
|
|
|
|
def on_disconnect(client, userdata, rc):
|
|
print("⚠ Verbindung getrennt")
|
|
|
|
|
|
def main():
|
|
client = mqtt.Client()
|
|
BROKER = get_local_ip()
|
|
if USERNAME and PASSWORD:
|
|
client.username_pw_set(USERNAME, PASSWORD)
|
|
|
|
client.on_connect = on_connect
|
|
client.on_message = on_message
|
|
client.on_disconnect = on_disconnect
|
|
|
|
try:
|
|
client.connect(BROKER, PORT, 60)
|
|
client.loop_forever()
|
|
except Exception as e:
|
|
print("Fehler:", e)
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|