Brematic und den Vorgänger Connair kennen die meisten ja. Ist nun wieder eine Hardware die man benötigt, wenn man den einen oder anderen Funk-Schalter schalten möchte.
Die Raspberry kann es aber auch und zwar mit einem recht billigem Sender. Den kann man einfach mit 3 Strippen an dem Raspie anstecken und fertig ist die Laube. Nicht alle haben das Geld für ein Gateway, oder wollen sich nicht, so wie ich, eine Hardware dabei stellen. Bei mir blinkt es überall wie auf der Enterprise, so meine Frau. Die Raspi klappt mit dem kleinem Sender sehr gut, aber wie es im Leben so ist, klappen nicht alle Funk-Schalter damit.
Jetzt würde ich gerne mal darüber schwafeln warum meine Connair.py nicht klappt, bzw. es wird nichts geschaltet.
Hier mal die conair.py die in home/pi eingesetzt wird.
Code: Alles auswählen
#!/usr/bin/env python2.7
import socket
import RPi.GPIO as GPIO
import time
UDP_IP = "0.0.0.0"
GPIO_PIN = 16 # GPIO4
UDP_PORT = 49880
HELLO_MESSAGE = "HCGW:VC:dede53;MC:ConnAir;FW:1.00;IP:192.168.2.124;;"
GPIO.setmode(GPIO.BOARD)
GPIO.setup(GPIO_PIN, GPIO.OUT)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
# "TXP:0,0,6,5950,350,25,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,3,1,1,3,1,3,1,3,3,1,1,17;"
print "received message:", data, "from ", addr
msg = str(data).split(":")
if msg[0] == "SEARCH HCGW":
sock.sendto(HELLO_MESSAGE, addr)
print "Hello message"
if msg[0] == "TXP":
msg[1] = msg[1].replace(";", "")
cmd = msg[1].split(",")
rep = int(cmd[2])
pauselen = int(cmd[3])
steplen = int(cmd[4])
numpulse = int(cmd[5])
pulsedata = cmd[6:]
arrayreader = 0
i = 0
while i < rep:
while int(arrayreader) < (numpulse * 2):
GPIO.output(GPIO_PIN, True)
# print pulsedata[arrayreader], "an"
time.sleep((int(pulsedata[arrayreader]) * steplen ) / 1000000)
arrayreader += 1
# print pulsedata[arrayreader], "aus"
GPIO.output(GPIO_PIN, False)
time.sleep((int(pulsedata[arrayreader]) * steplen ) / 1000000)
arrayreader += 1
i += 1
Aufruf via Putty mit sudo python connair.py
Dann wird mit Auto-Detect Gateway das Gateway gefunden.
In der ursprünglichen connair.py war in Zeile 8 "GPIO_PIN = 4 # GPIO4"
Ich denke mal das kann so nicht stimmen da der GPIO_Pin eine 16 ist.
Wo bin ich da falsch abgebogen?