Rollladensteuerempfänger 19
Inhaltsverzeichnis:
1.1 Tasten und Fernsteuercodes; Zuordnung. 4
2.1 Stecker X1 (Universal-Sende/Empfangsmodul) 4
2.2 Stecker X2 (Universal-Sende/Empfangsmodul) 4
2.3 Stecker X3, X6 (Universal-Sende/Empfangsmodul) 5
2.5 Stecker X5 (Teststecker) 5
2.6 Stecker X7 (Zusatzempfängeranschluss) 5
2.8 Stecker J2 (Elternschlafzimmer) 6
2.9 Stecker J3 (Kinderzimmer Süd) 6
2.10 Stecker J4 (Kinderzimmer Nord) 6
3.2 Conrad UHF-Empfänger 868.95 MHz. 7
6.1.2 Synchronization Bytes – SYNC1 und SYNC2. 16
6.2 Verwendete Daten zur Rollladensteuerung. 17
Versionsverfolgung:
Version | Datum | Bemerkung |
|
V0.1 | 26.04.19 | Initialversion |
|
V0.2 | 28.12.19 | kleine Ergänzungen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Der Rollladensteuerempfänger wird im Estrich im bestehenden Gehäuse montiert. Für das neue System wird eine komplett neue Leiterplatte entwickelt. Sie beinhaltet das Universal-Sende/Empfangs-Modul für die Steuerung, einen ESP8266 für die Anbindung an das Internet sowie Relais zur Ansteuerung der Rollläden und ein Tastenfeld für die Notbedienung (zum Testen und sollte die Funkverbindung einmal nicht funktionieren).
Der Zusatzempfänger wird über eine 6-polige Buchse angeschlossen und direkt mit den entsprechenden Tasten verbunden. Die Kommunikation zwischen Universal-Sende/Empfänger und ESP8266 erfolgt in beide Richtungen seriell.
Zur Steuerung der Rollläden ist in den Zimmern ein batteriebetriebener Sender in einer Wanddose untergebracht. Als Sender wird hier ebenfalls das Universal-Sende/Empfangsmodul verwendet.
Zur Steuerung der Rollläden wird ein Fernsteuercode empfangen. Dieser wird quittiert und danach die Aktion ausgeführt. Dabei muss vermieden werden dass die Wiederholung nicht ausgewertet wird wenn zuvor eine positive Quittung gesendet wurde (wenn der Sender die positive Quittung nicht richtig empfangen hat).
Auf der Position 0 des Minidigit-Schalters kann ein Debug-Modus ein- resp. ausgeschaltet werden. ON = Debuggen |
Ort | Relais bewirkt | Fernsteuercode ab Wandtaster | Fernsteuercode ab ESP8266 | |
Codebyte Binär | Code hex | Code ist Textstring | ||
Bad | R1 / auf | 00010000 | 10 | BADu |
| R5 / ab | 00010001 | 11 | BADd |
Schlafzimmer | R2 / auf | 00010010 | 12 | ESZu |
| R6 / ab | 00010011 | 13 | ESZd |
Kinderzimmer Süd | R3 / auf | 00010100 | 14 | KZSu |
| R7 / ab | 00010101 | 15 | KZSd |
Kinderzimmer Nord | R4 / auf | 00010110 | 16 | KZNu |
| R8 / ab | 00010111 | 17 | KZNd |
Alle Rollläden | R1-R4 | ---- | ---- | ARLu |
| R5-R8 | ---- | ---- | ARLd |
Taste | Ort | PCF-Port; | Tastencode | Fernsteuer-code | ULN-Port; Pin | Relaiscode | Relais |
1 Up | Bad auf | P0; 4 | &B11111110 | &B00010000 | out1; 16 | &B00000001 | K1 |
1 Down | Bad ab | P1; 5 | &B11111101 | &B00010001 | out5; 12 | &B00010000 | K5 |
2 Up | ESZ auf | P2; 6 | &B11111011 | &B00010010 | out2; 15 | &B00000010 | K2 |
2 Down | ESZ ab | P3; 7 | &B11110111 | &B00010011 | out6; 11 | &B00100000 | K6 |
3 Up | KZS auf | P4; 9 | &B11101111 | &B00010100 | out3; 14 | &B00000100 | K3 |
3 Down | KZS ab | P5; 10 | &B11011111 | &B00010101 | out7; 10 | &B01000000 | K7 |
4 Up | KZN auf | P6; 11 | &B10111111 | &B00010110 | out4; 13 | &B00001000 | K4 |
4 Down | KZN ab | P7; 12 | &B01111111 | &B00010111 | out8; 9 | &B10000000 | K8 |
Es gilt für den Relaiscode:
Lower Nibble = up | Upper Nibble = Down |
Stecker X1 | Bezeichnung | Verwendet für |
1 | VIN | nicht verwendet |
2 | GND | GND |
3 | VCC | 3.3V DC, nicht verwendet |
Stecker X5 | Prozessor-Pin | Bezeichnung | Verwendet für |
1 | 3, 5, 21 | GND | GND |
2 | 4, 6 | VCC | 3.3V DC |
3 | 30 | PD0 | RXD |
4 | 31 | PD1 | TXD |
5 | 27 | PC4 | SDA |
6 | 28 | PC5 | SCL |
7 | 1 | PD3 | /Interrupt |
8 | 2 | PD4 | UCN-STB |
9 | 9 | PD5 | UCN-Din |
10 | 10 | PD6 | UCN-CLK |
Stecker X3, Stecker X6 | Programmierstecker |
Stecker X1 | Bezeichnung | Verwendet für |
1 | RX | Sendedaten vom Universal-S/E-Modul |
2 | 3.3V |
|
3 | GPIO0 | nicht verwendet |
4 | Reset | nicht verwendet |
5 | GPIO2 | nicht verwendet |
6 | CE | an 3.3V angebunden |
7 | GND |
|
8 | TX | Empfangsdaten zum Universal-S/E-Modul |
1 | Tx |
2 | Rx |
3 | ---- |
4 | ---- |
5 | GND |
Die Signale vom Zusatzempfänger) werden über diesen Stecker geführt und mit den entsprechenden Tasten verbunden.
Pin | Signal | für |
1 | 1 up | Bad |
2 | 2 Down | Bad |
3 | 3 Up | Elternschlafzimmer |
4 | 4 Down | Elternschlafzimmer |
5 | Gnd |
|
6 | 12V |
|
Stecker X1 | Bad | Pin | Signal (230V~) |
1 | P1 (auf) | ||
2 | P2 (ab) | ||
3 | N |
Stecker X2 | Elternschlafzimmer | Pin | Signal |
1 | P1 (auf) | ||
2 | P2 (ab) | ||
3 | N |
Stecker X3 | Kinderzimmer Süd | Pin | Signal |
1 | P1 (auf) | ||
2 | P2 (ab) | ||
3 | N |
Stecker X4 | Kinderzimmer Nord | Pin | Signal |
1 | P1 (auf) | ||
2 | P2 (ab) | ||
3 | N |
Auf der Trägerplatte wird der Zusatzempfänger von Conrad montiert.
Die Steuerung der Rollläden erfolgt über die via Schottky-Dioden angeschlossenen Tasten (4 Tasten) auf der Grund-LP.
(§ Conrad AG)
Über diesen Zusatzempfänger können die Rollladen vom Bad und Schlafzimmer gemeinsam von einem Handsender aus gesteuert werden. | |
Der ESP8266 dient zum Steuern der Rollläden über das Internet. Dazu wird der ESP8266 mittels einer seriellen Verbindung mit dem Universal-Steuermodul verbunden. In der Senderichtung wird die Internetseite ausgegeben, in der Empfangsrichtung werden die Steuerbefehle an das Universal-S/E-Modul übertragen.
WEB-Ansicht:
Die Kommunikation zwischen Netzwerkknoten erfolgt in Form von Datenpaketen. Diese Datenpakete können von unterschiedlicher Länge sein. Die totale Paketlänge wird von der Anzahl Adress- und Datenbytes, der Fehlererkennungsmethode und einiger spezifischer Bytes bestimmt. Ein Byte (LEN) bestimmt die Anzahl folgender Bytes, ein weiteres Byte (Command Definition Byte: CDB) definiert weitere Funktionen.
Jedem Telegramm können eine beliebige Anzahl von Präambel-Bytes (Vorspann) vorangestellt werden, bevor es mit dem eigentlichen Synchronisationsbyte beginnt. Die Präambel-Bytes können beliebig sein, müssen sich aber vom Synchronisationsbyte unterscheiden. Da 2 verschiedene Funkmodule (RFM12B resp. RFM69CW) eingesetzt werden können sind 2 Preamble-Bytes vorgesehen.
Das folgende Beispiel zeigt ein kleines Paket mit CRC16-Fehlerdetektion:
PRE | … | SYNC | SYNC | LEN | DAB | SAB | CDB | DATA1 | CRC2 | CRC1 |
Name | Bezeichnung (original) | Bezeichnung (deutsch) | Byte | Umfang | CRC | |
PRE | Preamble Byte | Vorspann |
|
|
| |
SYNC | Synchronization Byte | Synchronisation |
|
|
| |
SYNC | Synchronization Byte | Synchronisation |
|
|
| |
LEN | Length Byte | Länge/Anzahl folgende Bytes | 1 | LEN | T | CRC- Berechnung | ↓ | |
DAB | Destination Address Byte | Empfängeradresse | 2 | T | | LEN: Länge | | | | ↓ | ||
SAB | Source Address Byte | Senderadresse | 3 | |||
CDB | Command Definition Byte | Kommandobyte | 4 | |||
DATA1 | Data Byte 1 | Datenbyte 1 | 5 | |||
CRC2 | High byte of CRC-16 | höherwertiges Byte der CRC16 | 6 | nicht | ||
CRC1 | Low byte of CRC-16 | niederwertiges Byte des CRC16 | 7 | |||
Die gesamte Paketlänge beträgt hier sieben Byte ohne die Preamblebytes und Synchronisationsbytes. Die Bytes sind mit ihrem LSB rechts positioniert (Bit7…Bit0).
Da das verwendete Funkmodul RFM12B intern bereits Preamblebytes und Synchronisationsbytes bereitstellt wird nur der Rest des Protokolls ab LEN in Software programmiert.
Das Preamble-Byte ist vordefiniert und dient der Taktsynchronisation des Empfängers..
| Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Binär | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
Dies entspricht 0hAA in der Hexadezimalen Schreibweise und 170 als Dezimalzahl. Das Byte wird 2-mal gesendet.
Die zwei SYNC-Bytes sind vordefiniert und kennzeichnen den Start eines jeden Datenpakets.
| Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Binär | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
Dies entspricht 0h2D in der Hexadezimalen Schreibweise und 45 als Dezimalzahl. Das Byte kann im Funkmodul RFM12B umprogrammiert werden.
| Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Binär | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
Dies entspricht 0hD4 in der Hexadezimalen Schreibweise und 210 als Dezimalzahl. Das Byte ist im Funkmodul RFM12B vorprogrammiert.
Dem Byte SYNC folgt das Längen-Byte LEN. Dieses legt die Anzahl zu übertragenden Bytes fest.
| Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LEN | LEN |
LEN: Dies gibt die NACHFOLGENDE Anzahl Bytes an, MIT den CRC-Bytes.
Beim RFM69CW erfolgt die CRC-Berechnung immer EXTERN.
Die maximale Anzahl beträgt 255 Bytes; wird vom RFM69CW zusätzlich verschlüsselt so sind maximal 60 Byte Daten, Quelladresse + CDB-Byte sowie Zieladresse, Paketlänge und CRC möglich. Die Länge des FIFO´s beträgt total 66 Byte.
Das Kommando-Byte beinhaltet folgende Funktionen:
| Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CDB | ACK/NACK | C/D | R1 | PN |
Die enthaltenen Bits haben die folgende Bedeutung:
Name | Bezeichnung |
ACK | ACK/NAK Bits |
C/D | Kommando = 0 / Daten = 1 |
R1 | Reservebit, vorläufig 0 |
PN | Fortlaufende Paket-Nummer (1..15 und wieder von vorne) |
ACK | Definition |
|
|
0 0 | Sender fordert kein Acknowledge | C/D = 1; R1 = 0 |
|
0 1 | Sender fordert Acknowledge | ||
1 0 | Empfänger sendet NACK zurück | C/D = 1; R1 = 0; PN = PN der zu quittierenden Sendemeldung resp. 0 | |
1 1 | Empfänger sendet ACK zurück |
PN: Paketnummer, die gesendeten Pakete werden von 1 bis 15 durchnummeriert (0 entfällt). Dann wird wieder mit 1 gestartet. Eine komplett neue Datenpaketfolge beginnt wieder mit 1. Damit können fehlende Pakete festgestellt und eine Wiederholung angefordert werden.
Wird eine Quittung gesendet so wird das Reservebit R1 auf 0, C/D auf 1 und die Paketnummer PN wird bei positiver Quittung auf die empfangene Paketnummer gesetzt, bei negativer Quittung auf 0.
C/D: Kommandobyte; mit log.0 werden die folgenden Daten als Kommando interpretiert, mit 1 als Daten. Vorläufig bleibt das Bit beim Datensenden log.1, bei der Quittung ebenfalls log.1.
Quittungen: Positive Quittung (ACK): &B1110xxxx
Negative Quittung (NACK): &B10100000
Die Adressen bestehen aus einem Byte. DIP-Schalter können 16 verschiedene Adressen auf dem Modul eingestellt werden.
Der Umfang der möglichen Einzeladressen beträgt 1….199 (0h01 … 0hC7).
Temperatursensoren , Block 1: 01….15 |
Die Adressen 201 … 254 (0hC9 … 0hFE) sind Gruppenadressen (was immer die Gruppen sein mögen, z.B. alle Temperatursensoren, alle Rolläden etc.).
Als Allrufadresse wird 200 (0hC8) verwendet.
Der CRC wird als 16Bit-CRC realisiert und umfasst die Bytes ab/mit Längenbyte (LEN) bis zum letzten übertragenen Datenbyte ohne die 2 CRC-Bytes.
Das folgende Beispiel zeigt das Paket mit einem Datenbyte und CRC16-Fehlerdetektion:
PRE | … | SYNC | SYNC | LEN | DAB | SAB | CDB | DATA | CRC2 | CRC1 |
Ort | Relais bewirkt | Data | |
Codebyte Binär | Code hex | ||
Schlafzimmer | R1 / auf | 00010000 | 40 |
| R5 / ab | 00010001 | 41 |
Bad | R2 / auf | 00010010 | 42 |
| R6 / ab | 00010011 | 43 |
Kinderzimmer Süd | R3 / auf | 00010100 | 44 |
| R7 / ab | 00010101 | 45 |
Kinderzimmer Nord | R4 / auf | 00010110 | 46 |
| R8 / ab | 00010111 | 47 |