Da ich in meinem letzten Beitrag darum gebeten wurde, den Code zur Verfügung zu stellen, möchte ich hier einmal den ersten Codeschnipsel online stellen. Es handelt sich dabei um die light.py – eine Klasse zum ansteuern von Funkempfängern. Dabei wird zum einen das Remote Switch Bricklet unterstützt und zum anderen Fernbedienungen, die über ein Industrial Quad Relay Bricklet angeschlossen sind. Die Empfänger werden in einer MySQL Tabelle mit dem folgendem Schema abgespeichert:
Datenbank: hausautomatisierung
Tabelle: remote_receivers
Aufbau der Tabelle:
id=AUTO_INCREMENT | title | type | group=0 | dimmable=0 | code=NULL | button | state=0 |
---|---|---|---|---|---|---|---|
Stellt die ID dar, die später per light.set(ID) gesetzt wird | Beschreibung des Empfängers | remote Remote Switch Bricklet relay Quad Relay |
Zurzeit nicht verwendet | Zurzeit nicht verwendet | Hauscode (nur bei Remote Switch Bricklet) | Receiver Code bei Remote Switch Bricklet Schalter (1-4) bei Industrial Quad Relay Bricklet |
Zustand des Empfängers |
Das Remote Switch Bricklet kann mit dieser Klasse nur Empfänger vom Typ A schalten.
Das Programm sieht vor, dass die Fernbedienung an zwei Industrial Quad Relays angeschlossen ist. Eins für aus und eins für ein. So können die selben Codes benutzt werden. Das besondere an dieser Klasse ist, dass sie sicherstellt, dass keine Signale gleichzeitig gesendet werden. So können Überlagerungen verhindert werden, die dafür sorgen würden, dass die Empfänger nicht mehr zuverlässig schalten. Anschließend wird der neue Zustand in die Datenbank geschrieben. Der Code ist hier verfügbar.
Die UIDS und Zugangsdaten zur MySQL DB müssen natürlich abgeändert werden. Es werden die TF Python Bindings benötigt und der passende MySQL Connector. Für Verbesserungsvorschläge bin ich natürlich offen. Ich denke, da kann man das ein oder andere Verbessern. Wer Fragen zum Code hat kann diese gerne in den Kommentaren stellen. Ich kann auch gerne noch den ein oder anderen Code zur Verfügung stellen. Auch da könnt ihr einfach über die Kommentare anfragen. Ich denke aber dashier ist der wichtigste Teil für eine Heimautomatisierung mit TinkerForge.