Help with forecast

205 views
Skip to first unread message

Timothy Reaves

unread,
Jun 8, 2022, 12:16:33 PM6/8/22
to weewx-user
Hello all.  I'm using the latest version running on a Pi 4, with a Davis Vantage Pro.  I've had my site configured to use Aeris for forecasting, and have never really liked it.  It just isn't as accurate as the NWS.  But I stuck with it.  Then last week, the Aeris forecast for my sight started diverging significantly not only from the NWS, but also from the actual Aeris site (which following the forecast link).  I don't know what's going on, so I thought I'd jut stop using it.

So I installed the Forecast user module.  When I start weewx now, it fails to load with the error below.  In looking at the code, the database schema isn't matching the extensions in-memory schema.  Don't know why.

Has anyone an example of using NWS forecasts instead of Aeris?  Or can provide any other ideas to troubleshoot?

Thanks.

Jun  8 10:12:34 pi4home weewx[12748] CRITICAL __main__:     ****  Exception: NWS: schema mismatch: ['dateTime', 'usUnits', 'interval', 'altimeter', 'appTemp', 'appTemp1', 'barometer', 'batteryStatus1', 'batteryStatus2', 'batteryStatus3', 'batteryStatus4', 'batteryStatus5', 'batteryStatus6', 'batteryStatus7', 'batteryStatus8', 'cloudbase', 'co', 'co2', 'consBatteryVoltage', 'dewpoint', 'dewpoint1', 'ET', 'extraHumid1', 'extraHumid2', 'extraHumid3', 'extraHumid4', 'extraHumid5', 'extraHumid6', 'extraHumid7', 'extraHumid8', 'extraTemp1', 'extraTemp2', 'extraTemp3', 'extraTemp4', 'extraTemp5', 'extraTemp6', 'extraTemp7', 'extraTemp8', 'forecast', 'hail', 'hailBatteryStatus', 'hailRate', 'heatindex', 'heatindex1', 'heatingTemp', 'heatingVoltage', 'humidex', 'humidex1', 'inDewpoint', 'inHumidity', 'inTemp', 'inTempBatteryStatus', 'leafTemp1', 'leafTemp2', 'leafWet1', 'leafWet2', 'lightning_distance', 'lightning_disturber_count', 'lightning_energy', 'lightning_noise_count', 'lightning_strike_count', 'luminosity', 'maxSolarRad', 'nh3', 'no2', 'noise', 'o3', 'outHumidity', 'outTemp', 'outTempBatteryStatus', 'pb', 'pm10_0', 'pm1_0', 'pm2_5', 'pressure', 'radiation', 'rain', 'rainBatteryStatus', 'rainRate', 'referenceVoltage', 'rxCheckPercent', 'signal1', 'signal2', 'signal3', 'signal4', 'signal5', 'signal6', 'signal7', 'signal8', 'snow', 'snowBatteryStatus', 'snowDepth', 'snowMoisture', 'snowRate', 'so2', 'soilMoist1', 'soilMoist2', 'soilMoist3', 'soilMoist4', 'soilTemp1', 'soilTemp2', 'soilTemp3', 'soilTemp4', 'supplyVoltage', 'txBatteryStatus', 'UV', 'uvBatteryStatus', 'windBatteryStatus', 'windchill', 'windDir', 'windGust', 'windGustDir', 'windrun', 'windSpeed'] != ['t', 'd']

RobbH

unread,
Jun 10, 2022, 10:22:59 AM6/10/22
to weewx-user
This is certainly not what you are looking for, but it is what I use to get NWS forecasts.

Here is a url for a forecast for a randomly selected location:


Note where latitude and longitude are inserted. "TextType=2" at the end tells the server to include forecast graphics.

Several times a day, a cron job uses PhantomJS to retrieve that page and create an jpeg of the forecast graphics, which is then displayed on my weewx home page.

It usually works well enough for my purposes, but there are times when the forecast page is down, so I end up with a blank rectangle on the weewx page.

Doug Jenkins

unread,
Jun 10, 2022, 11:22:26 AM6/10/22
to weewx-user
Tim:

The forecast module uses a completely different schema and database. What you need to do is configure the module to a separate database and in your skin, bring in the data to be presented.

I personally use John Kline's weewx forecast driver ( GitHub - chaunceygardiner/weewx-forecast: forecasting extension for weewx) as it is being maintained and it works with the latest version of WeeWX (v4.8). You will need to look at the sample pages that accompany the driver and integrate the cheetah template code into your skin. 

Best practice is to copy your existing skin folder (eg seasons) to a separate folder (seasons-forecast) and make the modifications there. I usually use the wee_reports utility to generate the html when I make changes to the skin.

Please let us know if you have any questions.

Doug
www.largoweather.com


Timothy Reaves

unread,
Jun 13, 2022, 9:49:34 AM6/13/22
to weewx-user
Thank you both for the responses.

Doug, that is the extension I wrote this post about.  I have followed the instructions, and receive the error I'd posted. So I have all of the configuration that the plugin lists.  When I enable the archive_service, I get the error.  So for some reason it doesn't seem to be connecting to the correct database.  Here is the snippet from my configuration regarding the databases:

[Databases]
   
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite
   
    # MySQL
    [[archive_mysql]]
        database_name = weewx
        database_type = MySQL

    [[forecast_sqlite]]
        database_type = SQLite
        database_name = forecast.sdb

    [[forecast_mysql]]
        database_type = MySql
        database_name = forecast

John Kline

unread,
Jun 15, 2022, 8:22:37 AM6/15/22
to weewx...@googlegroups.com
This looks like a clear case of forecast being pointed to the wrong database.

Please send the data_binding line in the [forecast[ section of weewx.conf.
Also send the [DataBindings] section of weewx.conf.

On Jun 13, 2022, at 6:49 AM, Timothy Reaves <tre...@silverfieldstech.com> wrote:

Thank you both for the responses.
--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/26b923b2-13ea-4e3b-a281-dd4572827b42n%40googlegroups.com.

Timothy Reaves

unread,
Jun 15, 2022, 10:09:34 AM6/15/22
to weewx-user
I'm going to start looking more at the python code now.

[DataBindings]
   
  [[wx_binding]]
    # The database must match one of the sections in [Databases].
    # This is likely to be the only option you would want to change.
    database = archive_sqlite
    # The name of the table within the database
    table_name = archive
    # The manager handles aggregation of data for historical summaries
    manager = weewx.manager.DaySummaryManager
    # The schema defines the structure of the database.
    # It is *only* used when the database is created.
    schema = schemas.wview_extended.schema

  [[forecast_binding]]
    manager = weewx.manager.Manager
    schema = user.forecast.schema
    table_name = archive
    database = forecast_sqlite

##############################################################################

#   This section defines various databases.


[Databases]
   
  # A SQLite database is simply a single file
  [[archive_sqlite]]
    database_name = weewx.sdb
    database_type = SQLite
 
  [[forecast_sqlite]]
    database_type = SQLite
    database_name = forecast.sdb


Timothy Reaves

unread,
Jun 15, 2022, 10:53:32 AM6/15/22
to weewx-user
I ended up having to manually create the sqlite database, and the archive table in it.  Once that was done, I had a misconfiguration in my forecast section of the config file.  So now it is creating the data.  I'll now work on incorporating it into a template.

Thanks all for your responses.

John Kline

unread,
Jun 15, 2022, 10:53:50 AM6/15/22
to weewx...@googlegroups.com
It sure looks like your forecast.sdb archive table got created as a weewx archive table.  If so, it wasn’t the forecast extension that did it.  Perhaps the binding were misconfigured when forecast.sdb was created.

Before we delete it, let’s have a look at it.

Please paste the output of (adjusting the path of forecast.sdb as necessary):

$ sqlite3 /home/weewx/archive/forecast.sdb 
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
sqlite> PRAGMA table_info(archive);


If so, delete your forecast.sdb file and restart weewx.

On Jun 15, 2022, at 7:09 AM, Timothy Reaves <tre...@silverfieldstech.com> wrote:



John Kline

unread,
Jun 15, 2022, 10:54:25 AM6/15/22
to weewx...@googlegroups.com
Our emails crossed.  I’m glad you got it working.

On Jun 15, 2022, at 7:53 AM, John Kline <jo...@johnkline.com> wrote:


Reply all
Reply to author
Forward
0 new messages