mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Protokoll einer Wetterstation - Prüfsumme vorhanden?


Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

in den letzten Tagen habe ich angefangen das Protokoll einer Funk 
Wetterstation zu zerlegen. Die wichtigsten Werte habe ich bereits durch 
herumprobieren herausgefunden. Was mir derzeit noch Probleme macht, ist 
das überprüfen der empfangenen Daten, da immer wieder falsche Werte 
empfangen werden.

Folgendes habe ich bereits herausgefunden:
Byte 01: 31 //Unbekannt - Immer 31
Byte 02: 58 //Luftfeuchtigkeit %
Byte 03: 1A //Unbekannt - Immer 1A
Byte 04: E1 //Temperatur
Byte 05: 00 //Temperatur Prefix (00E1 = 225)/10 = 22,5°C
Byte 06: 00 //Unbekannt
Byte 07: E1 //Temperatur (Wiederholung)
Byte 08: 00 //Temperatur Prefix (Wiederholung)
Byte 09: 04 //Windrichtung
Byte 10: 02 //Windgeschwindigkeit (evtl. durchschnitt)
Byte 11: 00 //Unbekannt
Byte 12: 08 //Windgeschwindigkeit?
Byte 13: 00 //Unbekannt
Byte 14: 1F //Regenmenge (Aufsteigend)
Byte 15: 01 //Regen (Durchschnitt)?
Byte 16: 00 //Regen (Max)?
Byte 17: 08 //UV Wert
Byte 18: 3F //Unbekannt - Immer 3F
Byte 19: B1 //Unbekannt - Immer B1
Byte 20: E7 //Unbekannt - über längere Zeit der Selbe Wert aber steigend
Byte 21: 00 //Unbekannt
Byte 22: D9 //Checksumme? 

Leider bin ich nie auf die von mir vermutete Checksumme gekommen
CRC Rechner wie z.B. dieser haben mir ständig andere Werte berechnet: 
http://www.scadacore.com/field-applications/progra...

Deshalb frage ich mich ob es überhaupt eine Checksumme in diesen Daten 
gibt, da z.B. der Temperaturwert redundant übertragen wird?

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Deshalb frage ich mich ob es überhaupt eine Checksumme in diesen Daten
> gibt, ...

Poste weitere Datensätze, dann könnte man es u. U. leichter sehen.

Autor: Rainer B. (katastrophenheinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,

bei dem Funksensor,den ich vor Jahren mal in der Mache hatte, wurde eine 
Checksumme auf Nibble-Basis berechnet, wenn ich mich recht erinnere. War 
ein TX18 von LaCrosse.

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein paar weitere Datensätze:
31 48 1A F5 00 00 F5 00 05 00 00 0C 00 1F 01 00 07 3F B1 E7 00 D3
31 48 1A F5 20 00 F5 00 0C 20 84 0C 80 9F 05 00 07 3F B1 E7 00 31
31 47 1A F5 00 00 F5 00 02 02 00 0C 00 1F 01 00 08 3F B1 E7 00 7F
31 48 1A F5 00 00 F5 10 2B 22 00 0C 00 1F 01 00 08 3F B1 E7 00 D0
31 47 1A F5 00 00 F5 00 08 04 00 0C 00 1F 01 00 08 3F B1 E7 00 04
31 47 1A F6 00 00 F6 00 0E 04 00 0C 00 1F 01 00 08 3F B1 E7 00 C2
31 47 1A F5 00 00 F5 00 0A 04 00 0A 00 1F 01 00 09 3F B1 E7 00 08
31 47 1A FE 00 00 FE 00 09 02 00 02 00 1F 01 00 14 3F B1 E7 00 47
31 07 1A FE 04 00 FE 00 07 00 00 0C 00 1F 11 00 14 3F B1 E7 00 9B
31 47 1A FE 00 00 FE 00 07 06 00 0C 00 1F 01 00 14 3F B1 E7 00 4B
31 47 1A FD 00 00 FD 00 0A 02 00 0C 00 9F 01 00 14 3F B1 E7 00 38
31 48 1A FC 00 00 FC 00 0A 06 00 0C 00 1F 01 00 13 3F B1 E7 00 7F
31 41 1A 2C 01 02 24 01 04 02 00 06 00 9F 05 02 26 3F B1 E7 00 6C
31 41 1A 26 01 00 26 01 0C 02 00 06 00 1F 01 00 25 3F B1 E7 00 39
31 39 1A 23 01 00 21 01 06 06 08 06 00 1F 01 80 24 3F B5 E7 00 20
31 39 5A 27 01 00 67 03 02 02 00 06 00 1F 01 08 23 3F B1 E7 00 A1
31 38 1A 2E 01 00 2E 01 08 00 00 06 00 1F 01 00 23 3F B1 E7 00 1D
31 38 1A 2F 01 00 2F 01 08 00 00 02 00 1F 03 00 24 3F B1 E7 00 B5
31 38 1A 32 01 00 32 01 0C 00 00 02 00 1F 01 00 23 3F B1 E7 00 EA

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein defekter ist auch reingerutscht ( Byte 3 nicht 1A):
31 39 5A 27 01 00 67 03 02 02 00 06 00 1F 01 08 23 3F B1 E7 00 A1

Autor: mh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es soll ja angeblich mehr als einen 8-bit Prüfsummen-Algorithmus 
geben...

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist durchaus möglich. Die letzten 5 Byte konnte ich nicht zuordnen, 
es könnten auch 5 Byte sein, wobei sich bei den meisten Übertragungen 
nur das letzte Byte ändert.

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gib Leute die sich auch schon Gedanken darüber gemacht haben, wie 
z.B.:
http://wmrx00.sourceforge.net/Arduino/OregonScient...

Um welche Wetterstation handelt es sich denn?

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um eine "Renkforce Funk-Wetterstation mit 
Gewitterwarnung"
Die ich günstig vom Restposten Tisch beim großen C bekommen habe.

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch in den Datensätzen mit dem selben End-Byte ist nicht viel zu 
erkennen:
31 47 1A F8 00 00 F8 00 0A 02 20 0A 00 1F 01 00 0E 3F B1 E7 00 2E
31 47 1A FF 00 00 FF 00 04 02 00 0C 00 1F 01 00 13 3F B1 E7 00 2E
31 92 1A 95 00 00 95 00 0E 00 00 00 00 40 01 00 05 01 B1 AC 01 2E

33 96 1A 88 00 00 88 00 0E 00 00 06 00 6C 01 00 05 3F B1 C1 01 26
31 98 1A 8D 00 00 8D 00 09 04 00 06 00 6C 01 00 05 3F B1 C1 01 26
31 62 1E D9 00 00 D9 04 0D 01 00 08 00 1F 01 00 05 25 B1 EC 00 26

31 94 1A 91 00 00 91 00 09 02 00 02 00 6E 01 00 0A 3F B1 C1 01 FE
31 96 1A 8C 00 00 8C 00 0D 02 00 0A 00 6C 01 10 06 3F B1 C1 01 FE
3B 98 1E A8 46 08 99 00 0F 48 25 10 00 6C 83 00 05 BF F9 C9 0D FE
31 97 1A 87 00 00 87 00 0D 00 00 06 00 6C 01 00 05 3F B1 C1 01 FE
31 98 1A 90 00 00 90 00 0B 00 00 00 00 6C 01 00 05 3F B1 C1 01 FE

31 98 1A 8C 00 00 8C 00 00 02 00 0C 00 6C 01 00 06 3F B1 C1 01 A2
31 98 1A 8C 00 00 8C 00 00 02 00 0C 00 6C 01 00 06 3F B1 C1 01 A2
31 98 1A 8C 00 00 8C 00 00 02 00 0C 00 6C 81 00 06 3F B1 C1 01 A2

31 56 9A EE 10 00 EE 00 07 00 00 08 00 1F 01 00 07 3F B1 E7 00 D3
3B D0 1A F6 00 20 F4 00 46 00 00 0C 00 1F 01 00 47 3F B1 E7 00 D3
31 48 1A F5 00 00 F5 00 05 00 00 0C 00 1F 01 00 07 3F B1 E7 00 D3

31 98 1A 8A 00 00 8A 00 0E 00 00 00 00 6C 01 00 05 3F B1 C1 01 CB
31 98 1A 8A 08 00 8A 00 0E 00 00 10 00 6C 01 00 45 3F B1 C1 01 CB
31 46 1A F6 00 00 F6 00 0D 02 00 0A 00 1F 01 00 09 3F B1 E7 00 CB
31 46 1A F7 00 00 F7 00 06 02 00 08 00 1F 01 00 0E 3F B1 E7 00 CB

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist leider wirklich nicht viel zu finden :(

Die einzige Vermutung die ich fand war ein Hinweis auf einen Nachbau 
einer Davis Station.
Diese würde dann von weewx unterstützt.
Ist aber nur eine Vermutung.

Vielleicht musst Du die andere Richtung einschlagen:
eigene Datenpakete senden und sehen was die Station anzeigt.

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche auch mal nach Telegrammen, wo sich (ausser dem letzten) nur ein 
Datenbyte verändert. Vielleicht kann man da auf den Algorithmus 
schließen. Ist mir beim decodieren des WS2000-Protokolls auch gelungen.

Autor: Wolfgang K. (donkracho)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
22 Byte über 433MHz ASK fehlerfrei übertragen zu wollen ist schon sehr 
sportlich. In den üblichen Protokollen von Wettersensoren sind die 
Datenpakete deutlich kürzer und sie werden mehrfach wiederholt. Checks 
bestehen dann auch nicht aus aufwendigen Prüfsummenalgorithmen sondern 
einfachen Additionen oder XORs der Daten.

Es scheint mir, dass in den Datenpaketen des öfteren Bitkipper drin 
sind. Du schreibst ja selbst, das ab und an unsinnige Werte kommen. 
Bevor man versucht die Pakete zu analysieren muss man zunächst sicher 
sein, dass die empfangenen Daten auch richtig sind.

Hast du eine Möglichkeit das Signal direkt im Sensor abzugreifen bevor 
es in den Transmitter geht? Dann ist die 433MHz Übertragung schon mal 
als Fehlerquelle ausgeschlossen.

Wie ist denn der Dekoder aufgebaut? Evtl. erkennt der schon Nullen oder 
Einsen nicht zuverlässig.

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hinweise! Die eigentliche Übertragung findet bei 868MHz 
FSK über ein HopeRF RFM43BJ Funkmodul statt. In der Station wird mit 
einem RFM31 Funkmodul empfangen.

Ich bin der Empfehlung von Helmut gefolgt und habe Datensätze 
herausgesucht wo sich nur ein Byte verändert hat:
31 99 1A 77 00 00 77 00 0C 00 00 00 00 85 01 00 09 3F B1 CA 01 CD
31 99 1A 77 00 00 77 00 0C 00 00 00 00 85 01 00 09 3F B1 CA 01 CD
31 99 1A 78 00 00 78 00 0C 00 00 00 00 85 01 00 08 3F B1 CA 01 C3
31 99 1A 78 00 00 78 00 0C 00 00 00 00 85 01 00 08 3F B1 CA 01 C3

31 99 1A 64 00 00 64 00 0B 00 00 00 00 85 01 00 06 3F B1 CA 01 7D
31 99 1A 64 00 00 64 00 0B 00 00 00 00 85 01 00 06 3F B1 CA 01 7D
31 99 1A 64 00 00 64 00 0A 00 00 00 00 85 01 00 06 3F B1 CA 01 DA
31 99 1A 64 00 00 64 00 0A 00 00 00 00 85 01 00 06 3F B1 CA 01 DA

Im oberen Block hat sich die Temperatur um 0,1°C erhöht (77->78 = 11,9°C 
-> 12°C) Was in der Prüfsumme um 10 dez (205-195) verringert.

Im 2. Block hat sich die Windrichtung von A -> B geändert was die 
Prüfsumme um 93 dez (218 - 125) erhöht.

Autor: DA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weitere steigende Temperaturwerte in HEX und Bin die mindestens 2x 
gleich übertragen wurden:
31        99        1A        85        0        0          85          0          E          0          0          0        0        85        1        0        5        3F        B1        CA        1        FA
00110001  10011001  00011010  10000101  00000000  00000000  10000101  00000000  00001110  00000000  00000000  00000000  00000000  10000101  00000001  00000000  00000101  00111111  10110001  11001010  00000001  11111010
31        99        1A        86        0        0          86          0          E          0          0          0        0        85        1        0        5        3F        B1        CA        1        C5
00110001  10011001  00011010  10000110  00000000  00000000  10000110  00000000  00001110  00000000  00000000  00000000  00000000  10000101  00000001  00000000  00000101  00111111  10110001  11001010  00000001  11000101
31        99        1A        88        0        0          88          0          E          0          0          0        0        85        1        0        5        3F        B1        CA        1        E4
00110001  10011001  00011010  10001000  00000000  00000000  10001000  00000000  00001110  00000000  00000000  00000000  00000000  10000101  00000001  00000000  00000101  00111111  10110001  11001010  00000001  11100100
31        97        1A        90        0        0          90          0          E          0          0          0        0        85        1        0        5        3F        B1        CA        1        83
00110001  10010111  00011010  10010000  00000000  00000000  10010000  00000000  00001110  00000000  00000000  00000000  00000000  10000101  00000001  00000000  00000101  00111111  10110001  11001010  00000001  10000011
31        97        1A        91        0        0          91          0          E          0          0          0        0        85        1        0        5        3F        B1        CA        1        61
00110001  10010111  00011010  10010001  00000000  00000000  10010001  00000000  00001110  00000000  00000000  00000000  00000000  10000101  00000001  00000000  00000101  00111111  10110001  11001010  00000001  01100001


Autor: Just Me_NL (justme_nl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
First: sorry that my reply is in english. My german is not as good and I 
don' want to rely on google translate.

Thank you for your work here, it helped me a lot to decipher the 
protocol. I found out it is as follows for the Ventus W266 and the 
Renkforce W205GU:

IDhh 1A tlth ?b tlth wb alahglgh rlrh?? uv ld?? lllhcrc
9827 1A B100 00 B100 06 00000000 1E0000 00 3F8A 2A0017

ID = house code, changes with a battery change
hh=humidity (bcd)
tlth=temperature-low/temphigh (*10)
b=battery (1=low),
wb=bearing (cw0-15)
alah=windaverage-low/high (m/s/2)
rlrh=rainfall-low/high (1/4mm),
uv=uvindex (*10)
ld=lightningstorm-distance (km, 3F is max)
lllh=strikecount-low/high (#)
crc (poly 0x31, init 0xff, revin&revout, xorout 0x00)

?? as of yet unknown

I found the crc using revenge (reveng.sourceforge.net)

Edit: typos

: Bearbeitet durch User
Autor: spica (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Baudrate hat das Protokoll und ist es Manchester codiert?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.