WeeWX UDP driver for WeatherFlow station

Ian
Thanks very much for the further clarifications, that worked a treat and I seem to have the driver installed now. :slight_smile:
An I think I also managed to add the sensor map…
so I am connecting to my Pi by ssh from my Mac… how do I verify that its working as per the weewx install instructions:

Verify

After about 5 minutes, open the station web page in a web browser. You should see your station information and data. If your hardware supports hardware archiving, then how long you wait will depend on the archive interval set in your hardware.

file:///var/www/html/weewx/index.html

1 Like

Hi @ad6699,
You can use SSH to see if the html file is being updated every 5 minutes:
ls -halt /var/www/html/weewx/
Your web browser on a Mac is Safari or you may also have chrome, either will work.
I dont know if Apache web server is installed by default in your pi setup. If it is then it will serve the html files from /var/www/html/ to your browser .
In the browser address bar type the same IP address that you are using for your SSH connection but without the pi@ and then on the end add /weewx/index.html
Once you can see that it is updating then it means the weewx UDP driver is working and your next questions might be researched in the weewx forums. We should avoid straying off topic here :slight_smile:
good luck, cheers Ian :slight_smile:

Once again Ian, thanks very much for your help!
it appears my files are updating every 5 minutes so a good start!
I get a 404-not found error when I try to open the webpage from my Mac, so guess there is no web server installed, assuming this is the correct formatting: http://192.168.1.43/var/www/html/ ?
I can connect to my Pi via a webbrowser to view my ADS-B data… would that inidcate that there should be a server installed, or is that possibly part of the dump1090-fa app?

try http://192.168.1.43/weewx

and if that shows the default skin you can try http://192.168.1.43/weewx/belchertown

3 Likes

Yes that(/weewx) worked :grin:! I can see my data yeehah!
the /belchertown was 404 - not found again… anyway happy that im all up and running now … thanks to everyone for there help… it is really appreciated :+1:

1 Like

The pi does not install a webserver by default. You have to install one.

sudo apt-get install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

1 Like

@vinceskahan

i got a strange issue, 6 days ago weewz stopped seeing the UDP packets. any ideas where to start looking before i nuke the server and start over
i can ping the WF hub form the server which is on the same LAN.

Oct 26 19:46:16 weewx weewx[1411]: * Starting weewx weather system weewx
Oct 26 19:46:17 weewx weewx[1439] INFO main: Initializing weewx version 4.1.1
Oct 26 19:46:17 weewx weewx[1439] INFO main: Using Python 3.8.5 (default, Jul 28 2020, 12:59:40) #012[GCC 9.3.0]
Oct 26 19:46:17 weewx weewx[1439] INFO main: Platform Linux-5.4.0-52-generic-x86_64-with-glibc2.29
Oct 26 19:46:17 weewx weewx[1439] INFO main: Locale is ‘C.UTF-8’
Oct 26 19:46:17 weewx weewx[1439] INFO main: PID file is /var/run/weewx.pid
Oct 26 19:46:17 weewx weewx[1442] INFO main: Using configuration file /etc/weewx/weewx.conf
Oct 26 19:46:17 weewx weewx[1442] INFO main: Debug is 1
Oct 26 19:46:17 weewx weewx[1442] DEBUG main: Initializing engine
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Loading station type WeatherFlowUDP (user.weatherflowudp)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: driver version is 1.11
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: sensor map is {‘outTemp’: ‘air_temperature.ST-00015203.obs_st’, ‘outHumidity’: ‘relative_humidity.ST-00015203.obs_st’, ‘pressure’: ‘station_pressure.ST-00015203.obs_st’, ‘outTempBatteryStatus’: ‘battery.ST-00015203.obs_st’, ‘windSpeed’: ‘wind_speed.ST-00015203.rapid_wind’, ‘windDir’: ‘wind_direction.ST-00015203.rapid_wind’, ‘lux’: ‘illuminance.ST-00015203.obs_st’, ‘UV’: ‘uv.ST-00015203.obs_st’, ‘rain’: ‘rain_accumulated.ST-00015203.obs_st’, ‘windBatteryStatus’: ‘battery.ST-00015203.obs_st’, ‘radiation’: ‘solar_radiation.ST-00015203.obs_st’}
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: *** Sensor names per packet type
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet obs_air: (‘time_epoch’, ‘station_pressure’, ‘air_temperature’, ‘relative_humidity’, ‘lightning_strike_count’, ‘lightning_strike_avg_distance’, ‘battery’, ‘report_interval’)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet obs_sky: (‘time_epoch’, ‘illuminance’, ‘uv’, ‘rain_accumulated’, ‘wind_lull’, ‘wind_avg’, ‘wind_gust’, ‘wind_direction’, ‘battery’, ‘report_interval’, ‘solar_radiation’, ‘local_day_rain_accumulation’, ‘precipitation_type’, ‘wind_sample_interval’)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet rapid_wind: (‘time_epoch’, ‘wind_speed’, ‘wind_direction’)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet evt_precip: (‘time_epoch’,)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet evt_strike: (‘time_epoch’, ‘distance’, ‘energy’)
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: packet obs_st: (‘time_epoch’, ‘wind_lull’, ‘wind_avg’, ‘wind_gust’, ‘wind_direction’, ‘wind_sample_interval’, ‘station_pressure’, ‘air_temperature’, ‘relative_humidity’, ‘illuminance’, ‘uv’, ‘solar_radiation’, ‘rain_accumulated’, ‘precipitation_type’, ‘lightning_strike_avg_distance’, ‘lightning_strike_count’, ‘battery’, ‘report_interval’)
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Oct 26 19:46:17 weewx weewx[1411]: …done.
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
Oct 26 19:46:17 weewx systemd[1]: Started LSB: weewx weather system.
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: StdConvert target unit is 0x1
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdQC
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.manager: Daily summary version is 2.0
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.wxservices: The following values will be calculated: pressure=prefer_hardware, altimeter=prefer_hardware, appTemp=prefer_hardware, barometer=prefer_hardware, beaufort=prefer_hardware, cloudbase=prefer_hardware, dewpoint=prefer_hardware, ET=prefer_hardware, heatindex=prefer_hardware, humidex=prefer_hardware, inDewpoint=prefer_hardware, maxSolarRad=prefer_hardware, rainRate=prefer_hardware, windchill=prefer_hardware, windrun=prefer_hardware
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.wxservices: The following algorithms will be used for calculations: altimeter=aaASOS, maxSolarRad=RS
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdArchive
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Archive will use data binding wx_binding
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Record generation will be attempted in ‘hardware’
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Using archive interval of 300 seconds (specified in weewx configuration)
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: StationRegistry: Station will be registered.
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.restx: WU essentials: {}
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: Wunderground-PWS: Data for station KNCBELMO38 will be posted
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: PWSWeather: Data for station EW7342 will be posted
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: CWOP: Data for station EW7342 will be posted
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdWOW
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: WOW: Posting not enabled.
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.restx: AWEKAS: Posting not enabled.
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdPrint
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Loading service weewx.engine.StdReport
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
Oct 26 19:46:17 weewx weewx[1442] INFO main: Starting up weewx version 4.1.1
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.engine: Station does not support reading the time
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Using binding ‘wx_binding’ to database ‘weewx.sdb’
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.manager: Starting backfill of daily summaries
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.manager: Daily summary version is 2.0
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.manager: Daily summary version is 2.0
Oct 26 19:46:17 weewx weewx[1442] INFO weewx.engine: Starting main packet loop.
Oct 26 19:46:17 weewx weewx[1442] INFO user.weatherflowudp: Listening for UDP broadcasts to IP address on port 50222, with timeout 90 and share_socket False…
Oct 26 19:46:17 weewx weewx[1442] DEBUG weewx.manager: Daily summary version is 2.0
Oct 26 19:47:47 weewx weewx[1442] ERROR user.weatherflowudp: Socket timeout waiting for incoming UDP packet!

Blockquote

taggign @tkeffer since i’m using his driver

well lets start with the usual questions…

  • did you change anything ? os ? python version ? python3 vs python2? anything else ?
  • what os are you running on what hardware ?
  • are you running debug=1 in weewx.conf for max debugging info ?
  • have you rebooted the hub ?
  • do you know the hub is broadcasting UDP at all ? Have you run wireshark/ethereal or my UDP listener to verify the hub is ok ?
1 Like
  • did you change anything ? os ? python version ? python3 vs python2? anything else ? not that i’m aware of, i think the server rebooted around that time. i am running python 3

  • what os are you running on what hardware ? Ubuntu 20.04.1 on a QNAP NAS

  • are you running debug=1 in weewx.conf for max debugging info ? yes

  • have you rebooted the hub ? yes

  • do you know the hub is broadcasting UDP at all ? Have you run wireshark/ethereal or my UDP listener to verify the hub is ok ? i’m thinking it might be a VM issue. i am not seeing UDP packets at the NAS.

now that i’m typing this i’ll bet it is related to my WLC not passing the hub’s broadcast packets.

going to head down that rabbit hole

yup i’m dumb, i had Broadcast Forwarding disabled

anyone done the upgrade to 4.2 weewx?

I didn’t see any reason to upgrade beyond 4.0 for me personally, but there’s nothing in there that affects a WF station one way or the other. Check out the release notes and make your own call.

I updated and no issues

Awesome work on this, but having some issues getting my tempest data into weewx, specifically the temperature.

I see all the data coming through on the UDP port, and I even modified the driver’s code to log what it is receiving. I’m getting wind, humidity, battery status, etc. but not getting temperature.

But then that record is full of Nulls in the database:

Here’s my weewx.conf for the sensor_map and driver:

Dumb question - Are you sure that WeeWX is configured to use MySQL (or MariaDB in most Linux distros these days) and that the Python client library(ies) have been installed? The default database in WeeWX is SQLite, so extra configuration is required for MySQL.

FWIW, I use MySQL (and now MariaDB) on all of my WeeWX installs, so it has been tested and works with this station driver…

You can always run my UDP listener (use the --decoded switch) as a second check that your gear is indeed broadcasting the temperature ok. If you have weewx running, make sure you set share_socket = ‘true’ in weewx.conf so both programs can listen for the broadcasts. I think the weewx driver default is false if memory serves.

The thread for my standalone listener is WeatherFlow UDP listener and MQTT/InfluxDB publisher utility

Try Tom’s fork He updated it to work better with python 3

Yep thank you - i was using that to debug and definitely seeing the udp packets - good tool!