mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
128 lines
4.7 KiB
Plaintext
128 lines
4.7 KiB
Plaintext
|
S20-Funkschaltsystem
|
|||
|
|
|||
|
1. Protokoll
|
|||
|
|
|||
|
1.1. Datenrahmen:
|
|||
|
|
|||
|
Hauscode 16 bit
|
|||
|
Adresse 8 bit
|
|||
|
Befehl 8 bit (16bit, wenn im ersten Befehlsbyte das Erweiterungsbit gesetzt
|
|||
|
ist.)
|
|||
|
Quersumme 8 bit
|
|||
|
|
|||
|
1.1.1. Hauscode:
|
|||
|
0-65535
|
|||
|
Hauscode1: 8bit (High-Byte)
|
|||
|
Hauscode2: 8bit (Low-Byte)
|
|||
|
|
|||
|
1.1.2. Adresse:
|
|||
|
High-Nibble (4bit): Adre<72>-Gruppe (Bank / Raum)
|
|||
|
15 = Master- / Funktionsgruppen-Bereich
|
|||
|
0-14 = Adre<72>raum f<>r Einzeladressen
|
|||
|
Low-Nibble (4bit): Unter-Adresse
|
|||
|
15 = alle der Adre<72>-Gruppe (lokal Master)
|
|||
|
0-14 = Einzel-Adresse / Adresse der Funktionsgruppe
|
|||
|
|
|||
|
Das High-Nibble w<>hlt die Adre<72>-Gruppe aus. Es stehen 15 Adre<72>-Gruppen zur
|
|||
|
Verf<72>gung. Die Adre<72>-Gruppe 15 w<>hlt den Master- bzw.
|
|||
|
Funktionsgruppen-Adre<72>bereich aus. Das Low-Nibble bestimmt innerhalb der
|
|||
|
gew<65>hlten Adre<72>-Gruppe die anzusprechende Unter-Adresse. Zum Ausf<73>hren einer
|
|||
|
globalen Master-Funktion m<>ssen High- und Low-Nibble der Adresse 15 sein!
|
|||
|
|
|||
|
|
|||
|
Reihenfolge der Eingabe und Speicherung von Hauscode und Adresse beim Setup
|
|||
|
von Sendern:
|
|||
|
1. HC1: [A1|A0|B1|B0|C1|C0|D1|D0]
|
|||
|
2. HC2: [E1|E0|F1|F0|G1|G0|H1|H0]
|
|||
|
3. Adr: [I1|I0|J1|J0|K1|K0|L1|L0]
|
|||
|
|
|||
|
1.1.3. Befehl:
|
|||
|
Unteren 5 bit:
|
|||
|
0 00h aus
|
|||
|
1 01h an, 6,25% Einschalten auf Helligkeitsstufe 1 (min.)
|
|||
|
2 02h an, 12,5%
|
|||
|
...
|
|||
|
15 0fh an, 93,75%
|
|||
|
16 10h an, 100% Einschalten auf Helligkeitsstufe 16 (max.)
|
|||
|
|
|||
|
17 11h an, alter Wert Auf letztem Helligkeitswert einschalten
|
|||
|
18 12h toggle Wechsel zwischen aus und an, alter Wert
|
|||
|
19 13h dim up Eine Helligkeitsstufe heller
|
|||
|
20 14h dim down Eine Helligkeitsstufe dunkler
|
|||
|
21 15h dim up and down ..., + bis max, kurz warten, - bis min, kurz warten,
|
|||
|
22 16h timeset Timerprogrammierung (Start, Ende)
|
|||
|
23 17h send status Nur bei bidirektionalen Komponenten!
|
|||
|
24 18h aus, f<>r Timerzeit
|
|||
|
25 19h an, 100%, f<>r Timerzeit
|
|||
|
26 1ah an, alter Wert, f<>r Timerzeit
|
|||
|
27 1bh reset (auf Auslieferzustand)
|
|||
|
28 1ch frei
|
|||
|
29 1dh frei
|
|||
|
30 1eh frei
|
|||
|
31 1fh frei
|
|||
|
|
|||
|
Bit 5: Erweiterungsbit (0 = ohne, 1 = Erweiterungsbyte zwischen Befehl und
|
|||
|
Quersumme)
|
|||
|
Bit 6: bidirektionaler Befehl (normal = 0)
|
|||
|
Bit 7: Antwort eines Empf<70>ngers (normal = 0)
|
|||
|
|
|||
|
Erweiterungsbyte bei gesetztem Erweiterungsbit:
|
|||
|
Ist im ersten Befehlsbyte das Erweiterungsbit gesetzt, wird ein
|
|||
|
Erweiterungsbyte eingeschoben.
|
|||
|
|
|||
|
F<>r die Befehle 0 bis 18 und 24 bis 26 gilt folgende Codierung des
|
|||
|
Erweiterungsbytes:
|
|||
|
Das Byte gibt die einmalige Zeitdauer f<>r den Timer in Schritten von 0,25s an.
|
|||
|
|
|||
|
Bei Befehl 22 wird der Timer des Empf<70>ngers fest auf den <20>bertragenen
|
|||
|
Timerwert gestellt.
|
|||
|
Das Low-Nibble gibt den Zahlenwert an. Ist es Null (= 0), wird die
|
|||
|
Timerfunktion ignoriert und der Verbraucher dauerhaft/sofort geschaltet.
|
|||
|
|
|||
|
Das High-Nibble dient als Multiplikator mit dem Faktor 2^x. Es sind nur Werte
|
|||
|
kleiner oder gleich 12 sinnvoll. Gr<47><72>ere Werte werden auf 12 begrenzt!
|
|||
|
|
|||
|
Zeit = 2^(High-Nibble) * Low-Nibble * 0,25s
|
|||
|
Die maximale Zeitdauer betr<74>gt damit ca. 4,25Std, die minimale 0,25s, sofern
|
|||
|
dies jeweils von den Empf<70>ngern bis zu den angegebenen Grenzen unterst<73>tzt
|
|||
|
wird.
|
|||
|
|
|||
|
1.1.4. Quersumme
|
|||
|
|
|||
|
8bit-Summe aus 6, Hauscode, Adresse und Befehl (und Erweiterungsbyte) bilden
|
|||
|
Werden Repeater verwendet, so treten auch um 1 oder 2 erh<72>hte Quersummen auf,
|
|||
|
die von den Empf<70>ngern im Normalfall akzeptiert werden sollten. Wurde von
|
|||
|
einem Empf<70>nger bis 1,6s vor einem Repeater-Befehl ein normaler Befehl
|
|||
|
empfangen, so wird der Repeater-Befehl ignoriert.
|
|||
|
|
|||
|
|
|||
|
1.1.5. Komplette <20>bertragung:
|
|||
|
Synchr, HC1, Parity, HC2, Parity, Adresse, Parity, Befehl, Parity, Quersumme, Parity, EOT
|
|||
|
13 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 1 bit
|
|||
|
|
|||
|
oder:
|
|||
|
Synchr, HC1, Parity, HC2, Parity, Adr, Parity, Bef1, Parity, Bef2, Par, Quersumme, Par, EOT
|
|||
|
13 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 8 bit 1 bit 1 bit
|
|||
|
|
|||
|
<20>bertragung beginnt mit MSB.
|
|||
|
|
|||
|
Die <20>bertragung f<>r ein komplettes Datenpaket mit 1 Befehl dauert 47,6ms bis
|
|||
|
65,6ms.
|
|||
|
|
|||
|
Wird an der Hand-FB eine Taste < 400ms gedr<64>ckt, so wird beim Loslassen
|
|||
|
folgendes gesendet: DAT, 10msPAUSE, DAT, 10msPAUSE, DAT, 110msPAUSE
|
|||
|
|
|||
|
Wird eine Taste an der Hand-FB l<>nger als 400ms gedr<64>ckt, so wird alle 250ms
|
|||
|
folgendes gesendet: DAT, 10msPAUSE, DAT
|
|||
|
|
|||
|
|
|||
|
Im AUS-Zustand schaltet ein Dimmer bei EIN mit alter Helligkeit ein.
|
|||
|
Im AUS-Zustand schaltet ein Dimmer bei DIMUP mit voller Helligkeit ein.
|
|||
|
Im EIN-Zustand wird bei DIMUP eine Stufe aufgedimmt.
|
|||
|
|
|||
|
Alle Befehle d<>rfen von Empf<70>ngern immer nur 1x ausgewertet werden. Gesendet
|
|||
|
wird der Befehl 3x mit einer Pause von 10ms. Dim-Befehle werden nur 2x mit
|
|||
|
einer Pause von ca. 10ms und 130ms gesendet. Nach einem erkannten Befehl
|
|||
|
ignorieren die Empf<70>nger f<>r 120ms weitere Befehle. Befehle von Repeatern
|
|||
|
werden f<>r 1,6s ignoriert.
|