HowToRFM12 ASK: Unterschied zwischen den Versionen
Veyron (Diskussion | Beiträge) |
Veyron (Diskussion | Beiträge) (→P801B) |
||
(27 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 51: | Zeile 51: | ||
alle Steckdosen: rfm12 tevion 77,42,170 169,154 99 4 | alle Steckdosen: rfm12 tevion 77,42,170 169,154 99 4 | ||
− | === | + | Eine Liste sämtlicher Codes währe Hilfreich. Bitte tragt diese [[Tevion-codes|hier]] ein! |
+ | |||
+ | ===Anlernen einer Tevion-Steckdose=== | ||
Ein Anlernen einer Tevion-Steckdose funktioniert bei einigen bisher nur, wenn das Signal genau einmal gesendet wird! | Ein Anlernen einer Tevion-Steckdose funktioniert bei einigen bisher nur, wenn das Signal genau einmal gesendet wird! | ||
Zeile 60: | Zeile 62: | ||
Ist der Hauscode der Fernbedienung von dem mit dem RFM12 Modul gesendeten verschieden, ist ein Schalten mit der Fernbedienung erst nach erneutem Anlernen möglich. | Ist der Hauscode der Fernbedienung von dem mit dem RFM12 Modul gesendeten verschieden, ist ein Schalten mit der Fernbedienung erst nach erneutem Anlernen möglich. | ||
− | Um den von der Fernbedienung verwendeten Hauscode zu ermitteln siehe folgende Abschnitte. | + | Um den von der Fernbedienung verwendeten Hauscode zu ermitteln siehe folgende Abschnitte. |
===Code Analysieren=== | ===Code Analysieren=== | ||
Zeile 166: | Zeile 168: | ||
│ │ [*] RFM12 ASK sensing | │ │ [*] RFM12 ASK sensing | ||
− | ein, können die Signale des Handsenders | + | ein, können die Signale des Handsenders direkt vom Debug-Screen abgelesen werden. |
Hiezu ist es jedoch erforderlich einen weitern Interrupt-Pin des AVRs mit dem PIN4 des RFM12-Chips zu verbinden und im pinning einzutragen. | Hiezu ist es jedoch erforderlich einen weitern Interrupt-Pin des AVRs mit dem PIN4 des RFM12-Chips zu verbinden und im pinning einzutragen. | ||
Zeile 195: | Zeile 197: | ||
===Code Analysieren=== | ===Code Analysieren=== | ||
− | Fassen wir ein paar Notizen zusammen, die ich mir beim | + | Fassen wir ein paar Notizen zusammen, die ich mir beim Spielen mit der Funksteckdose gemacht habe. |
Meine Erfahrungen sind voll kompatibel zu dem was bereits [http://www.das-labor.org/wiki/Funkfernbedienung hier] beschrieben wurde. | Meine Erfahrungen sind voll kompatibel zu dem was bereits [http://www.das-labor.org/wiki/Funkfernbedienung hier] beschrieben wurde. | ||
Zeile 219: | Zeile 221: | ||
Eine "1" wird gesendet indem man zunächst die doppelte Zeit x lang den Sender ausgeschaltet lässt und dann den Sender für diese Zeit X eingeschaltet lässt. | Eine "1" wird gesendet indem man zunächst die doppelte Zeit x lang den Sender ausgeschaltet lässt und dann den Sender für diese Zeit X eingeschaltet lässt. | ||
− | Also wie bereits an | + | Also wie bereits an [http://www.das-labor.org/wiki/Funkfernbedienung anderer Stelle] beschrieben wird für jede "1" die Zeichen "110" gesendet und für jede "0" wird "100" gesendet. |
====Adressierung==== | ====Adressierung==== | ||
Zeile 277: | Zeile 279: | ||
=====Senden===== | =====Senden===== | ||
− | Möchte man die Codes senden muss man die Bitfolge noch umrechnen in das Format in der das Tool was man zum senden verwendet die Angaben haben möchte. | + | Möchte man die Codes senden muss man die Bitfolge noch umrechnen in das Format in der das Tool, was man zum senden verwendet, die Angaben haben möchte. |
RF12 ASK 2272 erwartet bei Aufruf 3 Byte als Dezimalzahl. Diese drei Byte werden wie folgt gebildet: | RF12 ASK 2272 erwartet bei Aufruf 3 Byte als Dezimalzahl. Diese drei Byte werden wie folgt gebildet: | ||
Zeile 287: | Zeile 289: | ||
---- | ---- | ||
− | |||
+ | Als Anmerkung sei hier noch gesagt, das bei einer existierenden Funkfernbedienung an PIN 17 (bei 18pol IC's) bzw. PIN 19 (bei 20pol IC's) per z.B. Baudline | ||
+ | wunderbar der Sendecode aufgezeichnet und interpretiert werden kann. | ||
+ | |||
+ | [[Bild:Ht2262.jpg]] | ||
+ | |||
+ | Messung auf dem Bild mit Baudline an Pin 17 eines Sendechips 2262. In diesem Fall ein Intertechno Sender mit | ||
+ | Gerätecode A (0000), Steckdose 1 (0000), Gerät einschalten (0111) | ||
+ | 0 dez 0 dez 21 dez | ||
+ | oder als ECMD 192.168.0.90/ecmd?rfm12 2272+0,0,21+72+10 | ||
+ | |||
+ | Das grafische Sendemuster findet sich bei allen von mir getesteten 2262 Chips wieder. | ||
+ | |||
+ | ==1527== | ||
+ | |||
+ | Diese ICs werden zur Ansteuerung der Unterputz-Funkdimmer und -schalter "FD-UP003" von Pollin verwendet. | ||
+ | HINWEIS: die Dimmer sind nur für ohmsche Lasten (Glühbirnen, Hochvolt-Halogen-Lampen) geeignet. Es dürfen keine (elektronischen) Transformatoren angeschloßen werden! | ||
+ | Die ICs besitzen eine feste Adresse mit 20 bit (Hauscode), sowie 4 bit für die Schaltfunktionen. | ||
+ | Man kann davon ausgehen, dass jede Fernbedienung einen anderen Hauscode hat. | ||
+ | Das Übertragungsprotokoll ist nahezu identisch mit dem 2272, außer einer kleinen Abweichung bei der Codierung. | ||
+ | |||
+ | ===Senden=== | ||
+ | rfm12 1527 37,181,143 76 10 | ||
+ | OK | ||
+ | |||
+ | 37,181,143: Haus- Gerätecode; Dose 2, an | ||
+ | |||
+ | 76: delay | ||
+ | |||
+ | 10: Anzahl der Wiederholungen | ||
+ | |||
+ | ===Empfangen=== | ||
+ | Beim Aufzeichnen sieht man immer Sequenzen von entweder | ||
+ | * kurz Ruhe, dann 3 Zeiteinheiten Rauschen (== "0") | ||
+ | oder | ||
+ | * 3 Zeiteinheiten Ruhe und dann kurz Rauschen (== "1") | ||
+ | |||
+ | [[Bild:HS1527_Analyse.png|800px]] | ||
+ | |||
+ | ====Codierung==== | ||
+ | |||
+ | Eine "0" wird gesendet indem man zunächst "eine Zeit lang" den Sender einschaltet und dann die '''dreifache''' Länge dieser Zeit X den Sender wieder abgeschaltet lassen. | ||
+ | Das entspricht 1/4 der Gesamtdauer einschalten und 3/4 aus. | ||
+ | |||
+ | Eine "1" wird gesendet indem man zunächst die '''dreifache''' Zeit x lang den Sender eingeschaltet lässt und dann den Sender für diese Zeit X ausgeschaltet lässt. | ||
+ | Das entspricht 3/4 der Gesamtdauer einschalten und 1/4 aus. | ||
+ | |||
+ | HAUSCODE COMMAND GERÄTECODE | ||
+ | 00 10 01 01 10 11 01 01 01 01 1 1 11 Das Kommando "1111" schaltet das erste Gerät ein, "0111" schaltet es aus. | ||
+ | |-Byte 1 -| |-Byte 2 -| |-------- Byte 3 -------| | ||
+ | 37 (= 0x25) 181 (= 0xB5) 95 (= 0x5F) | ||
+ | |||
+ | |||
+ | Der 20 bit-Hauscode ist fest in den ICs der Funkfernbedienung einprogrammiert und lässt sich nicht ändern. | ||
+ | Da die Empfänger anlernbar sind, kann man sie bei der Ansteuerung über Ethersex auf einen beliebigen Hauscode programmieren, | ||
+ | allerdings kann man die Dimmer dann nicht mehr mit der Fernbedienung steuern. | ||
+ | |||
+ | ====Beispiele==== | ||
+ | Von Handsender-Fernbedienung aufgezeichnet: | ||
+ | |||
+ | HAUSCODE COMMAND GERÄTECODE | ||
+ | 00 10 01 01 10 11 01 01 01 01 1 1 11 - Gerät 1 on | ||
+ | 00 10 01 01 10 11 01 01 01 01 0 1 11 - Gerät 1 off | ||
+ | |||
+ | 00 10 01 01 10 11 01 01 01 01 1 0 11 - Gerät 2 on | ||
+ | 00 10 01 01 10 11 01 01 01 01 0 0 11 - Gerät 2 off | ||
+ | |||
+ | 00 10 01 01 10 11 01 01 01 01 1 1 01 - Gerät 3 on | ||
+ | 00 10 01 01 10 11 01 01 01 01 0 1 01 - Gerät 3 off | ||
+ | |||
+ | 00 10 01 01 10 11 01 01 01 01 1 1 10 - Gerät 4 on | ||
+ | 00 10 01 01 10 11 01 01 01 01 0 1 10 - Gerät 4 off | ||
+ | |||
+ | 00 10 01 01 10 11 01 01 01 01 1 0 00 - alle Geräte aus | ||
+ | |||
+ | ===Schalten/Dimmen=== | ||
+ | |||
+ | Um die Dimmer ein- bzw. auszuschalten wird der jeweilige Code ca. 10 mal hintereinander gesendet. | ||
+ | Das entspricht einem kurzen Drücken der EIN- oder AUS-Taste auf der Fernbedienung. | ||
+ | |||
+ | Um zu Dimmen muss der Code mindestens 45 mal oder öfter gesendet werden. | ||
+ | Das entspricht einem langen Drücken der EIN-Taste zum Erhöhen der Helligkeit, bzw. der AUS-Taste zum Reduzieren der Helligkeit. | ||
+ | |||
+ | Bsp.: | ||
+ | rfm12 1527 37,181,143 76 45 | ||
+ | OK | ||
[[Category:Ethersex]] | [[Category:Ethersex]] | ||
[[Category:RFM12]] | [[Category:RFM12]] | ||
+ | [[Category:RFM12_ASK]] | ||
+ | |||
+ | ==P801B== | ||
+ | Das IC P801B wird ebenfalls mit 5bit / 10bit Dipschaltern an Fernbedienung respektive Funksteckdose ausgeliefert, ist aber nicht kompatibel zu denen mit verbautem 2272 IC. | ||
+ | |||
+ | Das Oszi produziert folgendes beim Druck auf die "off"-Taste für die Steckdose 1 und alle Dip-Schalter der Fernbedienung auf "off" gesetzt: | ||
+ | |||
+ | [[Bild:P801b.png]] | ||
+ | |||
+ | -- legende | ||
+ | |||
+ | . => kurz / 1 | ||
+ | _ => lang / 0 | ||
+ | |||
+ | -- house code | ||
+ | |||
+ | ._._._._._ => house code: alle schalter auf on | ||
+ | __________ => house code: alle schalter auf off | ||
+ | ._________ => house code: on-off-off-off-off | ||
+ | |||
+ | |||
+ | -- mitschnitte | ||
+ | |||
+ | A | ||
+ | on: ..._._._._ : ._.. . | ||
+ | off: ..._._._._ : ..._ . | ||
+ | B | ||
+ | on: ._..._._._ : ._.. . | ||
+ | off: ._..._._._ : ..._ . | ||
+ | C | ||
+ | on: ._._..._._ : ._.. . | ||
+ | off: ._._..._._ : ..._ . | ||
+ | D | ||
+ | on: ._._._..._ : ._.. . | ||
+ | off: ._._._..._ : ..._ . | ||
+ | E | ||
+ | on: ._._._._.. : ._.. . | ||
+ | off: ._._._._.. : ..._ . | ||
+ | |||
+ | |||
+ | -- timings· | ||
+ | |||
+ | # 1 zeiteinheit entspricht ~250us | ||
+ | # 2x lang => insgesamt 1500 us | ||
+ | |||
+ | Ein an-/aus- bzw. aus-/an- Folge dauert immer rund 800us. | ||
+ | |||
+ | lang: | ||
+ | on => 600us | ||
+ | off => 200us | ||
+ | => 1110 | ||
+ | |||
+ | kurz: | ||
+ | on => 200us | ||
+ | off => 600us | ||
+ | => 1000 |
Aktuelle Version vom 23. Dezember 2010, 17:35 Uhr
Tevion
Im Folgenden werden die TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode programmiert werden können, behandelt.
Die Bezeichnung ist noch etwas unglücklich gewählt, jedoch konnten wir noch keine ICs identifizieren...
Senden
rfm12 tevion 77,42,170 86,86 99 4 OK
77,42,170: Hauscode
86,86: Steckdose 1, an
99: delay
4: Anzahl der Wiederholungen
oder auch in der Konsole:
/contrib/rfm12_ask/rfm12_ask_ecmd_send.sh tevion 1_on
Beispiel Tevion-Codes
einschalten: Steckdose 1 : rfm12 tevion 77,42,170 86,86 99 4 Steckdose 2 : rfm12 tevion 77,42,170 150,90 99 4 Steckdose 3 : rfm12 tevion 77,42,170 166,89 99 4 Steckdose 4 : rfm12 tevion 77,42,170 102,85 99 4 alle Steckdosen: rfm12 tevion 77,42,170 170,85 99 4
ausschalten: Steckdose 1 : rfm12 tevion 77,42,170 85,85 99 4 Steckdose 2 : rfm12 tevion 77,42,170 149,89 99 4 Steckdose 3 : rfm12 tevion 77,42,170 165,90 99 4 Steckdose 4 : rfm12 tevion 77,42,170 101,86 99 4 alle Steckdosen: rfm12 tevion 77,42,170 169,86 99 4
dimmen: Steckdose 1 : rfm12 tevion 77,42,170 86,154 99 4 Steckdose 2 : rfm12 tevion 77,42,170 150,150 99 4 Steckdose 3 : rfm12 tevion 77,42,170 166,149 99 4 Steckdose 4 : rfm12 tevion 77,42,170 102,153 99 4 alle Steckdosen: rfm12 tevion 77,42,170 170,153 99 4
heller: Steckdose 1 : rfm12 tevion 77,42,170 85,153 99 4 Steckdose 2 : rfm12 tevion 77,42,170 149,149 99 4 Steckdose 3 : rfm12 tevion 77,42,170 165,150 99 4 Steckdose 4 : rfm12 tevion 77,42,170 101,154 99 4 alle Steckdosen: rfm12 tevion 77,42,170 169,154 99 4
Eine Liste sämtlicher Codes währe Hilfreich. Bitte tragt diese hier ein!
Anlernen einer Tevion-Steckdose
Ein Anlernen einer Tevion-Steckdose funktioniert bei einigen bisher nur, wenn das Signal genau einmal gesendet wird!
Also die Taste Lernen der ausgeschalteten Steckdose drücken und festhalten, dann z.B. für Steckdose 1 folgendes Kommando absetzen:
rfm12 tevion 77,42,170 86,86 99 1
Die Steckdose sollte nun schalten.
Ist der Hauscode der Fernbedienung von dem mit dem RFM12 Modul gesendeten verschieden, ist ein Schalten mit der Fernbedienung erst nach erneutem Anlernen möglich.
Um den von der Fernbedienung verwendeten Hauscode zu ermitteln siehe folgende Abschnitte.
Code Analysieren
Audio/Oszi Variante
Schaltet man im Menü auch
│ │ Applications ---> ... │ │ [*] RFM12 ASK (EXPERIMENTAL) ---> ... │ │ [*] RFM12 ASK external filter
ein, so ist es möglich an Pin 4 des RFM12-Chips Empfangssignale zu messen. Dazu ist ein ECMD Aufruf nötig:
rfm12 external filter 1 OK
rfm12 external filter ohne Argument, ruft intern rfm12_init() auf.
Ich habe einfach Pin 4 / Masse mit dem mic-in meiner Soundkarte verbunden und konnte dank http://www.baudline.com/index.html diese Aufzeichnungen machen.
Dies ist die Aufzeichnung des Handsenders, Steckdose 1 aus:
Um diese nachzubilden, wird der RFM12-Chip einfach im 'richtigen Takt' ein- bzw. ausgeschaltet. Um die Sequenz zu speichern merken wir uns nur die 'Pulsdauer'.
Für einen kurzen Puls eine 0 und für einen langen Puls eine 1:
0, 1,0,0, 1, 1, ...
Das Abgebildete Signal kann dann in folgende Sequenzen unterteilt werden:
Hauscode : 0,1,0,0,1,1,0,1, 0,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1 Dose 1 aus: 0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1
oder Hauscode und ...
Dose 1 an : 0,1,0,1,0,1,1,0, 0,1,0,1,0,1,1,0
Fassen wir immer 8 Bit zusammen, erhält man:
Hauscode : 0,1,0,0,1,1,0,1, 0,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0, 1 77, 42, 170 ^-dieses Bit scheint dem ersten Bit des 3. Bytes zu entsprechen!?! Dose 1 aus: 0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1 85, 85
...
Dose 1 an : 0,1,0,1,0,1,1,0, 0,1,0,1,0,1,1,0 86, 86
Um den Hauscode der Tevion Handsender zu ermitteln, gibt es das Bash Skript /contrib/rfm12_ask/analyse_tevion.sh.
Es werden folgende Tools benötigt: bash, bc, gnuplot, sox incl. libsox-fmt-all und einige std. Konsolntools wie cut und grep...
Vorab ist eine Audiodatei des zu analysierenden Signals unter contrib/rfm12_ask ubzulegen und der Dateinamen ist im Skript anzupassen.
Es sollte mit etwas längerem Rauschen beginnen. Auch am Ende sollte ein wenig Rauschen vorhanden sein. Das Audiomaterial sollte halt passend geschnitten sein!
cd contrib/rfm12_ask/ bash analyse_tevion.sh sox sox: sox.dat: output clipped 1827 samples; decrease volume? Read file gnu.dat Compute data... 01001101001010101010101010101010101010101 Codes: bin 01001101 = dec 77 bin 00101010 = dec 42 bin 10101010 = dec 170 bin 01010101 = dec 85 bin 01010101 = dec 85 call: gnuplot gnuplot.in
Die Ausgabe des Skripts ist mittlerweile etwas umfangreicher geworden, um schneller die passenden Werte zu finden, die man ggf. ändern muss.
Diese findet man direkt am Anfang des Skriptes:
lowerboundlevel=-0.3
upperboundlevel=0.3
deltalongtime=0.005
deltashorttime=0.0009
Der gnuplot Aufruf zeigt die Wellenform dann als Punktewolke und oben sind die Zahlen eingeblendet. Hier erkennt man auch schnell, ob die eingetragenen Werte passen;-)
Man kann die Einstellungen für die Grafik in der Datei gnuplot.in ändern.
Zum Beispiel sieht man manchmal mehr, verbindet man die Punkte mit einer Linie.
Dazu ändert man den Eintrag: 'set style data point' nach 'set style data lp' fuer "LinePoint".
Nun eine Aufzeichnung des reproduzierten Signals:
rfm12 tevion 77,42,170 86,86 99 4
RFM12 ASK sensing
Schaltet man im Menü zusätzlich auch
... │ │ General Setup ---> ... │ │ [*] Enable (Serial-Line) Debugging ---> │ │ [*] ASK Sensing ... │ │ Applications ---> ... │ │ [*] RFM12 ASK (EXPERIMENTAL) ---> ... │ │ [*] RFM12 ASK external filter │ │ [*] RFM12 ASK sensing
ein, können die Signale des Handsenders direkt vom Debug-Screen abgelesen werden.
Hiezu ist es jedoch erforderlich einen weitern Interrupt-Pin des AVRs mit dem PIN4 des RFM12-Chips zu verbinden und im pinning einzutragen.
Ein ECMD Aufruf
rfm12 ask sense
startet den decoder. Sendet man nun ein Signal mit dem Handsender, werde der Hauscode und der Gerätecode incl. default delay usw. ausgegeben.
2272
Verschiedene Baumärkte und Pollin Vertreiben ein so genanntes Funkschaltset bestehend aus einer Funkfernbedienung und 3-5 Funksteckdosen. Die Steckdosen werden durch 10 DIP-Schalter konfiguriert. Die ersten fünf Schalter geben den Hauscode vor, die übrigen Schalter stellen die Adresse der Steckdose ein.
Der Name des Ethersex-Moduls 2272 geht auf die Bezeichnung des Empfänger-ICs der Funksteckdose zurück.
Senden
rfm12 2272 0,5,81 76 4 OK
0,5,81: Haus- Gerätecode; Steckdose A, an
76: delay
4: Anzahl der Wiederholungen
oder:
/contrib/rfm12_ask/rfm12_ask_ecmd_send.sh 2272 a_on
Code Analysieren
Fassen wir ein paar Notizen zusammen, die ich mir beim Spielen mit der Funksteckdose gemacht habe. Meine Erfahrungen sind voll kompatibel zu dem was bereits hier beschrieben wurde.
- Der Sender-Chip http://www.yggenyk.dk/wiki/HX2262_Remote_encoder_circuit
- Der Empfänger http://www.yggenyk.dk/wiki/HX2272_Remote_decoder_circuit
Genau genommen habe ich hier einen HX2272-L2, d.h. die Geräte-Adresse wird über die Pins 7, 8, 10 und 11 (A6, A7, A8, A9) am IC gesetzt; Die Pins 12 und 13 (D1 und D0) sind Ausgänge (wobei bei mir Pin 13 (D0) der "Hauptausgang" ist und Pin 12 (D1) offen liegt).
~> Unstimmigkeit: Wo fängt der Gerätecode an, wo hört der Hauscode auf? Laut den Datenblättern haben wir 4 Pins für den Hauscode (Pins 7, 8, 10 und 11 (A6, A7, A8, A9)) und 6 Pins für den Gerätecode(Pin 1-6 (A0-A5)). Im folgenden betrachten wir aber die ersten 5 Pins (Pin 1-5 (A0-A4)) als Gerätecode und die 5 Pins Pin 6-8, 10 und 11 (A5-A9) als Hauscode. Das ist aber eigentlich auch total egal. Reine Definitionsfrage.
Byteorder
Offenbar alles MSB (das Bit was am meisten "Wert" ist steht links)
Codierung
Wir senden mit einem RFM12-Modul, das eigentlich nur FM kann, in AM indem wir den Sender im passenden Timing ein- und ausschalten.
Eine "0" wird gesendet indem man zunächst "eine Zeit lang"(0,5µs - 0,6µs?) den Sender einschaltet und dann die doppelte Länge dieser Zeit X den Sender wieder abgeschaltet lassen.
Eine "1" wird gesendet indem man zunächst die doppelte Zeit x lang den Sender ausgeschaltet lässt und dann den Sender für diese Zeit X eingeschaltet lässt.
Also wie bereits an anderer Stelle beschrieben wird für jede "1" die Zeichen "110" gesendet und für jede "0" wird "100" gesendet.
Adressierung
Die Chips werden mit einer 10bit "Hausadresse" und einer 10bit "Geräteadresse" versehen. Auf der Fernbedienung jumpert man den Hauscode. Die Gerätecodes (plus Ein-/Ausschaltbefehl) sind harcodiert den verschiedenen Tasten auf der Fernbedienung zugeordnet.
Offenbar sind die Gerätecodes der Fernbedienung folgende:
Tasten | Code --------+----------------- A | 00 01 01 01 01 B | 01 00 01 01 01 C | 01 01 00 01 01 D | 01 01 01 00 01 E | 01 01 01 01 00
Beim Empfänger kann man Haus- und Gerätecode jumpern. Die Tristate-Eingänge Pin 1-6 (A0-A5) für den Hauscode und Pins 7, 8, 10 und 11 (A5, A6, A7, A8) für den Gerätecode sind entweder "offen" oder per Jumper auf Masse ("0") gezogen. Man definiert mit jedem Pin 2 Bit vom Haus-/Gerätecode nach folgender Tabelle:
Pegel | binär -------+-------- GND | 00 offen | 01 VCC | 11
Die Werte "11" können also nur per Jumpern und ohne Umlöten nicht erreicht werden.
Befehle
Wir haben bisher nur folgende Befehle ausprobiert:
Befehl | Funktion --------+--------------------------------- 00 00 | 2ter Ausgang aus, Relais aus 00 01 | 2ter Ausgang aus, Relais an 01 00 | 2ter Ausgang an, Relais aus 01 01 | 2ter Ausgang an, Relais an | D1 D0 | Namen der Pins
Beispiele
Von Handsender-Fernbedienung aufgezeichnet:
HAUSCODE GERÄTECODE COMAND A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 D1 D0 00 00 00 00 00 00 01 01 01 01 00 01 - Gerät A on (zweiter unbelegter Ausgang off), Hauscode "all dip's on" 00 00 00 00 00 00 01 01 01 01 01 00 - Gerät A off (zweiter unbelegter Ausgang on), Hauscode "all dip's on" 00 00 00 00 00 01 00 01 01 01 00 01 - Gerät B on (zweiter unbelegter Ausgang off), Hauscode "all dip's on"
Empfangen
Beim Aufzeichnen sieht man immer Sequenzen von entweder
- kurz Ruhe, dann 2 Zeiteinheiten Rauschen (== "0")
oder
- 2 Zeiteinheiten Ruhe und dann kurz Rauschen (== "1")
Senden
Möchte man die Codes senden muss man die Bitfolge noch umrechnen in das Format in der das Tool, was man zum senden verwendet, die Angaben haben möchte. RF12 ASK 2272 erwartet bei Aufruf 3 Byte als Dezimalzahl. Diese drei Byte werden wie folgt gebildet:
HAUSCODE GERÄTECODE COMAND 00 00 00 00 00 00 01 01 01 01 00 01 - Gerät A on (zweiter unbelegter Ausgang off), Hauscode "all dip's on" |-Byte 1 -| |-- Byte 2 --| |-- Byte 3 --| 0 (= 0x00) 5 (= 0x05) 81 (= 0x51)
Als Anmerkung sei hier noch gesagt, das bei einer existierenden Funkfernbedienung an PIN 17 (bei 18pol IC's) bzw. PIN 19 (bei 20pol IC's) per z.B. Baudline
wunderbar der Sendecode aufgezeichnet und interpretiert werden kann.
Messung auf dem Bild mit Baudline an Pin 17 eines Sendechips 2262. In diesem Fall ein Intertechno Sender mit
Gerätecode A (0000), Steckdose 1 (0000), Gerät einschalten (0111) 0 dez 0 dez 21 dez
oder als ECMD 192.168.0.90/ecmd?rfm12 2272+0,0,21+72+10
Das grafische Sendemuster findet sich bei allen von mir getesteten 2262 Chips wieder.
1527
Diese ICs werden zur Ansteuerung der Unterputz-Funkdimmer und -schalter "FD-UP003" von Pollin verwendet. HINWEIS: die Dimmer sind nur für ohmsche Lasten (Glühbirnen, Hochvolt-Halogen-Lampen) geeignet. Es dürfen keine (elektronischen) Transformatoren angeschloßen werden! Die ICs besitzen eine feste Adresse mit 20 bit (Hauscode), sowie 4 bit für die Schaltfunktionen. Man kann davon ausgehen, dass jede Fernbedienung einen anderen Hauscode hat. Das Übertragungsprotokoll ist nahezu identisch mit dem 2272, außer einer kleinen Abweichung bei der Codierung.
Senden
rfm12 1527 37,181,143 76 10 OK
37,181,143: Haus- Gerätecode; Dose 2, an
76: delay
10: Anzahl der Wiederholungen
Empfangen
Beim Aufzeichnen sieht man immer Sequenzen von entweder
- kurz Ruhe, dann 3 Zeiteinheiten Rauschen (== "0")
oder
- 3 Zeiteinheiten Ruhe und dann kurz Rauschen (== "1")
Codierung
Eine "0" wird gesendet indem man zunächst "eine Zeit lang" den Sender einschaltet und dann die dreifache Länge dieser Zeit X den Sender wieder abgeschaltet lassen. Das entspricht 1/4 der Gesamtdauer einschalten und 3/4 aus.
Eine "1" wird gesendet indem man zunächst die dreifache Zeit x lang den Sender eingeschaltet lässt und dann den Sender für diese Zeit X ausgeschaltet lässt. Das entspricht 3/4 der Gesamtdauer einschalten und 1/4 aus.
HAUSCODE COMMAND GERÄTECODE 00 10 01 01 10 11 01 01 01 01 1 1 11 Das Kommando "1111" schaltet das erste Gerät ein, "0111" schaltet es aus. |-Byte 1 -| |-Byte 2 -| |-------- Byte 3 -------| 37 (= 0x25) 181 (= 0xB5) 95 (= 0x5F)
Der 20 bit-Hauscode ist fest in den ICs der Funkfernbedienung einprogrammiert und lässt sich nicht ändern.
Da die Empfänger anlernbar sind, kann man sie bei der Ansteuerung über Ethersex auf einen beliebigen Hauscode programmieren,
allerdings kann man die Dimmer dann nicht mehr mit der Fernbedienung steuern.
Beispiele
Von Handsender-Fernbedienung aufgezeichnet:
HAUSCODE COMMAND GERÄTECODE 00 10 01 01 10 11 01 01 01 01 1 1 11 - Gerät 1 on 00 10 01 01 10 11 01 01 01 01 0 1 11 - Gerät 1 off 00 10 01 01 10 11 01 01 01 01 1 0 11 - Gerät 2 on 00 10 01 01 10 11 01 01 01 01 0 0 11 - Gerät 2 off 00 10 01 01 10 11 01 01 01 01 1 1 01 - Gerät 3 on 00 10 01 01 10 11 01 01 01 01 0 1 01 - Gerät 3 off 00 10 01 01 10 11 01 01 01 01 1 1 10 - Gerät 4 on 00 10 01 01 10 11 01 01 01 01 0 1 10 - Gerät 4 off 00 10 01 01 10 11 01 01 01 01 1 0 00 - alle Geräte aus
Schalten/Dimmen
Um die Dimmer ein- bzw. auszuschalten wird der jeweilige Code ca. 10 mal hintereinander gesendet. Das entspricht einem kurzen Drücken der EIN- oder AUS-Taste auf der Fernbedienung.
Um zu Dimmen muss der Code mindestens 45 mal oder öfter gesendet werden. Das entspricht einem langen Drücken der EIN-Taste zum Erhöhen der Helligkeit, bzw. der AUS-Taste zum Reduzieren der Helligkeit.
Bsp.:
rfm12 1527 37,181,143 76 45 OK
P801B
Das IC P801B wird ebenfalls mit 5bit / 10bit Dipschaltern an Fernbedienung respektive Funksteckdose ausgeliefert, ist aber nicht kompatibel zu denen mit verbautem 2272 IC.
Das Oszi produziert folgendes beim Druck auf die "off"-Taste für die Steckdose 1 und alle Dip-Schalter der Fernbedienung auf "off" gesetzt:
-- legende
. => kurz / 1 _ => lang / 0
-- house code
._._._._._ => house code: alle schalter auf on __________ => house code: alle schalter auf off ._________ => house code: on-off-off-off-off
-- mitschnitte
A
on: ..._._._._ : ._.. . off: ..._._._._ : ..._ .
B
on: ._..._._._ : ._.. . off: ._..._._._ : ..._ .
C
on: ._._..._._ : ._.. . off: ._._..._._ : ..._ .
D
on: ._._._..._ : ._.. . off: ._._._..._ : ..._ .
E
on: ._._._._.. : ._.. . off: ._._._._.. : ..._ .
-- timings·
- 1 zeiteinheit entspricht ~250us
- 2x lang => insgesamt 1500 us
Ein an-/aus- bzw. aus-/an- Folge dauert immer rund 800us.
lang:
on => 600us off => 200us => 1110
kurz:
on => 200us off => 600us => 1000