Wie findet Ihr das System? 5
-
Gibt es schon (0) 0%
-
Mal was anderes (1) 20%
-
Gut (1) 20%
-
Genial (3) 60%
Hallo Leute,
hiermit moechte ich mein Projekt vorstellen. Es ist sicherlich anders als die, die es bereits gibt. Es lohnt sich mal durchzulesen wie ich bisher vorgegangen bin.
Mein Haus ist ausnahmslos mit Tastern ausgestattet, Alle Lichter und Rollos werden mit handelsueblichen Tastern gesteuert. Demnach fuehrt von jedem taster ein Schaltkabel in den Schaltschrank. Und hier war die idee diese abzugreifen und an meine eigene Steuerung anzuschliessen.
Ich habe ein Prorotyp board gebastelt das mit 64xRelais und erstaml mit 200 Eingaengen ausgestattet ist. Dabei ist die Hardware modular erweiterbar. Pro Modul bekommt man 16x neue Relais und rund 30 neue Eingaenge, davon 10 mit Analog I/O fuer z.B. Temperaturmessungen (Eingang) oder fuer Dimmersteuerung (Ausgang). Die Module bestehen aus einem ATMEL MEGA128 Microprozessor und einem 16x Relais board. Jedes Modul wird mit einem ebenfalls selbst geschriebenem Programm geflasht, es wird lediglich nur die I2C Bus Adresse angepasst.
Die einzelnen Module kommunizieren mit dem RPI ueber den im PRI vorhandenen I2C Bus, daher auch einfach erweiterbar. Als OS im PRI habe ich Debian mit MySQL und Apache gewaehlt. Damit ich die Kommunikation direkt ueber PHP und nicht umstaendlich ueber shell scripte nutzen kann, habe ich mir einen eigenen PHP MOD fuer I2C steuerung geschrieben. Damit habe ich die Moeglichkeit alle 200 Eingaenge zig mal pro Sekunde abzufragen.
Administration
Mit der Administrativen Weboberflaeche laesst sich alles was moeglich ist konfigurieren.
Nach dem Start des PRI werden erstmal alle vorhandenen Module mit den vorhandenen I/O ports aufgelustet. Hier hat man erstmal die Moeglichkeit die ports als Ein- oder Ausgang zu definieren. Da dies aber ein riesen durcheinander geben kann, habe ich die Initialisierungsfunktion eingebaut.
Initialisieren
Die Initialisierungsfunktion laesst das gesammte System bei Neuinstallation oder bei Erweiterungen ganz einfach einrichten. Sobald sich das System im Init-Modus befindet, werden alle I/O Ports auf Lauschmodus geschaltet. Das bedeutet, dass bei druecken eines beliebigen Schalters im Haus die Weboberflaeche zeitgleich reagiert und automatisch den entprechenden Port auf Editieren umschaltet. So kann man ganz einfach den Namen des Schalters (z.B. "Kinderzimmer Tuerschalter") hinterlegen, ohne alle Leitungen bis zum richtigen Port zu untersuchen. Wenn man nun mit einem Notebook quer durchs Haus rennt schnell alle Schalter einmal antippt und den Namen hinterlegt, hat man alle Eingaenge initialisiert.
Die Ausgaenge werden auf dem herkoemlichen Weg eingestellt. Sprich herausfinden welches Relai fuer Lampe in der Kueche zustaendig ist und dann in der Oberflaeche den Namen hinterlegen.
Zuordnung
Die Schalter werden nun zu den Entsprechenden Verbrauchern ueber die Weboberflaeche per Drag&Drop zugeordnet. Es koennen mehrere Eingaenge zu ein und dem selben Verbraucher verknuepft werden. z.B. soll der "Schalter im Flur vorne" und der "Schalter im Flur hinten" den Verbraucher "Lampe Flur" bedienen. Ebenfalls koennen mehrere Verbraucher an einen oder mehrere Eingaenge zugeordnet werden. So koennen mehrere Schalter die lichter "Flur decke" und "Flur Wand" bedienen.
Bei jedem Eingan koennen unterschiedliche Eingangsfunktionen eingestellt werden.
- Standardfunktion (Taster drueck -> AN, Taster nochmal drueck -> AUS)
- Verzoegerungsfunktion mit Millisekunden Eingabe (Taster gedrueckt halten, millis -> AN, usw.)
- Intervallfunktion mit Anzahl Eingabe (z.B. Anzahl wurde auf 3 eingestellt, so muss der Taster 3 mal gedrueckt werden -> AN, usw.)
Bei jedem Ausgang (Verbraucher) kann auch eine Ausgangsfunktion eingestellt werden.
- Standardfunktion (direkt AN oder AUS)
- Verzoegerungsfunktion mit Millisekunden Eingabe (Wenn Schalter getaetigt wurde, dann Millis warten und dann erst -> AN)
- Timeoutfunktion mit Millisekunden Eingabe (Wenn Verbraucher an ist, wird er nach millis wieder ausgeschaltet)
- Blinkfunktion mit Intervall eingabe (Verbraucher blinkt mit eingestelltem intervall)
Rolladenfunktion
Fuer jede Ralladenschaltung werden generell 2 Eingaenge (Schalter hoch, Schalter runter) und 2 Ausgaenge (Rollosmotor hoch, runter) benoetigt. Diese 4 Ports werden zu einem Rollos Modul per Drag&Drop vereint. Die 2 Ausgaenge (Relais) werden softwaretechnisch so miteinander gekoppelt, dass niemals beide gleichzeitig an sein koennen. Sonst koennte der Antriebsmotor beschaedigt werden.
Wenn ein Rollomodul fertig zusammengestellt wurde, kann ideses initiirt werden. Man misst mit einem Assistenten dafuer die Zeiten wie lange das Rollo fuer eine komplette Schliessung und eine komplette Oeffnung benoetigt. Diese 2 Zeiten werden in der Datenbank abgelegt und koennen spaeter fuer die Berechnung der aktuellen Lage des Rollos verwendet werden. In der mobilen Version kann z.B. ueber den Touchscreen das Rollo einfach mit dem Finger auf beliebige % Zahl gestellt werden, so kann das Rollo z.B. auf 50% geoeffnet gestellt werden.
Gruppen
Es koennen aus allen konfigurierten Ports wie z.B. Rollo oder Schalter oder Lichter, Gruppen erstellt werden. z.B. kann eine Gruppe Namens "Wohnzimmer" erstellt werden. Dahin koennen alle Schalter Lichter und Rollos aus Wohnzimmer bewegt werden. Die Guppe kann anschliessend als eine Einheit z.B. als Ausgang bei der Zuordnung verwendet werden. So koennte man z.B. den Schalter "Wohnzimmer Wohnbereich Rollos hoch" so konfigurieren, dass wenn man ihn 3xmal drueckt, gehen alle Rollos im Wohnzimmer auf 80% zu. oder wenn man den selben schalter 4xmal drueck gehen alle Rollos im Wohnzimmer und Flur auf 100% zu. Hier gibt es bei der Konfiguration schon fast keine Grenzen mehr.
Mobile Anwendung
Die Mobile Anwendung hab ich mit dem Framework Sencha Touch 2.2 programmiert. Hier lassen sich Gruppen hirarchisch darstellen und die Verbraucher sowie die Rollos koennen bereits bedient werden.
Es gibt natuerlich noch jede Menge Entwicklungsbedarf, aber die ersten Funktionen laufen schon recht passabel.
Allgemein
Die Administrative, sowie die mobile Oberflaeche laufen beide ueber die Websocket Technilogie, so dass eine Echtzeitdarstellung ueber die Aktionen der Schalter, der Lampen oder sogar der Rollos ermoeglicht wurde. Wenn man also ein Rolle mit dem Schalter bedient, sieht man in der mobilen Anwendung in Echtzeit wie das Rollo hochfaehrt. Genauso mit den Lichtern, macht man ein Licht per Schalter an, bewegt sich der Schalter auch sofort in der Oberflaeche.
Ich habe das ganze als ein kleines Hobbyprojekt ins Leben gerufen, vertreibe mir damit manchmal die Zeit. Naja und werde mich natuerlich freuen wenn ich mein Haus bald von unterwegs unter kontrolle hab.
Bei Gelegenheit kann ich euch gerne einige Screenshots zeigen, aber ich wuerde mich schonmal riesig ueber eure Meinung freuen.
Schoene Gruesse
Meda