Ambient Weather Support
Telnet Protocol
The following is the Telnet protocol for direct communication protocol to the specified products listed below:
- Data exchange format:
Fixed header, CMD, SIZE, DATA1, DATA2, … , DATAn, CHECKSUM
Fixed header: 2 bytes, header is fixed as 0xffff
CMD: 1 byte, Command
SIZE: 1 byte, packet size,counted from CMD till CHECKSUM
DATA: n bytes, payloads,variable length
CHECKSUM: 1 byte, CHECKSUM=CMD+SIZE+DATA1+DATA2+…+DATAn
- Command and data structure definition:
typedef enum {
//
CMD_WRITE_SSID = 0x11,// send SSID and Password to WIFI module
CMD_BROADCAST = 0x12,// UDP cast for device echo,answer back data size is 2 Bytes
CMD_READ_ECOWITT = 0x1E,// read aw.net setting
CMD_WRITE_ ECOWITT = 0x1F, //write back awt.net setting
CMD_READ_WUNDERGROUND = 0x20,// read Wunderground setting
CMD_WRITE_WUNDERGROUND = 0x21, //write back Wunderground setting
CMD_READ_WOW = 0x22, // read WeatherObservationsWebsite setting
CMD_WRITE_WOW = 0x23, // write back WeatherObservationsWebsite setting
CMD_READ_WEATHERCLOUD = 0x24,// read Weathercloud setting
CMD_WRITE_WEATHERCLOUD = 0x25, //write back Weathercloud setting
CMD_READ_SATION_MAC = 0x26,// read MAC address
CMD_READ_CUSTOMIZED = 0x2A,// read Customized sever setting
CMD_WRITE_CUSTOMIZED = 0x2B, // write back Customized sever setting
CMD_WRITE_UPDATE = 0x43,// firmware upgrade
CMD_READ_FIRMWARE_VERSION = 0x50,// read current firmware version number
CMD_READ_USR_PATH = 0x51,
CMD_WRITE_USR_PATH = 0x52,
// the following command is only valid for GW1000, WH2650 and wn1900支持:
CMD_GW1000_LIVEDATA = 0x27, // read current data,reply data size is 2bytes.
CMD_GET_SOILHUMIAD = 0x28,// read Soilmoisture Sensor calibration parameters
CMD_SET_SOILHUMIAD = 0x29, // write back Soilmoisture Sensor calibration parameters
CMD_GET_MulCH_OFFSET = 0x2C, // read multi channel sensor offset value
CMD_SET_MulCH_OFFSET = 0x2D, // write back multi channel sensor OFFSET value
CMD_GET_PM25_OFFSET = 0x2E, // read PM2.5OFFSET calibration data
CMD_SET_PM25_OFFSET = 0x2F, // writeback PM2.5OFFSET calibration data
CMD_READ_SSSS = 0x30,// read system info
CMD_WRITE_SSSS = 0x31,// write back system info
CMD_READ_RAINDATA = 0x34,// read rain data
CMD_WRITE_RAINDATA = 0x35, // write back rain data
CMD_READ_GAIN = 0x36, // read rain gain
CMD_WRITE_GAIN = 0x37, // write back rain gain
CMD_READ_CALIBRATION = 0x38,// read sensor set offset calibration value
CMD_WRITE_CALIBRATION = 0x39,// write back sensor set offset value
CMD_READ_SENSOR_ID = 0x3A,// read Sensors ID
CMD_WRITE_SENSOR_ID = 0x3B, // write back Sensors ID
CMD_READ_SENSOR_ID_NEW = 0x3C,//// this is reserved for newly added sensors
CMD_WRITE_REBOOT = 0x40,// system restart
CMD_WRITE_RESET = 0x41,// reset to default
}CMD_LT;
//********************************************************************************************
#define SOIL_CH_MAX 8
#define WH31_CHANNEL 8
#define PM25_CH_MAX 4
#define LEAK_CH_MAX 4
typedef enum
{
//eWH24_SENSOR = 0x00,
eWH65_SENSOR = 0x00,
//eWH69_SENSOR,
eWH68_SENSOR,
eWH80_SENSOR, //80H(
eWH40_SENSOR,
eWH25_SENSOR,
eWH26_SENSOR,
eWH31_SENSORCH1,
eWH31_SENSORCH2,
eWH31_SENSORCH3,
eWH31_SENSORCH4,
eWH31_SENSORCH5,
eWH31_SENSORCH6,
eWH31_SENSORCH7,
eWH31_SENSORCH8,
eWH51_SENSORCH1,
eWH51_SENSORCH2,
eWH51_SENSORCH3,
eWH51_SENSORCH4,
eWH51_SENSORCH5,
eWH51_SENSORCH6,
eWH51_SENSORCH7,
eWH51_SENSORCH8,
eWH41_SENSORCH1,
eWH41_SENSORCH2,
eWH41_SENSORCH3,
eWH41_SENSORCH4,
//————-
eWH57_SENSOR,
eWH55_SENSORCH1,
eWH55_SENSORCH2,
eWH55_SENSORCH3,
eWH55_SENSORCH4,
eWH34_SENSORCH1 = 31,
eWH34_SENSORCH2 = 32,
eWH34_SENSORCH3 = 33,
eWH34_SENSORCH4 = 34,
eWH34_SENSORCH5 = 35,
eWH34_SENSORCH6 = 36,
eWH34_SENSORCH7 = 37,
eWH34_SENSORCH8 = 38,
// the sensor sequence can not be altered!!
//————-
eMAX_SENSOR
}SENSOR_IDT;
//——————————————————————————————————————————————–
#define ITEM_INTEMP 0x01//Indoor Temperature (℃) 2
#define ITEM_OUTTEMP 0x02//Outdoor Temperature (℃) 2
#define ITEM_DEWPOINT 0x03//Dew point (℃) 2
#define ITEM_WINDCHILL 0x04//Wind chill (℃) 2
#define ITEM_HEATINDEX 0x05//Heat index (℃) 2
#define ITEM_INHUMI 0x06//Indoor Humidity (%) 1
#define ITEM_OUTHUMI 0x07//Outdoor Humidity (%) 1
#define ITEM_ABSBARO 0x08//Absolutely Barometric (hpa) 2
#define ITEM_RELBARO 0x09//Relative Barometric (hpa) 2
#define ITEM_WINDDIRECTION 0x0A//Wind Direction (360°) 2
#define ITEM_WINDSPEED 0x0B//Wind Speed (m/s) 2
#define ITEM_GUSTSPEED 0x0C//Gust Speed (m/s) 2
#define ITEM_RAINEVENT 0x0D//Rain Event (mm) 2
#define ITEM_RAINRATE 0x0E//Rain Rate (mm/h) 2
#define ITEM_RAINHOUR 0x0F//Rain hour (mm) 2
#define ITEM_RAINDAY 0x10//Rain Day (mm) 2
#define ITEM_RAINWEEK 0x11//Rain Week (mm) 2
#define ITEM_RAINMONTH 0x12//Rain Month (mm) 4
#define ITEM_RAINYEAR 0x13//Rain Year (mm) 4
#define ITEM_RAINTOTALS 0x14//Rain Totals (mm) 4
#define ITEM_LIGHT 0x15//Light (lux) 4
#define ITEM_UV 0x16//UV (uW/m2) 2
#define ITEM_UVI 0x17//UVI (0-15 index) 1
#define ITEM_TIME 0x18//Date and time 6
#define ITEM_DAYLWINDMAX 0X19//Day max wind(m/s) 2
#define ITEM_TEMP1 0x1A//Temperature 1(℃) 2
#define ITEM_TEMP2 0x1B//Temperature 2(℃) 2
#define ITEM_TEMP3 0x1C//Temperature 3(℃) 2
#define ITEM_TEMP4 0x1D//Temperature 4(℃) 2
#define ITEM_TEMP5 0x1E//Temperature 5(℃) 2
#define ITEM_TEMP6 0x1F//Temperature 6(℃) 2
#define ITEM_TEMP7 0x20//Temperature 7(℃) 2
#define ITEM_TEMP8 0x21//Temperature 8(℃) 2
#define ITEM_HUMI1 0x22//Humidity 1, 0-100% 1
#define ITEM_HUMI2 0x23//Humidity 2, 0-100% 1
#define ITEM_HUMI3 0x24//Humidity 3, 0-100% 1
#define ITEM_HUMI4 0x25//Humidity 4, 0-100% 1
#define ITEM_HUMI5 0x26//Humidity 5, 0-100% 1
#define ITEM_HUMI6 0x27//Humidity 6, 0-100% 1
#define ITEM_HUMI7 0x28//Humidity 7, 0-100% 1
#define ITEM_HUMI8 0x29//Humidity 8, 0-100% 1
#define ITEM_PM25_CH1 0x2A//PM2.5 Air Quality Sensor(μg/m3) 2
#define ITEM_SOILTEMP1 0x2B//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE1 0x2C//Soil Moisture(%) 1
#define ITEM_SOILTEMP2 0x2D//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE2 0x2E//Soil Moisture(%) 1
#define ITEM_SOILTEMP3 0x2F//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE3 0x30//Soil Moisture(%) 1
#define ITEM_SOILTEMP4 0x31//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE4 0x32//Soil Moisture(%) 1
#define ITEM_SOILTEMP5 0x33//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE5 0x34//Soil Moisture(%) 1
#define ITEM_SOILTEMP6 0x35//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE6 0x36//Soil Moisture(%) 1
#define ITEM_SOILTEMP7 0x37//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE7 0x38//Soil Moisture(%) 1
#define ITEM_SOILTEMP8 0x39//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE8 0x3A//Soil Moisture(%) 1
#define ITEM_SOILTEMP9 0x3B//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE9 0x3C//Soil Moisture(%) 1
#define ITEM_SOILTEMP10 0x3D//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE10 0x3E//Soil Moisture(%) 1
#define ITEM_SOILTEMP11 0x3F//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE11 0x40//Soil Moisture(%) 1
#define ITEM_SOILTEMP12 0x41//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE12 0x42//Soil Moisture(%) 1
#define ITEM_SOILTEMP13 0x43//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE13 0x44//Soil Moisture(%) 1
#define ITEM_SOILTEMP14 0x45//Soil Temperature(℃) 2
#define ITEM_SOILMOISTURE14 0x46//Soil Moisture(%) 1
#define ITEM_SOILTEMP15 0x47//Soil Temperature(℃) &