light.py – Klasse zur Steuerung von Funksteckdosen mit TinkerForge

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.

Leave a Reply

Your e-mail address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.