Ich glaube nicht das wir das hinbekommen die ID als I-Button Family Code an Loxone zu senden um den Berechtigungsbaustein zu benutzen.
Über den UDP Empfänger habe ich es jetzt hinbekommen und lasse per Autostart ein .py Programm im Hintergrund laufen.
Dieses Programm sendet die Rfid via UDP an Loxone. In Loxone müsste dann pro Rfid Chip ein UDP Empfänger angelegt werden. (ist bei Ekey z.b. genau so). Ich steuer alle weiteren aktionen wie Türöffnen und Nextion über Loxone und nicht über den Raspberry.
Wenn jetzt jemand einen Tip hätte wie ich die ID in Family Code umwanden kann wäre dies perfekt und wir könnten den Code beim User hinterlegen.
Anbei meine beiden Codes
Python: LoxoneRfid_UDP.py
#!/usr/bin/python
# coding=utf-8
import serial
# UART
ID = ""
Zeichen = 0
Checksumme = 0
Tag = 0
#flags
Startflag = "\x02"
Endflag = "\x03"
# UART oeffnen
ser = serial.Serial("/dev/ttyUSB0")
ser.baudrate = 9600
while True:
# Variablen loeschen
Checksumme = 0
Checksumme_Tag = 0
ID = ""
# Zeichen einlesen
Zeichen = ser.read()
# Uebertragungsstart signalisiert worden?
if Zeichen == Startflag:
# ID zusammen setzen
for Counter in range(13):
Zeichen = ser.read()
ID = ID + str(Zeichen)
# Endflag aus dem String loeschen
ID = ID.replace(Endflag, "" );
# Checksumme berechnen
for I in range(0, 9, 2):
Checksumme = Checksumme ^ (((int(ID[I], 16)) << 4) + int(ID[I+1], 16))
Checksumme = hex(Checksumme)
# Tag herausfiltern
Tag = ((int(ID[1], 16)) << 8) + ((int(ID[2], 16)) << 4) + ((int(ID[3], 16)) << 0)
Tag = hex(Tag)
# ID in string
ID2 = int(ID[4:10],16)
ID3 = str(ID2)
# Ausgabe der Daten
print "------------------------------------------"
print "Loxone UDP"
print "ID:", ID3
import socket
UDP_IP = "IP_LOXONE_MINISERVER"
UDP_PORT = UDP_PORT_LOXONE
MESSAGE = ID3
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
print "------------------------------------------"
Alles anzeigen