Daten über UDP empfangen

Problem

Es soll gezeigt werden, wie Daten per UDP an Loxone übertragen werden können. Dazu wird die CPU Temperatur eines Raspberry Pi verwendet.

Lösung

UDP Eingang in Loxone Config erstellen

  • Hier eine Anleitung, die mit Loxone Config 7.4 erstellt wurde: UDP Eingang definieren

  • Oder hier ein zum unten folgenden Code passendes Beispiel mit Loxone Config 8.1: UDP Demo.zip

CPU Temperatur vom Raspberry Pi senden

Installiert man obiges Beispiel am Miniserver und lässt folgendes Python Script auf einem Raspberry PI laufen, dann wird im MS die Temperatur empfangen und angezeigt. Dabei sind folgende Dinge wichtig, damit das ganze funktioniert.

  • IP Adresse und Port Nummer müssen passen

  • Die UDP Nachricht (MESSAGE) die gesendet wird, muss am Miniserver in der UDP Befehlserkennung mit dem richtigen Parameter angegeben werden. Für unser Beispiel ist das (ohne die "") "CPU_Temp \v"

 

Python Programm um die CPU Tempeartur zu senden
#!/usr/bin/env python import time import socket import os   # hier die IP Adresse des eigenen Miniservers eintragen UDP_IP = "192.168.42.230" # hier die Port Nummer des UDP Eingangs eintragen UDP_PORT = 9999 while True: def getCpuTemperature(): tempFile = open("/sys/class/thermal/thermal_zone0/temp") cpu_temp = tempFile.read() tempFile.close() return float(cpu_temp)/1000 CPU_Temp = getCpuTemperature() MESSAGE = "CPU_Temp " + str(CPU_Temp) #print MESSAGE sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)) time.sleep(60)