Microsoft communities

I’m being checking all those Microsoft internal forums/communities/events for ever and I never being able to find them productive.

I always have the impression that they are not there to be useful.
Microsoft have literal Billions of users and they actively promote those communities and still they are depressing desert most of the time and they don’t produce anything useful.
Google, or even Bing, rarely return any valuable result from those places, it’s always stack overflow or some personal blog.

What’s the deal there?

WeatherFlow Tempest API & Developer Platform

Most third-party Tempest apps and integrations are designed for the personal use by a single Tempest System owner. 

To start using the REST or WS API, all you need is an access token. Your app or integration must ensure that the user viewing the station data is the owner of that station by authenticating the user’s account. There are two options for authentication: Oauth or the Personal Access Token.

To create a WeatherFlow login:
Download the Tempest app from the app stores.

GW1000 EcoWitt

WIFI Weather Station Gateway: Receives Ecowitt and Ambient Weather sensor data from external sensors (sold separately): outdoor temperature and humidity, multi-channel (max 8) temperature and humidity, rain, wind, soil moisture(max 8), PM2.5(max 4) and so on; Allowing you to remote monitor weather data on our free WS View APP

Studing a bit their API to access the data over a TCP “pull” connection

Cumulus MX source implemented it and their code is opensource

Specific part about the GW1000

and an extract to showcase how elegant is their solution (not):

// sample data = in-temp, in-hum, abs-baro, rel-baro, temp, hum, dir, speed, gust, light, UV uW, UV-I, rain-rate, rain-day, rain-week, rain-month, rain-year, PM2.5, PM-ch1, Soil-1, temp-2, hum-2, temp-3, hum-3, batt
//byte[] data = new byte[] { 0xFF,0xFF,0x27,0x00,0x5D,0x01,0x00,0x83,0x06,0x55,0x08,0x26,0xE7,0x09,0x26,0xDC,0x02,0x00,0x5D,0x07,0x61,0x0A,0x00,0x89,0x0B,0x00,0x19,0x0C,0x00,0x25,0x15,0x00,0x00,0x00,0x00,0x16,0x00,0x00,0x17,0x00,0x0E,0x00,0x3C,0x10,0x00,0x1E,0x11,0x01,0x4A,0x12,0x00,0x00,0x02,0x68,0x13,0x00,0x00,0x14,0xDC,0x2A,0x01,0x90,0x4D,0x00,0xE3,0x2C,0x34,0x1B,0x00,0xD3,0x23,0x3C,0x1C,0x00,0x60,0x24,0x5A,0x4C,0x04,0x00,0x00,0x00,0xFF,0x5C,0xFF,0x00,0xF4,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xBA };
//byte[] data = new byte[] { 0xFF, 0xFF, 0x27, 0x00, 0x6D, 0x01, 0x00, 0x96, 0x06, 0x3C, 0x08, 0x27, 0x00, 0x09, 0x27, 0x49, 0x02, 0x00, 0x16, 0x07, 0x61, 0x0A, 0x00, 0x62, 0x0B, 0x00, 0x00, 0x0C, 0x00, 0x06, 0x15, 0x00, 0x01, 0x7D, 0x40, 0x16, 0x00, 0x00, 0x17, 0x00, 0x0E, 0x00, 0x00, 0x10, 0x00, 0x00, 0x11, 0x00, 0xF7, 0x12, 0x00, 0x00, 0x01, 0x5C, 0x13, 0x00, 0x00, 0x15, 0x54, 0x2A, 0x06, 0x40, 0x4D, 0x00, 0xAB, 0x1A, 0xFF, 0x3E, 0x22, 0x39, 0x1B, 0x00, 0x3D, 0x23, 0x51, 0x1C, 0x00, 0xA0, 0x24, 0x45, 0x1D, 0x00, 0xA4, 0x25, 0x3C, 0x1E, 0x00, 0x9D, 0x26, 0x3E, 0x4C, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xA4, 0x00, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x8F };

        // expected response
        // 0 - 0xff - header
        // 1 - 0xff
        // 2 - 0x27 - live data command
        // 3 - 0x?? - size of response1
        // 4 - 0x?? - size of response2
        // 5-X      - data - NOTE format is Bigendian
        // Y - 0x?? - checksum