HowToRFM12 ASK: Unterschied zwischen den Versionen
(Unvollständige erste Fassung zum rfm12 howto - import von tiki wiki) |
Veyron (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
− | |||
− | |||
==Tevion== | ==Tevion== | ||
===Senden=== | ===Senden=== | ||
− | rfm12 tevion 77,42,170 86,86 99 4 | + | rfm12 tevion 77,42,170 86,86 99 4 |
− | OK | + | 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 | |
− | |||
− | |||
− | |||
− | |||
− | /contrib/rfm12_ask/rfm12_ask_ecmd_send.sh tevion 1_on | ||
===Code Analysieren=== | ===Code Analysieren=== | ||
− | Schaltet man im Menü auch | + | Schaltet man im Menü auch |
− | + | │ │ [*] 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, ... | 0, 1, 0, 0, 1, 1, ... | ||
− | Das Abgebildete Signal kann dann in folgende Sequenzen unterteilt werden: | + | 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 | + | 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 | + | 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 | + | 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 | + | 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 | + | 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 | + | 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... | 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! | + | Vorab ist eine Audiodatei des zu analysierenden Signals unter contrib/rfm12_ask ubzulegen und der Dateinamen ist im Skript anzupassen. |
− | cd contrib/rfm12_ask/ | + | |
− | bash analyse_tevion.sh | + | Es sollte mit etwas längerem Rauschen beginnen. Auch am Ende sollte ein wenig Rauschen vorhanden sein. Das Audiomaterial sollte halt passend geschnitten sein! |
− | sox sox: sox.dat: output clipped 1827 samples; decrease volume? | + | cd contrib/rfm12_ask/ |
− | Read file gnu.dat | + | bash analyse_tevion.sh |
− | Compute data... | + | sox sox: sox.dat: output clipped 1827 samples; decrease volume? |
− | 01001101001010101010101010101010101010101 | + | Read file gnu.dat |
− | Codes: | + | Compute data... |
− | bin 01001101 = dec 77 | + | 01001101001010101010101010101010101010101 |
− | bin 00101010 = dec 42 | + | Codes: |
− | bin 10101010 = dec 170 | + | bin 01001101 = dec 77 |
− | bin 01010101 = dec 85 | + | bin 00101010 = dec 42 |
− | bin 01010101 = dec 85 | + | bin 10101010 = dec 170 |
− | call: | + | bin 01010101 = dec 85 |
+ | bin 01010101 = dec 85 | ||
+ | call: | ||
gnuplot gnuplot.in | gnuplot gnuplot.in | ||
− | Die Ausgabe des Skripts ist mittlerweile etwas umfangreicher geworden, um schneller die passenden Werte zu finden, die man ggf. ändern muss. | + | 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: | + | |
+ | Diese findet man direkt am Anfang des Skriptes: | ||
+ | |||
lowerboundlevel=-0.3 | lowerboundlevel=-0.3 | ||
+ | |||
upperboundlevel=0.3 | upperboundlevel=0.3 | ||
deltalongtime=0.005 | deltalongtime=0.005 | ||
+ | |||
deltashorttime=0.0009 | 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;-) | + | 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. | + | Man kann die Einstellungen für die Grafik in der Datei gnuplot.in ändern. |
− | Dazu ändert man den Eintrag: 'set style data point' nach 'set style data lp' fuer "LinePoint". | + | |
− | Nun eine Aufzeichnung des reproduzierten Signals: | + | Zum Beispiel sieht man manchmal mehr, verbindet man die Punkte mit einer Linie. |
− | rfm12 tevion 77,42,170 86,86 99 4 | + | |
+ | 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 | ||
− | |||
==2272== | ==2272== | ||
===Kangtai Powerswitch === | ===Kangtai Powerswitch === | ||
− | Verschiedene Baumärkte und Pollin vertreiben auch ein | + | Verschiedene Baumärkte und Pollin vertreiben auch ein so genanntes Funkschaltset bestehend aus einer Funkfernbedienung und 3-5 Funksteckdosen. |
− | Konfigurierbar sind die Steckdosen via 10 Dipschalter. Der Hauscode der Fernbedienung kann über 5 Dipschalter eingestellt werden. Dieser Code wird bei den Steckdosen übernommen. Die restlichen 5 Dipschalter stehen dann für die 5 verschiedenen Steckdosen. | + | |
+ | Konfigurierbar sind die Steckdosen via 10 Dipschalter. Der Hauscode der Fernbedienung kann über 5 Dipschalter eingestellt werden. | ||
+ | |||
+ | Dieser Code wird bei den Steckdosen übernommen. Die restlichen 5 Dipschalter stehen dann für die 5 verschiedenen Steckdosen. | ||
===Senden=== | ===Senden=== | ||
− | rfm12 2272 0,5,81 76 4 | + | rfm12 2272 0,5,81 76 4 |
− | OK | + | 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 | |
− | |||
− | oder: | ||
− | /contrib/rfm12_ask/rfm12_ask_ecmd_send.sh 2272 a_on | ||
===Code Analysieren=== | ===Code Analysieren=== | ||
Anbei ein Screenshot aus Audacity mit dem Vergleich von 3 Codes | Anbei ein Screenshot aus Audacity mit dem Vergleich von 3 Codes | ||
− | Hierbei bedeutet zB "Hauscode 11111" das alle | + | Hierbei bedeutet zB. "Hauscode 11111" das alle Dipschalter eingeschaltet sind. Das resultiert in eine Übertragung von 5 "100"-Sequenzen für den Hauscode. |
+ | |||
+ | Siehe dazu auch http://www.das-labor.org/wiki/Diskussion:Funkfernbedienung | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Import von http://zerties.org/tiki/tiki-index.php?page=HowToRFM12_ASK |
Version vom 23. April 2009, 17:03 Uhr
Inhaltsverzeichnis
Tevion
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
Code Analysieren
Schaltet man im Menü auch
│ │ [*] 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
2272
Kangtai Powerswitch
Verschiedene Baumärkte und Pollin vertreiben auch ein so genanntes Funkschaltset bestehend aus einer Funkfernbedienung und 3-5 Funksteckdosen.
Konfigurierbar sind die Steckdosen via 10 Dipschalter. Der Hauscode der Fernbedienung kann über 5 Dipschalter eingestellt werden.
Dieser Code wird bei den Steckdosen übernommen. Die restlichen 5 Dipschalter stehen dann für die 5 verschiedenen Steckdosen.
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
Anbei ein Screenshot aus Audacity mit dem Vergleich von 3 Codes
Hierbei bedeutet zB. "Hauscode 11111" das alle Dipschalter eingeschaltet sind. Das resultiert in eine Übertragung von 5 "100"-Sequenzen für den Hauscode.
Siehe dazu auch http://www.das-labor.org/wiki/Diskussion:Funkfernbedienung
Import von http://zerties.org/tiki/tiki-index.php?page=HowToRFM12_ASK