Dataformat WS300 / Protocol
Jörg Köhler did also a great work and deliver the prtotol for the WS 300 PC. The protocol seems to be very similar to the protocol utilized for WS500.
TODO: translate data format to englisch
Protokoll der WS300PCgrundsätzlich gilt: die kommunikation der ws300 erfolgt im hexadezimalen Zahlenbereich
Die werte der station erhält man durch einfaches umrechnen in dezimal
Die Kennzeichnung der Kommandos erfolgt durch 2 Byte am Anfang (FE 31) und das EndByte (FC)
escape handling = 0xf8
Um Werte zu markieren die gleich der Bytes FC FE und F8 sind wird dem jeweiligen Byte das "Escape" Byte F8
vorangestellt und der eigentliche Wert um 1 erhöhtBeispiel der Werte:
F7 => F7
F8 => F8 F9
F9 => F9
FA => FA
FB => FB
FC => F8 FD
FD => FD
FE => F8 FF
FF => FF
T1 F1 ->dez = Temp Feuchte Zusatz-Sensoren
T0 F0 Innen Sensor
T9 F9 KombisensorRAIN 00BB ->dez ( Nur Zähler (z.B 00BB 187 Wippenschläge * 0,295 mm = 55,1 mm Regen total))
Zähler Regen wird bei Sensorreset zurückgesetzt auf 0WIND 003F ->dez km/h
TX->dez = Alter Datensatz in Min.
Bei neg. Temp 1. Byte FF ->2. Byte dez minus 25,5 (z.B FF F6 -> 255 246 ( 246 -255 = -9 ) = -0,9 Grad
Bei Temperaturen größer 25,5 Grad 1. Byte = 01
-------------------------------------------------------------------------------------------------------Initialisierung der Station:Um mit dem FTDI Treiber (
http://www.ftdichip.com/) ( Windows , Linux) die Station ansprechen zu können,
ist folgende InitSequenz Nötig:FT_Open(0, &ftHandle);
FT_SetVIDPID(1027,57590); // ws300
FT_SetVIDPID(1027,57577); // ws500
FT_SetBaudRate(ftHandle, 19200);
FT_SetDataCharacteristics (ftHandle, FT_BITS_8 ,FT_STOP_BITS_1,FT_PARITY_EVEN);
FT_ClrRts(ftHandle);
-------------------------------------------------------------------------------------------------------
NEXT_RECORD - 43 Bytes FE 31 FC
? ? TX TX T1 T1 F1 T2 T2 F2 T3 T3 F3 T4 T4 F4 T5 T5 F5 T6 T6 F6 T7 T7 F7 T8 T8 T8 T9 T9 F9 RA-IN WI-ND T0 T0 F0 P-abs
FE 31 80 80 00 54 FF F6 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF F4 4D 00 BB 00 3F 00 C9 29 03 86 FC FCCURRENT_RECORD - 40 Bytes FE 33 FC
T1 T1 F1 T2 T2 F2 T3 T3 F3 T4 T4 F4 T5 T5 F5 T6 T6 F6 T7 T7 F7 T8 T8 T8 T9 T9 F9 RA-IN WI-ND T0 T0 F0 P-abs *1
FE 33 FF F0 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF F0 4D 00 BB 00 56 00 D8 29 03 85 13 FC*1 Wettervorhersage Wert 0 = Sonnig ;1 = Heiter ; 2 = Bewölkt ; 3 = Regen
( *1 Warscheinlich auch Regensoforterkennung kodiert)DEVEOLOP_STATUS - 17 Bytes FE 32 FC
S1 S2 S3 S4 S5 S6 S7 S8 S9 TX m üNN mm/Wippe
FE 32 13 00 00 00 00 00 00 00 10 06 02 A8 01 27 FCSensoren Wert 10= Sensor vorhanden Werte größer 10 SensorausfallEinstellungen uebertragen - 8Bytes FE 30 FC
TX m üNN mm/Wippe
FE 30 06 02 AD 01 27 FC
---------------------
WS 500 WS777
---------------------
NEXT_RECORD 47 Byte
Alter 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 *2 *2 T0 T0 F0 Druck
FE 31 80 80 00 77 00 9C 43 00 AB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7D 3F 00 16 00 2F 36 03 0D A4 00 AC 3E 03 F0 FC*1 36 = angle 54 *5 = 270 Grad
*1 03 = range 03 *5 = 15 Grad Schwankung
*2 0DA4 Sonnenscheindauer in Minuten ( !Noch nicht endgültig geklärt!)CURRENT_RECORD (44 Byte) ist gleich aufgebaut aber ohne Alter Datensatz
DEVEOLOP_STATUS FIRMWARE ist identisch WS300PC WS500