Die WMR100 ist vom Preis-Leistungsverhältnis unschlagbar. Da diese Station eine der ersten mit
USB-Anschluss ist, ist zur Zeit die Auswahl an Software nicht besonders groß. Zum Teil völlig
überladen mit Funktionen, nur für Windows u.s.w. Da ich ohnehin eine kleine Anwendung selber
programieren wollte war die WMR100 die ideale Wahl für mich.
Durch einfaches Ausprobieren (Display ablesen und selben Wert im USB-Verkehr finden) kann
man die richtigen Bytes schnell ohne Probleme finden - da steckt kein Geheimnis dahinter.
Die Kommunikation mit der WMR100 findet als HID-Device statt, nicht als USB-Seriell
wie zuerst erwartet.
WMR100 USB Kennung: ------------------- USB\Vid_0fde&Pid_ca01&Rev_0302 (USB-HID Human Interface Device) |
WMR100 Initialisierung: ----------------------- Zuerst muss nach dem Start einmalig folgendes Frame gesendet werden: 20 00 08 01 00 00 00 00 (einmal) |
Die WMR100 sendet daraufhin im Rhythmus von ca. 3..7 Sekunden jeweils 3..4 einzelne Nachrichten. Die Checksumme wird durch einfache Summierung aller Bytes in der Botschaft exklusive dem Checksummen-Byte berechnet. Vom Ergebnis werden dann nur die niederwertigsten 8 Bits verwendet. |
|
Uhrzeit und Datum: 30 60 00 00 1A 12 02 05 07 00 CA FK xx xx xx AA BB CC DD EE xx CS => 18:26 02.05.2007 FK = Framekennung AA = Minuten BB = Stunden CC = Tag DD = Monat EE = Jahr (2000 + EE) CS = Checksumme Barometer: 46 D2 03 13 34 62 FK xx Dx BB xA CS => $413=1043mbar FK = Framekennung D = Vorhersage (0 Partly Cloudy, 1 Rainy, 2 Cloudy, 3 Sunny, 4 Snowy) xA = Highnibble Druck BB = Lowbyte Druck CS = Checksumme Indoor: 42 80 07 01 1F 50 00 00 20 59 FK xS AA BB CC DD xx xx xx CS => $1F=31% $107=263/10=26.3Grad FK = Framekennung S = Sensorkennung $0=Indoor Channel 0 AA = Temperatur Lowbyte BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt CC = Feuchte in Prozent DD = Spannungsversorgung ? (50 kein AC, 6E AC ok ?) CS = Checksumme |
Outdoor: 42 81 CA 00 26 3C 00 00 20 0F FK xS AA BB CC xx xx xx xx CS => $CA=202/10=20.2 $26=38% FK = Framekennung S = Sensorkennung $1=Outdoor Channel 1 AA = Temperatur Lowbyte BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt CC = Feuchte in Prozent CS = Checksumme Wind: 48 00 0C 0C C0 00 00 20 40 FK xA xx BB xx xx xx xx CS => Windrichtung Nord, Geschwindigkeit 1,2m/s=4,32km/h FK = Framekennung xA = Windrichtung (Nord=0, Reihenfolge N-E-S-W = $00...$0F) BB = Windgeschwindigkeit (*0,1 ergibt m/s dann mal 3,6 ergibt km/h) CS = Checksumme |
|
Externer Temp/Feuchte Sensor THGR810 : 42 42 E9 00 2B 64 00 00 20 1C FK xS AA BB CC xx xx xx xx CS => $E9=233/10=23.3 $2B=43% Kanal2 FK = Framekennung S = Sensorkennung $2=Outdoor Channel $2..$A=Dipschalter im Sender AA = Temperatur Lowbyte BB = Temperatur Highbyte (Temperatur durch 10 Teilen), MSB bei Negativ gesetzt CC = Feuchte in Prozent CS = Checksumme |
|
Regenmesser: 41 00 00 00 00 00 00 57 01 13 0D 0F 03 07 D2 FK xx xx CC DD xx xx AA BB xx xx xx xx xx CS => $157=343/100=3.43inch*25,4=87,12mm FK = Framekennung AA = Gesamtmenge Lowbyte BB = Gesamtmente Highbyte (durch 100 teilen, Einheit Inch!) CC = aktuelle Menge Lowbyte DD = aktuelle Menge Highbyte (durch 100 teilen, Einheit Inch!) CS = Checksumme |
|
Externer UVN800 UV Sensor: 47 01 05 4D FK xx AA CS => UV Index 5 FK = Framekennung AA = UV Index ($00..??) CS = Checksumme |
Wer noch weitere Informationen im Byte-Strom finden konnte, kann sich gerne bei mir melden.