Wiki-Eintrag Dachfenster-Rolläden von Roto über Handsender ansteuern

Begonnen von ArminK, 22 Oktober 2012, 13:59:34

Vorheriges Thema - Nächstes Thema

ArminK

                                                           

Habe einen neuen Wiki-Eintrag zu diesem Thema erstellt - wie kann ich ihn
in die kategorie Lösungen und Code-Schnipsel - Verschiedene kommentierte
Lösungen und Code-Schnippsel<http://www.fhemwiki.de/wiki/Kategorie:Code_Snippets> verschieben?
Die Hexfiles sowie Schaltplan und Kurz-Doku zu diesem Projekt finden sich
hier im Anhang, da ich es nicht geschafft habe etwas anderes als Bilder an
den Wiki-Eintrag anzuhängen.

Gruss aus Heidelberg
Armin

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

AVRoto v1.2 FS20-Interface für Dachfenster-Rolläden von Roto mit Fernbedienung zur Integration in fhem

1. Vorraussetzungen
Die Dachfenster werden über eine Funkfernbedienug (Handsender) für maximal 5 Kanäle (=Fenster) angesteuert
Es ist ein Eingriff in den original Handsender nötig, dieser sollte nur durch Personen durchgeführt werden, die
"elektrisch nicht unerfahren sind", eine halbwegs ruhige Hand haben und mit dem Lötkolben umgehen können.
ACHTUNG: durch den Eingriff geht ziemlich sicher die eventuell noch vorhandene Garantie flöten! Bitte den Eingriff nur durchführen
wenn man sich dessen bewusst ist!

2. Konzept
Da der original Handsender nicht über fhem bedienbar ist (Rolling Code, nehme ich mal an) wurde eine Elektronik entwickelt,
die im Prinzip das (nach-) macht, was der menschliche Benutzer auch macht. Hierzu muss ich kurz die Funktion des Handsenders erläutern:
Der 5-Kanal-Handsender besitzt 4 Tasten, jeweils eine für SELECT, AUF, STOP und AB, sowie eine LED für jeden der 5 Kanäle.
Möchte man zum Beispiel den Rolladen auf Kanal 2 hochfahren, so wird zuerst so oft die SELECT-Taste gedrückt, bis die LED
von Kanal 2 aufleuchtet, anschließend drückt man die Taste AUF. Alle anderen Kanäle funktionieren auf die gleiche Art und Weise.
Eine Besonderheit ist die Funktion um alle angelernten Rolläden auf einmal auf, bzw. ab fahren zu lassen. Diese Auswahl wird am Handsender
durch leuchten aller 5 LEDs angezeigt (anwählbar durch Drücken von SELECT nach dem Kanal 5 aktiv war).
AVRoto kann also Mikroprozessor-gesteuert alle Tasten des Handsenders bedienen sowie den Zustand der LEDs lesen, somit ist es
möglich per FS20-Befehl entweder einzelne Rolläden oder auch alle auf einmal zu steuern. Als Interface zum FS20-System
dient der FS20- und Wetterdaten-Uart-Empfänger FS20 WUE (bei ELV knapp 15 EUR), der empfangene FS20-Befehle über eine TTL-RS232-Schnittstelle weiter
geben kann.

3. Hardware/Schaltung (siehe AVRoto v1_2.pdf)
Verwendet wird ein ATmega 8 in (fast-) Minimalbeschaltung. Ich habe die DIL-Variante gewählt, da sich die Schaltung dann relativ einfach auf einem Stück
Lochraster-Platine mittels fliegender Verdrahtung in Fädeltechnik realisieren lässt. Da der Handsender mit einer 3V-Batterie betrieben wird und
sowohl der Atmega wie auch das FS20 WUE mit 3,3V betrieben werden können habe ich eine kleine Spannungsregelung mittels
TLE4247 (U1) und 2 Kondensatoren implementiert. Dieser Regler besitzt einen relativ weiten Eingangsspannungsbereich (glaube 4-40V),
sodass sich als Versorung jedes ausgediente Gleichspannungs-Steckernetzteil (vom alten Import-AB) verwenden lässt, der Strombedarf ist
mit ein paar Milliampere vergleichsweise unwichtig.
Das FS20 WUE-Modul unterhält sich über die Uart-Schnittstelle direkt mit dem Atmega, über Pin 1 der Steckerleiste 2 kann es
dem Atmega mitteilen, dass FS20 Daten zur Abholung bereit stehen. Es ist zwar auch möglich, alle empfangenen FS20-Befehle direkt weiter zu schicken,
aklerdings hat sich das in der Praxis als sehr störanfällig erwiesen, gerade wenn viele FS20 Befehle hintereinander durch die
Luft sausen (was ja bei Verwendung von fhem des öfteren mal passiert). Das WUE kann ein paar (glaube 5) Kommandos im internen Puffer speichern,
die der Atmega dann der Reihe nach abholen und verabeiten kann. In diesem Zusammenhang möchte ich noch erwähnen, dass die Schaltung
nur funktioniert, wenn, wie im Schaltplan ersichtlich ein externer Quarz mit 3,6864 MHz verwendet wird, der interne RC-Oszi ist
für diese aufgabe zu ungenau (ich hab's probiert).
Jumper A und B sind für zukünftige (Firmware-)Erweiterungen gedacht, sie werden im Moment nicht verwendet, können also auch weggelassen werden.
Der Programmier-Stecker J4 kann ebenfalls weggelassen werden, wenn der Controller nicht in der Schaltung programmiert wird, sondern z.B. mit einem
Entwicklungsboard. Der Taster SW1 dient zum Aufrufen des Programmiermodus (siehe Punkt 5, Programmierung der FS20 Adressen), die LED D1
zeigt den Status des Programmiermodus an. Über die Pfostenleiste J6 wird die Ankopplung an den Handsender hergestellt (ich habe dafür ein Stück
Flachbandkabel von einem IDE-Controller (sowas gabs mal - die mit den blauen Steckern, die sind nicht so riesig) genommen.
Durch Messen am Handsender habe ich die entsprechenden Punkte gefunden an denen ich die Signale einspeisen, bzw. auslesen muss.
Die Taster des Handsenders schalten jeweils nach Masse, hier werden paralel dazu die Pegel durch den Atmega ebenfalls auf Masse gezogen (dies
geht übrigens auch viel schneller wie man das mit der Hand machen kann). Bei den LEDs nehme ich das Signal jeweils an den Vorwiderständen ab (siehe Bild).

4. Nachbau
Wei schon oben erwähnt lässt sich die Schaltung relativ einfach auf einem Stück Lochrasterplatine aufbauen. Die Spannungsversorgung habe ich
mittels Silberdraht durchgeführt, alles restliche mit Fädeldraht, soviel ist es ja nicht. Den Spannungsregler und die dazugehörigen C's
habe ich als SMD-Variante auf der Unterseite plaziert, ebenso den Vorwiderstand für die LED.
Atmega 8 programmieren: dies erfolgt entweder auf einem Evo-Board oder über die Stiftleiste J4 (ISP). Hierbei ist es wichtig als Taktgeber
external Crystal Oszillator (high) einzustellen, da wir ja mit externem Quarz arbeiten.
Beim Anschluss an den original Handsender ist dieser zuerst aus dem Gehäuse zu nehmen und WICHTIG-die Batterie zu entfernen.

5. Programmieren der FS20 Adressen
AVRoto speichert bis zu 6 Adressen (Kanal 1 bis 5 und Alle Kanäle, s.o.) im EEprom, so dass sie auch nach Spannungsausfall erhalten bleiben.
Um einem Kanal eine FS20 Adresse zuzuweisen geht man wie folgt vor:
- Mittels der SELECT-Taste den gewünschten Kanal (oder alle Kanäle) auswählen
- solange die LED(s) des Handsenders noch leuchten die Programmiertaste von AVRoto gedrückt halten bis die LED D1 leuchtet
- Ein- oder Ausschalt-Befehl mit der gewünschten FS20-Adresse senden (diese sollten natürlich vorher in fhem definiert worden sein)
- diesen Vorgang für alle verwendeten Kanäle durchführen

6. Weitere Infos / geplante Updates
Aktuell werden FS20-mässig nur die Befehle AUF, 0x00 (aus, auf 0% dimmen) und AB 0x01 (Einschalten auf Helligkeitsstufe 1 (6,25%, Minimum)
unterstützt. Da die Verbindung zur STOP-Taste auch verdrahtet ist, bedarf es allerdings nur einer Firmwareanpassung um
z.B. über on-for-timer Befehle die Rolläden nur halb runter zu fahren. Dies folgt noch irgendwann (zumindest falls es jemand braucht (ich brauch es eigentlich nicht).

7. Einbinden in Fhem
Definition eines Rolladens in der fhem.cfg:

define sz_rollo_w1 FS20 c102 01
attr sz_rollo_w1 eventMap on:zu off:auf
attr sz_rollo_w1 icon icoFenster.png
attr sz_rollo_w1 model fs20as1
attr sz_rollo_w1 room Schlafzimmer

Um den gewünschten Rolladen nun z.B. jeden Morgen um 9:00 zu öffnen genügt folgender Eintrag in der fhem.cfg:

define rollo_w2_auto_auf at *09:00:00 {\
     {fhem("set sz_rollo_w2 off")}\
     {fhem("setstate sz_rollo_w2 off")}\
}
Raspberry Pi 3B mit fhem 5.8;1xCUL USB, 2xCUNO, 1xCUL Raspi über Fhem2Fhem, 2xHMLAN; diverse Homematic und FS20-Komponenten; 7 x Sonos-Player; diverse Eigenbauten mittels FS20 WUE, ESPEasy, MQTT, MySensors

UliM

                                                 

Am Montag, 22. Oktober 2012 13:59:35 UTC+2 schrieb Armink:
>
> wie kann ich ihn in die kategorie Lösungen und Code-Schnipsel -
> Verschiedene kommentierte Lösungen und Code-Schnippsel<http://www.fhemwiki.de/wiki/Kategorie:Code_Snippets> verschieben?
>


Hi Armin,
am Ende des Wiki-Quelltextes diese Zeile ranhängen:
[[Category:Code Snippets]]
Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

ArminK

                                                           

Super! Hat funktioniert!  Vielen Dank Uli.

Grüße, Armin

Am Montag, 22. Oktober 2012 14:16:50 UTC+2 schrieb UliM:
>
>
>
> Am Montag, 22. Oktober 2012 13:59:35 UTC+2 schrieb Armink:
>>
>> wie kann ich ihn in die kategorie Lösungen und Code-Schnipsel -
>> Verschiedene kommentierte Lösungen und Code-Schnippsel<http://www.fhemwiki.de/wiki/Kategorie:Code_Snippets> verschieben?
>>
>
>
> Hi Armin,
> am Ende des Wiki-Quelltextes diese Zeile ranhängen:
> [[Category:Code Snippets]]
> Gruß, Uli
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Raspberry Pi 3B mit fhem 5.8;1xCUL USB, 2xCUNO, 1xCUL Raspi über Fhem2Fhem, 2xHMLAN; diverse Homematic und FS20-Komponenten; 7 x Sonos-Player; diverse Eigenbauten mittels FS20 WUE, ESPEasy, MQTT, MySensors