Revision history for CodeanalysePoolThermometer


Revision [22017]

Last edited on 2015-10-08 20:26:13 by ToBo
Additions:
Mir ist aufgefallen, dass die 9 Bits 16 bis 24, die Temperatur sein könnten. Man fängt bei Octave bei 1 (nicht bei 0!) an zu zählen.
Deletions:
Mir ist aufgefallen, dass die 9 Bits 16 bis 24 (angefangen bei 1 wie es bei Octave üblich ist, die Temperatur sein könnten)


Revision [22016]

Edited on 2015-10-08 20:23:30 by ToBo
Additions:
Da die Symbole nun bekannt sind, kann man also eine Sequenz von Symbolen auf einer [[AbstraktionsEbenen Abstraktionsebene]] höher untersuchen. Ich habe die Sequenzen rausgesucht, die zwischen zwei Sync liegen und habe die dazu immer die Temperatur aufgeschrieben, sobald sich diese geändert hat.
Deletions:
Da die Symbole nun bekannt sind, kann man also eine Sequenz von Symbolen auf einer [[AbstarktionsEbenen Abstraktionsebene]] höher untersuchen. Ich habe die Sequenzen rausgesucht, die zwischen zwei Sync liegen und habe die dazu immer die Temperatur aufgeschrieben, sobald sich diese geändert hat.


Revision [22015]

Edited on 2015-10-08 20:14:12 by ToBo
Additions:
{{image url="images/poolTempPhoto.jpg" alt=""}}


Revision [22014]

Edited on 2015-10-08 20:03:16 by ToBo
Additions:
{{image url="images/poolTempSymbols.png" alt=""}}
Gemessene Werte:
Da die Symbole nun bekannt sind, kann man also eine Sequenz von Symbolen auf einer [[AbstarktionsEbenen Abstraktionsebene]] höher untersuchen. Ich habe die Sequenzen rausgesucht, die zwischen zwei Sync liegen und habe die dazu immer die Temperatur aufgeschrieben, sobald sich diese geändert hat.
Mir ist aufgefallen, dass die 9 Bits 16 bis 24 (angefangen bei 1 wie es bei Octave üblich ist, die Temperatur sein könnten)
Man muss also die Bits 16 bis 24 in einen Integer-Wert wandeln. Ich mache das mit Octave, weil es schnell geht.
>> bin2dec(seqA(16:24))
ans =
255
>> bin2dec(seqB(16:24))
ans =
258
Tatsächlich die 9 Bits beinhalten die Temperatur.
Man teilt den Wert noch durch 10 und hat dann die Temperatur.
>> bin2dec(seqA(16:24)) / 10
ans =
25.5000
>> bin2dec(seqB(16:24)) / 10
ans =
25.8000
Die Daten sind also unverschlüsselt und in einem sehr überschaubaren Format. Vielleicht möchte jemand die anderen Bits herausfinden.
Deletions:
_
0: _| |__
_
1: _| |_______
_
Sync: _| |_____________
Da die Symbole nun bekannt sind kann man also eine Sequenz auf einer [[AbstarktionsEbenen Abstraktionsebene]] höher untersuchen. Ich habe die Sequenzen rausgesucht, die zwischen zwei Sync liegen und habe die dazu immer die Temperatur aufgeschrieben, sobald sich diese geändert hat.
Mir ist aufgefallen, dass die
bin2dec(seqA(16:24))
bin2dec(seqB(16:24))


Revision [22013]

Edited on 2015-10-08 19:39:18 by ToBo
Additions:
=====Codeanalyse eines Pool-Thermometers=====
Marke: TFA Dostmann/Wertheim
MODEL NO. KW-9043
Das Thermometer sendet auf 433 MHz mit OOK.
Ich habe einen DVB-T-Stick verwendet um die Signale ins Basisband zu demodulieren und habe mir den Rest dann in Octave angeschaut.
==a==Symbol-Kodierung==a==
Wenn man sich eine Zeitreihe anschaut, dann sieht man, dass es 3 Symbole gibt. Ein 0-, ein 1- und ein Sync-Symbol
Ein Symbol besteht immer aus einem ca. 207 µs breiten positiven Puls gefolgt von einer variablen Pause. Die Pause entscheidet darüber, um welches Symbol es sich handelt.
0-Symbol
HI 0.207 ms
LO 2.258 ms
%%
_
0: _| |__
%%
1-Symbol
HI 0.207 ms
LO 4.825 ms
%%
_
1: _| |_______
%%
Sync-Symbol
HI 0.207 ms
LO 9.811 ms
%%
_
Sync: _| |_____________
%%
==a==Informations-Kodierung==a==
Da die Symbole nun bekannt sind kann man also eine Sequenz auf einer [[AbstarktionsEbenen Abstraktionsebene]] höher untersuchen. Ich habe die Sequenzen rausgesucht, die zwischen zwei Sync liegen und habe die dazu immer die Temperatur aufgeschrieben, sobald sich diese geändert hat.
Sequenz A bei 25,5 °C auf der Anzeige
%%
seqA='1101100100100000111111110101'
seqB='0010100100100001000000100101'
%%
Sequenz B bei 25,8 °C auf der Anzeige
Mir ist aufgefallen, dass die
Octave-Befehl
%%(matlab)
bin2dec(seqA(16:24))
bin2dec(seqB(16:24))
%%
Deletions:
=====T=====


Revision [22012]

The oldest known version of this page was created on 2015-10-08 19:18:22 by ToBo
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki