-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Ein Ardunio Uno steuert mit Hilfe von Relais bis zu 8 Motoren für Fenster und Jalousie. Einfache Steuerkommandos ermöglichen, neben den Wandtastern und der FS20-Einbindung mittels der zwei FS20-SM8 Empfänger, die Bedienung der Steuerung über Netzwerkschnittstelle (der Ardunio Uno ist über seine RS232 Schnittstelle an ein WIZ110SR RS232toEthernet Konverter angeschlossen und somit in das Hausnetzwerk integriert). Ein optionaler Regensensor läßt sich über Zusatzeingänge integrieren. Dieser schliesst bei Regen die Fenster und kann (optional) die Fenster nach dem Regen automatisch wieder in die ursprüngliche Position schalten.
- Anschluss von max. 4 elektrische DFF mit elektrischen Jalousien
- Anschluss von 16 Wandtaster (8 für jeden Motor, jeweils ein Taster für "Auf" und "Zu")
- Funksteuerung über FS20 mit Hilfe zweier FS20-SM8 8-Kanal Empfänger
- Regensensoreingang zum autom. Schliessen der DFF bei Regen
- Fernbedienung bzw. Einbindung in die eigene Hausautomatisierung mittels
Arduino Uno steuert
- max. acht 24V Gleichstrommotoren
- 4 für die elektrischen DFF
- 4 für die elektrischen Jalousien.
- ein Relais schaltet die Betriebspannung ein und aus
- das zweites Relais schaltet die Drehrichtung (Polung)
Für die Bedienung durch den Benutzer dienen
- 16 Wandtaster, 8 für jeden Motor, jeweils ein Taster für "Auf" und "Zu"
- 16 FS20-SM8 Empfänger (aufgebaut mit zwei ELV FS20 SM8 8-Kanal Empfangsmodule) - wie bei den Wandtaster - acht Paar, jeweils 2 Kanäle: Ein Kanal für "Öffnen" und ein zweiter Kanal für "Schliessen".
Antippen der Wandtaster startet die jeweilige Betriebsrichtung. Nochmaliges Antippen der gleichen Laufrichtung stoppt den Motor. Antippen der Gegenrichtung startet die Gegenrichtung sofort. Drücken beider Richtungen zusammen stoppt auch den Motor, egal in welcher Richtung dieser gerade lief.
Zur (optionalen) Funktion der Positionierung der Motoren auf eine Stellung zwischen "Auf" und "Zu" muss der Steuerung die ungefähre Laufzeit eines Fensters bzw. Rollos bekannt gegeben werden. Die Laufzeit kann mit Hilfe der Auto-Lern Funktion programmiert werden. Dazu öffnet oder schliesst man ein Fenster/Rollo vollständig, betätigt die Wandtaste zum öffnen/schliessen (in Gegenrichtung) und hält diese solange fest (länger als 10 Sek.), bis das Fenster/Rollo in der Gegenposition angekommen ist. Nach dem Loslassen des Tasters merkt sich die Steuerung die Tastenzeit als Laufzeit für dieses Fenster bzw. diese Jalousie. Zum genauen Positionieren des Motors sollte diese Zeit sehr genau sein. Damit nun ein Motor das jeweilige Fenster bzw. die Jalousie komplett schließt bzw. öffnet, läuft jeder Motor bei Endbefehlen wie "Auf" oder "Zu" eine bestimmte Zeit nach (Standard 2 Sek.).
Die Wandtasterbedienung hat Vorrang vor der FS20 Bedienung.
Über FS20 gesteuert benötigen wir für jeden Motor zwei FS20 Kanäle: Einen Kanal für die Funktion "Auf", einen zweiten Kanal für die Funktion "Zu".
Schaltet man einen FS20 Kanal ein, startet das den zugehörigen Motor. Ein weiteres Mal den gleiche FS20 Kanal benutzt, schaltet den FS20 Kanal aus und stoppt den Motor.
Einfache Steuerkommandos ermöglichen die Steuerung der DFF auch über Netzwerk. Die FHEM Automationssoftware benutzt diese Schnittstelle anstatt der FS20 Funktempfänger zur Einstellung und Steuerung der Dachflächenfenster.
Die Steuerung besteht aus
- einem Arduino Uno (dem etwas günstigeren Nachbau C-Control Open Duino Open UNO)
- vier Porterweiterungen Microchip MCP23017 mit je zwei 8-Bit I/O-Ports
- zwei ELV FS20 SM8
- acht Relais für Motor Ein/Aus
- acht Relais für die Drehrichtung
Zwei FS20 SM8 dienen als FS20 Empfänger für Dachflächenfenstersteuerung (DFF). Mit Hilfer zweier FS20-SM8 stehen stehen insgesamt 16 FS20 Kanäle zur Verfügung. Jeweils zwei steuern einen Motor:
- ein Kanal steuert 'Öffnen' (Linkslauf)
- ein Kanal steuert 'Schliessen' (Rechtslauf)
- ein Motor zum Öffnen/Schliessen des Fensters
- ein Motor für die Jalousie
- Aus
- Öffnen
- Schließen
- Fenster oder Jalousie (wichtig für Regensensor)
- Max. Motorlaufzeit
- D3 geht an den INTA-Ausgang der MPC (sind alle miteinander verbunden)
- D4 ist der Regensensoreingang (Low-Aktiv)
- D9 ist der Regensensoraktiviereingang (Low-Aktiv)
- SDA/SCL gehen an die MPC (alle miteinander verbunden)
- VCC geht an alle MPC Vcc und FS20 Vcc
- GND geht an alle MPC Gnd und FS20 Gnd
- Rx/Tx/Vcc/GND der seriellen Schnittstelle gehen über einen MAX232 Wandler an ein WIZ100SR-Board (RS232 to Ethernet-Schnittstelle)
- RESET wird an Vcc angeschlossen
- VDD geht an VCC
- VSS geht an GND
- SDA/SCL an Arduino SDA/SCL
- INTA geht an Arduino D3
- A0-A2 entsprechend der Adressen:
Port A (Output): Relais Motor 1-8 EIN/AUS Port B (Output): Relais Motor 1-8 Drehrichtung
Port A (Output): FS20-SM8 #1 Taster 1-8 ("Auf" Funktion) Port B (Output): FS20-SM8 #2 Taster 1-8 ("Zu" Funktion)
Port A (Input) : FS20-SM8 #1 Status 1-8 ("Auf" Funktion) Port B (Input) : FS20-SM8 #2 Status 1-8 ("Zu" Funktion) Die FS20-SM8 Ausgänge schalten das Signal gegen Masse (0=Aktiv)
Port A (Input) : Wandtaster ("Auf" Funktion) Port B (Input) : Wandtaster ("Zu" Funktion)
Die FS20-SM8 Steuerbox ist auf dem Dachboden montiert. Von dort führen Steuerkabel (jeweils ein Lapp-Kabel 10x0,5mm2) zu den Anschlüssen der Steuerboxen (unterhalb jedes einzelnen Dachfensters am Drempel).
Farbe | Anschluss | |
Braun | br | Fenster Motor + |
Weiß | ws | Fenster Motor - |
Rot | rt | Jalousie Motor + |
Blau | bl | Jalousie Motor - |
Rosa | rs | Wandtaster Fenster Auf |
Violett | vi | Wandtaster Fenster Zu |
Grau | gr | Wandtaster Fenster Masse |
Gelb | ge | Wandtaster Jalousie Auf |
Schwarz | sw | Wandtaster Jalousie Masse |
Grün | gn | Wandtaster Jalousie Zu |
Die Motoren werden vollständig über den Arduino Uno gesteuert, keine der Tasten oder FS20-SM8 Ausgänge gehen an die Motoren. Jeder Motor kennt zwei zusätzliche Eigenschaften (TYPE):
- Motortyp: "Fenster" (WINDOW) oder "Jalousie" (JALOUSIE)
- Motorlaufzeit: Maximale Laufzeit des Motors
Jeweils zwei Relais steuern einen Motor (ein Relais schaltet die Drehrichtung, ein zweites schaltet die Spannung ein/aus).
Bei allen Schaltungen der Relais werden deren Kontakt-Umschaltzeiten (OPERATE_TIME) berücksichtigt. Außerdem wird bei laufendem Motor und gewünschter Drehrichtungsumschaltung zum Abbau von durch den Motor erzeugte Induktionsspannungen eine zusätzliche Umschaltdauer (MOTOR_SWITCHOVER) eingefügt.
Zusammengefasst:
- Das Einschalten der Motorspannung erfolgt immer erst, nachdem das Richtungsrelais umgeschalten hat (OPERATE_TIME). Das gilt auch dann, wenn der Motor bereits läuft.
- Ebenso wird auch unter Berücksichtigung der Relais Ansprechzeiten (OPERATE_TIME) bei laufendem Motor und Richtungsumkehr der Motor zuerst abgeschaltet, die Laufrichtung geändert und danach der Motor wieder eingeschaltet (MOTOR_SWITCHOVER).
Der Motor läuft links und soll auf rechts. Die Relaisschritte sind:
- Schalte Motorspannung ab
- Warte OPERATE_TIME ms
- Schalte Drehrichtungsrelais um
- Warte MOTOR_SWITCHOVER ms
- Schalte Motorspannung ein
- Schalte Drehrichtungsrelais auf rechts
- Warte OPERATE_TIME ms
- Schalte Motorspannung ein
Die Taster schalten das Eingangssignal gegen Masse (0=Aktiv). Die Wandtaster haben folgende Funktion:
- Taste Auf:
- "Auf" einschalten, nochmaliger Druck schaltet Motor ab.
- Taste Zu:
- "Zu" einschalten, nochmaliger Druck schaltet Motor ab.
- Beide Tasten:
- Schaltet Motor ab.
Vom SM8 werden jeweils die Kanalausgänge als Steuereingang für die Motorsteuerung herangezogen. Die SM8-Kanaleingänge können mit Hilfe eines weiteren MPC vom Uno gesteuert werden. Dadurch ist es möglich, aktive SM8 Kanäle, die z. B. per Funk aktiviert wurden, umzuschalten. Folgende Bedingungen werden berücksichtigt:
- gleichzeitig aktivierte SM8 Ausgänge (z.b. AUF & ZU aktiv) werden entkoppelt, der zuletzt gegeben Befehl wird aktiviert, der zugehörige zu entkopplende Kanal deaktiviert.
- nur die steigende Flanke (0->1) eines Kanals aktiviert die zugehörige Funktion.
- die fallende Flanke (1->0) eines SM8-Kanals schaltet die jeweilige Funktion ab.
- ein Motor, der durch Wandtaster oder Timeout abgeschaltet wird, schaltet auch den zugehörige SM8-Kanal ab.
Ein Regensensor kann am Eingang "RAIN_INPUT" angeschlossen werden (Regensensor-Steuereingang). Die Pegelaktivität kann mit Hilfe der Konstanten "RAIN_INPUT_AKTIV" festgelegt werden.
Die Abfrage des Regensensor-Steuereingangs läßt sich mit Hilfe eines zweiten Steuereingangs "RAIN_ENABLE" (Pegelaktivität über die Konstante "RAIN_ENABLE_AKTIV" einstellbar) festlegen. Nur wenn der Steuereingang "RAIN_ENABLE" aktiv oder das Control-Kommando "RAINSENSOR ENABLE" gegeben wurde, wird der Regensensor- Steuereingang auch abgefragt, ansonsten ignoriert.
Der Regensensor-Steuereingang wird nur im Automatikmodus (s.u. Control-Kommando "RAINSENSOR") abgefragt. Die Verwendung der "RAINSENSOR" Kommandos (mit Ausnahme von "RAINSENSOR AUTO") schaltet Abfrage des Regensensor-Steuereingangs erstmal ab. Der Regensensor-Steuereingang wird entweder durch das Control-Kommando "RAINSENSOR AUTO" oder durch Änderung des Steuereingangs "RAIN_ENABLE" wieder aktiviert.
Bei aktivier Regenmeldung (Steuereingang RAIN_INPUT bzw. Control- Kommando RAINSENSOR ON), werden alle Motoren vom Typ "Fenster" (siehe Motorensteuerung) geschlossen. Zusätzlich läßt sich mit RAINSENSOR RESUME einstellen, dass die vorherigen Fensterpositionen nach Regenende wiederhergestellt werden sollen.
Die beiden Eingänge lassen sich über Control-Kommandos "RAINSENSOR" übersteuern:
- RAINSENSOR ON|OFF
- Simuliert den Regensensoreingang: ON =Aktiv, OFF=Inaktiv
- RAINSENSOR ENABLE|DISABLE
- Simuliert die Regensensor-Abfrage: ENABLE =Abfrage aktiv, DISABLE=Abfrage inaktiv
- RAINSENSOR AUTO
- Da bei Verwendung eines der o.a. Befehle der Automatikmodus (d.h. die Abfrage der Regensensor-Hardwareeingänge) abgeschaltet wird, kann hiermit die Abfrage der Regensensor-Hardwareeingänge wieder aktiviert werden. Die eingestellten Simulationswerte haben, solange sie nicht wieder verwendet werden, keine Bedeutung mehr.
- RAINSENSOR RESUME <s>/FORGET
- Bei Verwendung von RESUME werden alle Motoren vom Type "Fenster" nach Regenende automatisch auf ihre vorherige Position geöffnet. Der Wert <s> bestimmt (ins Sekunden), wie lange nach Regenende gewartet werden soll, bevor die DFF-Positionen wiederhergestellt werden. Die Wiederherstellungsfunktion läßt sich mit RAINSENSOR FORGET abschalten.
Das Steuerprogramm bietet über die serielle Schnittstelle des Arduino Uno ein Kommando-Schnittstelle. Die wird später produktiv über ein WIZ110SR RS232-to-Ethernet Interface an das Netzwerk angeschlossen.
Folgende Kommandos stehen zur Verfügung:
- HELP [<cmd>|ALL]
- Print command help
- <cmd>
- command for getting help
- ALL
- print full help
- INFO
- Print version
- ECHO [ON|OFF]
- Get/Set local echo
- ON|OFF
- set local echo ON or OFF
- TERM [CR|LF]
- Get/Set command terminator
- CR|LF
- set terminator to CR or LF
- STATUS [ON|OFF]
- Get/Set status messages
- ON|OFF
- set status messages ON or OFF
- UPTIME [<uptime> [<h>]]
- Get/Set system uptime
- <uptime>
- set uptime (in ms since start)
- <h>
- set operation hours
- LED [<len> [<count> [<normal> [<rain>]]]]
- Get/Set LED control
- <len>
- pattern bit time in ms
- <count>
- pattern bit count [1..32]
- <normal>
- normal blink pattern
- <rain>
- rain blink pattern
- MOTOR [<m> [[T]OPEN|[T]CLOSE|TOOGLE|[GOTO ]<pos>|OFF|SYNC|STATUS]
- Get/Set motor control
- <m>
- motor number [1..8]
- <cmd>
- can be
- OPEN
- start motor opening
- CLOSE
- start motor closing
- TOPEN
- toogle opening
- TCLOSE
- toogle closing
- TOOGLE
- Toogle anyway
- [GOTO] <p>
- goto position <p> (in %, 0-100)
- OFF
- stop motor
- SYNC
- set motor in a defined state
- STATUS
- get the current status
- MOTORNAME [<m> [<name>]
- Get/Set motor name
- <m>
- motor number [1..8]
- <name>
- motor name
- MOTORTIME [<m> [<sec> [<overtravel>]]
- Get/Set motor runtime
- <m>
- motor number [1..8]
- <sec> maximum runtime [s]
- <overtravel> overtravel time [s]
- MOTORTYPE [<m>][WIN|JAL]
- Get/Set motor type
- <m>
- motor number [1..8]
- WIN|JAL
- motor type
- FS20 [<ch>]
- Get/Set FS20 status
- <ch>
- FS20 channel number [1..(2*8)]
- ON|OFF
- set <ch> ON or OFF
- PRG
- set <ch> into programming mode
- PB [<b>]
- Get/Set pushbutton status
- <b>
- pushbutton number [1..(2*8)]
- ON|OFF
- set <b> ON or OFF
- RAIN [AUTO|ENABLE|DISABLE|WET|ON|DRY|OFF|RESUME]
- Rain sensor function
- <cmd> can be
-
- AUTO
- rain detection enabled from input signals
- ENABLE
- enable rain detection
- DISABLE
- disable rain detection
- WET|ON
- start raining
- ,DRY|OFF
- stop raining
- RESUME
- <s> auto-resume window position after rain was gone.
-
- FORGET
- do not resume window position
-
- Note: ON|WET, OFF|DRY, ENABLE or DISABLE disables AUTO mode
- BACKUP
- Create backup from EEPROM
- RESTORE <addr> <data>
- Restore data into EEPROM
- <addr>
- 4-digit hex destination address
- <data>
- hex data to restore
- FACTORY
- Reset to factory defaults
- REBOOT
- Restart controller