Protokoll und Datensatzbeschreibung
Nachfolgend ist das Protokoll und Datensatzbeschreibung der ELV-Wetterstation ws500/ws550/ws777 beschrieben.
Die Datenkommunikation mit der Wetterstation erfolgt mit Hilfe von hexadezimalen Zahlen, die entweder einem bestimmten Steuercodewort entsprechen, oder den/die eigentlichen Messwerte repräsentieren.
Die Messwerte können in der Regel direkt in die dezimalen Messwerte umgerechnet werden. Die Kommandos zur Datenkommunikation erfolgt durch eine Kennzeichnung am Satzanfang durch die beiden Werte FC FE sowie am Ende durch FC.
Werte, die gleich der Bytes FC FE und F8 sind, werden mit Hilfe des „Escape“ Byte F8 markiert. Dabei wird F8 dem eigentlichen Rückgabewert vorangestellt und der Messwert um 1 erhöht.
Escape-Handling
Das nachfolgende Besipiel veranschaulicht dieses Escape-Handling:
F7 => F7 F8 => F8 F9 F9 => F9 FA => FA FB => FB FC => F8 FD FD => FD FE => F8 FF FF => FF
Bei negativen Temperaturen ist das erste Byte immer FF und das zweite Byte entspricht dem Messwert minus 25,5
Beispiel: FF F6 ⇒ 255 246 | 246 - 255 = - 9 | Messwert entspricht -0,9 °C
Bei Temperaturen größer 25,5 °C ist das erste Byte immer 01.
Datensatzbeschreibungen
aktueller Datensatz
Der aktuelle Meßwertedatensatz ist folgendermaßen aufgebaut:
Die Byte-Nummerierung bezieht sich nur auf
Feld-Nummer: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Verwendung : T1 T1 F1 T2 T2 F2 T3 T3 F3 T4 T4 F4 T5 T5 F5 T6 T6 F6 T7 T7 F7 T8 T8 F8 T9 T9 F9 RA IN WI ND *1 *1 SONNE TI TI FI DRUCK WW ABSCHLUSS-CODE Muster-Satz: FE 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AD 48 00 02 00 00 2C 00 00 96 00 EE 39 03 B6 01 FC Byte 00 = FE (Kommunikation mit der WS starten) Byte 01 = 33 d.h. aktuellen Datensatz abholen Byte 02 - 04 = Fühler 1 Temperatur (02 und 03) und Feuchte (04) Byte 05 - 07 = Fühler 2 Temperatur (05 und 06) und Feuchte (07) Byte 08 - 10 = Fühler 3 Temperatur (08 und 09) und Feuchte (10) Byte 11 - 13 = Fühler 4 Temperatur (11 und 12) und Feuchte (13) Byte 14 - 16 = Fühler 5 Temperatur (14 und 15) und Feuchte (16) Byte 17 - 19 = Fühler 6 Temperatur (17 und 18) und Feuchte (19) Byte 20 - 22 = Fühler 7 Temperatur (20 und 21) und Feuchte (22) Byte 23 - 25 = Fühler 8 Temperatur (23 und 24) und Feuchte (25) Byte 26 - 28 = Kombiaußenfühler Temperatur (26 und 27) und Feuchte (28) Byte 29 - 30 = Regenwippenzähler Byte 31 - 32 = Windgeschwindigkeit (in m/s) Byte 33 - 34 = Windrichtung (33){Winkel = Wert *5 in °} und Schwankung (34) {Winkel = Wert *5 in °} Byte 35 - 36 = Sonnenscheindauer in Minuten (fortlaufender Minutenzähler) Byte 37 - 39 = Innenfühler Temperatur (37 und 38) und Feuchte (39) Byte 40 - 41 = Luftdruck (absolut) in hPa Byte 42 = ?? ist das die Wetterwilli-Kodierung? {Kodierung noch unklar} Byte 43 = FC Abschluss-Byte
historischer Datensatz
Die Byte-Nummerierung bezieht sich nur auf
Feld-Nummer: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Verwendung : TI ME T1 T1 F1 T2 T2 F2 T3 T3 F3 T4 T4 F4 T5 T5 F5 T6 T6 F6 T7 T7 F7 T8 T8 F8 T9 T9 F9 RA IN WI ND *1 *1 SONNE TI TI FI DRUCK WW ABSCHLUSS-CODE Muster-Satz: FE 31 80 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AD 48 00 02 00 00 2C 00 00 96 00 EE 39 03 B6 01 FC Byte 00 = FE (Kommunikation mit der WS starten) Byte 01 = 31 d.h. historischen Datensatz abholen Byte 02 - 03 = ist immer 80 00 bytw 04 - 05 = Alter des Datensatzes in Minuten Byte 06 - 08 = Fühler 1 Temperatur (06 und 07) und Feuchte (08) Byte 06 - 08 = Fühler 2 Temperatur (09 und 10) und Feuchte (11) Byte 09 - 11 = Fühler 3 Temperatur (12 und 13) und Feuchte (14) Byte 12 - 14 = Fühler 4 Temperatur (15 und 16) und Feuchte (17) Byte 15 - 17 = Fühler 5 Temperatur (18 und 19) und Feuchte (20) Byte 18 - 20 = Fühler 6 Temperatur (21 und 22) und Feuchte (23) Byte 21 - 23 = Fühler 7 Temperatur (24 und 25) und Feuchte (26) Byte 24 - 26 = Fühler 8 Temperatur (27 und 28) und Feuchte (29) Byte 27 - 29 = Kombiaußenfühler Temperatur (30 und 31) und Feuchte (32) Byte 33 - 34 = Regenwippenzähler Byte 35 - 36 = Windgeschwindigkeit (in m/s) Byte 37 - 38 = Windrichtung (37){Winkel = Wert *5 in °} und Schwankung (38) {Winkel = Wert *5 in °} Byte 39 - 40 = Sonnenscheindauer in Minuten (fortlaufender Minutenzähler) Byte 41 - 43 = Innenfühler Temperatur (41 und 42) und Feuchte (43) Byte 44 - 45 = Luftdruck (absolut) in hPa Byte 46 = ?? ist das die Wetterwilli-Kodierung? {Kodierung noch unklar} Byte 47 = FC Abschluss-Byte
Konfigurationsdatensatz
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
T1 T2 T3 T4 T5 T6 T7 T8 T9 DD HOEHE WIPPE ABSCHLUSS-CODE
FE 32 00 00 00 00 00 00 00 00 10 05 01 F7 01 27 FC
Byte 00 = FE (Kommunikation mit der WS starten)
Byte 01 = 32 d.h. aktuelle Konfiguration auslesen
Byte 02 = Fühler 1 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 03 = Fühler 2 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 04 = Fühler 3 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 05 = Fühler 4 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 06 = Fühler 5 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 07 = Fühler 6 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 08 = Fühler 7 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 09 = Fühler 8 vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 10 = Kombiaußenfühler vorhanden? (00 == nein, 10 == ja >10 == Dropouts (Wert - 10 == Anzahl der Dropouts)
Byte 11 = Intervall der abgespeicherten Datensätze
Byte 12 - 13 = Standort der Station über NN in mtr.
Byte 14 - 15 = Faktor == Wert /1000 für die Berechnung der Regenmenge pro Wippenschlag
Byte 16 = FC Abschluss-Byte