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)