A little over a year ago I received an Ambient Weather WS-1200-IP station 
with the ObserverIP module and was discouraged with the lack of options to 
get data off it and into weewx. I then saw that there was an ObserverIP 
driver, but it did screen scraping which was causing my ObserverIP to 
timeout significantly throughout the day. Not ideal. I wrote up this blog 
post ( 
https://obrienlabs.net/redirecting-weather-station-data-from-observerip/ -- 
some of you are familiar with it ) on how to change the ObserverIP to send 
the data to a custom server instead of wunderground. Once on that server, 
PHP simply submits data to a socket server. The socketlogger driver I 
created connects to the socket and grabs whatever data comes in off the 
socket. 

I've been using this driver reliably for the last year to archive my data, 
and offer real-time live weather data on my website ( 
https://belchertownweather.com ). I had no plans to ask for it to be 
included with weewx until today when a user posted on my GitHub repo that 
it should be sent up to be included in weewx. I know it's helped a few 
other users, so maybe it's worth a shot? So, for your consideration, I'm 
checking to see if you think this would be useful to be packaged with 
weewx? 

While I am using this driver with the WS-1200-IP, it can work with the 
Ambient Weather WS-0900-IP, the WS-1400-IP or any other scenario where you 
can/want to send your weather data to a socket server.  Some pros of using 
socketlogger with the ObserverIP unit: 1) No screen scraping, so the 
ObserverIP is hands off and 2) Instantly log data as it comes in (about 
every 16 seconds give or take). 

The socketlogger driver is based on the hackulink driver, which was based 
on the weewx wmr100 driver. Upon startup of weewx, it connects to a socket 
server and listens for data. For simplicity, data keys on the socket must 
be in the weewx MySQL column format. As a crude way to make sure weewx logs 
what is valid, it checks that the first characters on the line begins with 
"outTemp=". If the line begins with something else, the driver discards it.

The driver can be found 
here: https://github.com/poblabs/weewx-socketlogger. 

Sample socket data is here. Note: I'm using this socket for other methods 
(such as live data on my website). The driver only grabs the key values 
found in the database column names.

outTemp=20.8,outHumidity=37,dewpoint=-1.3,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=55.32,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.70,txBatteryStatus=0,epoch=1485784307,timestamp=
Jan_30_2017_8:51:47_am,wunderground=success
outTemp=20.8,outHumidity=37,dewpoint=-1.3,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=54.90,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.70,txBatteryStatus=0,epoch=1485784322,timestamp=
Jan_30_2017_8:52:02_am,wunderground=success
outTemp=20.8,outHumidity=37,dewpoint=-1.3,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=55.65,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.70,txBatteryStatus=0,epoch=1485784336,timestamp=
Jan_30_2017_8:52:16_am,wunderground=success
outTemp=20.8,outHumidity=36,dewpoint=-2.0,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=55.15,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.70,txBatteryStatus=0,epoch=1485784352,timestamp=
Jan_30_2017_8:52:32_am,wunderground=success
outTemp=20.8,outHumidity=36,dewpoint=-2.0,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=55.15,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.71,txBatteryStatus=0,epoch=1485784356,timestamp=
Jan_30_2017_8:52:36_am,wunderground=success
outTemp=20.8,outHumidity=36,dewpoint=-2.0,windchill=20.8,windDir=26,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=54.90,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.71,txBatteryStatus=0,epoch=1485784370,timestamp=
Jan_30_2017_8:52:50_am,wunderground=success
outTemp=20.8,outHumidity=36,dewpoint=-2.0,windchill=20.8,windDir=27,
windSpeed=0.00,windGust=0.00,dailyrain=0.00,radiation=56.28,UV=1,inTemp=68.4
,inHumidity=30,barometer=29.71,txBatteryStatus=0,epoch=1485784384,timestamp=
Jan_30_2017_8:53:04_am,wunderground=success


I'm open to whichever way this goes. As mentioned, I've been using it for a 
year without the thought of asking for it to be included :) 

Let me know if you'd like to see more information, sample data, snippets 
from the syslog, or anything else?

Thanks!

Reply via email to