Ich einem meiner letzten Artikel habe ich bereits erläutert, wie man Funksteckdosen mit Hilfe eines Raspberry Pi steuern kann. Um das Ganze bedienbar zu machen, habe ich das folgende Tool in Python geschrieben:
ohmcp23017.py
[python]
#!/usr/bin/python
# -*- coding: utf-8 -*-
import rcplug
import argparse
parser = argparse.ArgumentParser(description=’Get operations‘)
parser.add_argument(‚–houseid‘,‘–h‘, help=’House ID to operate with. Values are 00000-11111′, required=True)
parser.add_argument(‚–switch‘,‘–s‘, help=’Switch to operate with. Values are swa,swb,swc and swd‘,choices=’abcde‘, required=True)
parser.add_argument(‚–operation‘,‘–o‘, help=’Operation. Can be on or off‘, required=True)
args = vars(parser.parse_args())
houseid=args[‚houseid‘]
if args[‚operation‘]== ‚on‘:
if args[’switch‘]== ‚a‘:
rcplug.turn_on(rcplug.swa,houseid)
if args[’switch‘]== ‚b‘:
rcplug.turn_on(rcplug.swb,houseid)
if args[’switch‘]== ‚c‘:
rcplug.turn_on(rcplug.swc,houseid)
if args[’switch‘]== ‚d‘:
rcplug.turn_on(rcplug.swd,houseid)
if args[’switch‘]== ‚e‘:
rcplug.turn_on(rcplug.swe,houseid)
else:
if args[’switch‘]== ‚a‘:
rcplug.turn_off(rcplug.swa,houseid)
if args[’switch‘]== ‚b‘:
rcplug.turn_off(rcplug.swb,houseid)
if args[’switch‘]== ‚c‘:
rcplug.turn_off(rcplug.swc,houseid)
if args[’switch‘]== ‚d‘:
rcplug.turn_off(rcplug.swd,houseid)
if args[’switch‘]== ‚e‘:
rcplug.turn_off(rcplug.swe,houseid)
[/python]
Dowload oh2mcp23017.py
Syntax
Die Syntax des Tools lautet
oh2mcp23017.py [-h] –houseid HOUSEID –switch {a,b,c,d,e} –operation OPERATION
HOUSEID: 5-stellige Hausadresse
OPERATION: on oder off
Beispiel
Steckdose B mit der Hausadresse 11110 einschalten:
#./oh2mcp23017.py --h 11110 --s b --o on
Steckdose B mit der Hausadresse 11110 ausschalten:
#./oh2mcp23017.py --h 11110 --s b --o off
Anbindung an openHAB
Die Anbindung an openHAB gestaltet sich nun relativ einfach. Ein Item, das das hier vorgestellte Tool benutzt könnte z.B. so aussehen:
Switch B_2OG_Work_SocketB "Steckdose B" (2OG_work) {exec="OFF:/opt/mcp23017/oh2mcp23017.py --o off --s b --h 11110, ON:/opt/mcp23017/oh2mcp23017.py --o on --s b --h 11110"}
Voraussetzung hierfür ist, dass der Pfad zum Tool /opt/mcp23017/oh2mcp23017.py lautet.
openHAB Android App
Mit der kostelosen App HABDroid lässt sich openHAB von Handy aus bedienen. Eine wie im Beispiel definierte Steckdose würde sich dann so darstellen:
Tipps zur Einrichtung von openHAB auf eurem Raspberry findet ihr in diesem Artikel.
Pingback: Raspberry Pi: MCP23017 für die Steuerung von Funksteckdosen | G-SURF
Pingback: openHAB auf Raspberry Pi | G-SURF
Erstmal will ich mich für die ausführlichen Anleitungen auf deiner Website bzw. der Home Automation auf deiner Website bedanken. Sie haben für mich schon mal viel Licht ins Dunkle gebracht. 🙂
Eine paar Fragen stellen sich mir aber trotzdem noch:
1) Wäre es möglich deinen gesamten Hardware Aufbau in FHEM statt openHab einzubinden? Oder stellt sich bei FEHM nicht das Problem der unzuverlässigen Schaltprobleme?
2) Wieso hast du dich gegen FHEM und für OpenHab entschieden?
3) Was hälst du von dieser Lösung hier? Könnte man den FHEMduino auch unter Openhub einbinden und mit den Elro’s nutzen?
Das Ganze sollte mit FHEM auch funktionieren, wenn FHEM externe Befehle ausführen kann. Dies scheint nach einem kurzen Blick in die Dokumentation wohl der Fall zu sein. Das Timingproblem kann auch bei FHEM auftreten. Eventuell etwas seltener, weil es auf Perl basiert und nicht wie openHAB auf Java. Der CPU Overhead könnte also etwas geringer sein.
Ich finde openHAB wirkt von der Struktur her deutlich aufgeräumter. Auch die Dokumentation und die Webseite von FHEM wirkt auf den ersten Blick etwas chaotisch. Ich habe damals aber nicht wirklich einen ausführlichen Vergleich durchgeführt und mich bis heute mit FHEM nicht beschäftigt.
Zum FHEMduiono habe nicht viel gefunden, außer den Quellcode. Was genau macht das Teil? 🙂