My Twitter weather bot
This is a weather bot that tweets conditions hourly from Morningside, Whangārei, Aotearoa New Zealand on twitter.
Stuff used #
- .NET Core
- TweetInviAPi for Twitter
- ScottPlot for Charts
- Raspberry Pi 3B
- Realtek clone USB to Serial adapter
- A LaCrosse WS-2355 Weather Station
- My code on github
The LaCrosse WS-2355 #
An ordinary weather station with indoor & outdoor temperature and humidity, rain and wind. A slow, crude and frustrating API of sorts is available via RS232. The protocol was reverse engineered by the Open2300 Project. Direct access to the internal memory is provided, most of which is weather data, often in BCD format.
As noted by Open2300, the API access is very unreliable. Data read/write operations often need to be retried several times to work. The port bitrate of 2400(8N1) does not help with this. I use a retry count of 10 on each register read operation.
The indoor unit can connect to the outdoor unit either with a cable or wirelessly. A cable can provide primary power to the outdoor unit, but a set of batteries alone last for quite a while. The cable could also be a bad idea if lightning might strike nearby. I use the wireless and it works reliably anywhere in the house.
The Raspberry Pi #
Nothing remarkable, a Model 3B in the stock case, housed in a cupboard. Despite the convenient power point, there's no ethernet here so we're using WiFi, which performs well enough. All that's plugged in is the power supply and the USB-Serial adapter to the weather station.