Hi,

I'm running WeeWX 4.8 on a RPi with Debian Bullseye (WeeWX installed via 
DEB package). I am using the chaunceygardiner 
<https://github.com/chaunceygardiner> version of weewx-forecast 3.4.0b12 
with a SQLite forecast database.

The forecast extension works fine with the exception of the Zambretti 
thread which is what I want. I have configured Aeris and it downloads the 
forecast every 30 minutes, however the Zambretti code is calculated once 
after restarting the weewx service, and then one again within the interval. 
After that it is not calculated again or showing up in the syslog until the 
weewx service is restarted.

Here are the relevant sections of weewx.conf:

[DataBindings]

    [[wx_binding]]

    [[forecast_binding]]

        manager = weewx.manager.Manager

        schema = user.forecast.schema

        table_name = archive

        database = forecast_sqlite

[Databases]

    [[forecast_sqlite]]

        database_name = forecast.sdb

        database_type = SQLite

[Engine]

    [[Services]]

        archive_services = weewx.engine.StdArchive, 
user.forecast.ZambrettiForecast, user.forecast.AerisForecast

[Forecast]

    data_binding = forecast_binding

    interval = 1800

    [[Zambretti]]

        hemisphere = NORTH

    [[Aeris]]

        client_id = xxxxxxx

        client_secret = xxxxxxx

And the skin.conf that I'm running (NeoWX Material):

[CheetahGenerator]

    search_list_extensions = user.historygenerator.MyXSearch, 
user.forecast.ForecastVariables

And the index.html.tmpl where the Zambretti forecast is called:

        <div class="row">
          <div class="col-3">
              #if $forecast.zambretti.code == 'A'
                #if $current.radiation.raw > 0
                <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-day-sunny" ></i></h5>
                #else
                <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-night-clear" ></i></h5>
                #end if
              #else if $forecast.zambretti.code == 'B'
                #if $current.radiation.raw > 0
                <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-day-cloudy" ></i></h5>
                #else
                <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-night-alt-cloudy" ></i></h5>
                #end if
              #else if $forecast.zambretti.code == 'C'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-cloudy" ></i></h5>
              #else if $forecast.zambretti.code == 'D'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-cloudy" ></i></h5>
              #else if $forecast.zambretti.code == 'E'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'F'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-cloudy" ></i></h5>
              #else if $forecast.zambretti.code == 'G'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'H'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'I'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'J'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-mix" ></i></h5>
              #else if $forecast.zambretti.code == 'K'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'L'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-cloudy-windy" ></i></h5>
              #else if $forecast.zambretti.code == 'M'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-cloudy-windy" ></i></h5>
              #else if $forecast.zambretti.code == 'N'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'O'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'P'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-mix" ></i></h5>
              #else if $forecast.zambretti.code == 'Q'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-showers" ></i></h5>
              #else if $forecast.zambretti.code == 'R'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'S'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'T'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'U'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'V'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'W'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain" ></i></h5>
              #else if $forecast.zambretti.code == 'X'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-rain-wind" ></i></h5>
              #else if $forecast.zambretti.code == 'Y'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-thunderstorm" ></i></h5>
              #else if $forecast.zambretti.code == 'Z'
              <h5 class="h2-responsive $Extras.color-text"><i class="wi 
wi-thunderstorm" ></i></h5>
              #end if
          </div>

          <div class="col-6">
            <h4 class="h5-responsive">$forecast.label('Zambretti', 
$forecast.zambretti.code)</h4>
## display Zambretti code for debug          

<div class="font-small text-muted">$forecast.zambretti.code</div>
          </div>
          <div class="col-3 text-muted font-small indigo-text">
          Issued at <br>
          
$forecast.zambretti.issued_ts.format($Extras.Formatting.datetime_today)
          </div>
        </div>

And here is the syslog after starting the weewx service:

Feb 10 09:09:00 weather systemd[1]: Starting LSB: weewx weather system...
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Initializing weewx 
version 4.8.0
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Using Python 3.9.2 
(default, Feb 28 2021, 17:03:44) #012[GCC 10.2.1 20210110]
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Platform 
Linux-5.15.32-v8+-aarch64-with-glibc2.31
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Locale is 'en_GB.UTF-8'
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Using configuration 
file /etc/weewx/weewx.conf
Feb 10 09:09:01 weather weewx[674112] INFO __main__: Debug is 2
Feb 10 09:09:01 weather weewx[674112] INFO __main__: PID file is 
/var/run/weewx.pid
Feb 10 09:09:01 weather weewx[674115] DEBUG __main__: Initializing engine
Feb 10 09:09:01 weather weewx[674115] INFO weewx.engine: Loading station 
type WLLDriver (user.WLLDriver)
Feb 10 09:09:01 weather weewx[674102]: Starting weewx weather system: weewx.
Feb 10 09:09:01 weather systemd[1]: Started LSB: weewx weather system.
Feb 10 09:09:01 weather weewx[674115] DEBUG user.WLLDriver: URL of 
current_conditions : http://192.168.1.121:80/v1/current_conditions
Feb 10 09:09:01 weather weewx[674115] DEBUG user.WLLDriver: URL of 
realtime_broadcast : http://192.168.1.121:80/v1/real_time?duration=3600
Feb 10 09:09:01 weather weewx[674115] DEBUG user.WLLDriver: Set future time 
request health API to 1676020500
Feb 10 09:09:01 weather weewx[674115] INFO user.WLLDriver: Driver name is 
WLLDriver
Feb 10 09:09:01 weather weewx[674115] INFO user.WLLDriver: Driver version 
is 2020.12-1
Feb 10 09:09:01 weather weewx[674115] INFO user.WLLDriver: Polling interval 
set to 5
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.engine.StdTimeSynch
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.engine.StdTimeSynch
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.engine.StdConvert
Feb 10 09:09:01 weather weewx[674115] INFO weewx.engine: StdConvert target 
unit is 0x1
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.engine.StdConvert
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.engine.StdCalibrate
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.engine.StdCalibrate
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.engine.StdQC
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.engine.StdQC
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.wxservices.StdWXCalculate
Feb 10 09:09:01 weather weewx[674115] INFO weewx.wxservices: StdWXCalculate 
will use data binding wx_binding
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.manager: Daily summary 
version is 4.0
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.wxservices.StdWXCalculate
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.wxxtypes.StdWXXTypes
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.wxxtypes.StdWXXTypes
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.wxxtypes.StdPressureCooker
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.wxxtypes.StdPressureCooker
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.wxxtypes.StdRainRater
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.wxxtypes.StdRainRater
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.wxxtypes.StdDelta
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.wxxtypes.StdDelta
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
user.GTS.GTSService
Feb 10 09:09:01 weather weewx[674115] INFO user.GTS: Version 0.9a1
Feb 10 09:09:01 weather weewx[674115] INFO user.GTS: Local mean time (LMT) 
UTC offset -1 day, 23:55:25.680000
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service user.GTS.GTSService
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
user.xaggs.XAggsService
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service user.xaggs.XAggsService
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
weewx.engine.StdArchive
Feb 10 09:09:01 weather weewx[674115] INFO weewx.engine: Archive will use 
data binding wx_binding
Feb 10 09:09:01 weather weewx[674115] INFO weewx.engine: Record generation 
will be attempted in 'hardware'
Feb 10 09:09:01 weather weewx[674115] INFO weewx.engine: Using archive 
interval of 300 seconds (specified in weewx configuration)
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Use LOOP data in 
hi/low calculations: 1
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service weewx.engine.StdArchive
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Loading service 
user.forecast.ZambrettiForecast
Feb 10 09:09:01 weather weewx[674115] INFO user.forecast: MainThread: 
Zambretti: forecast version 3.4.0b12
Feb 10 09:09:01 weather weewx[674115] DEBUG user.forecast: MainThread: 
Zambretti: last forecast issued 2023-02-10 09:00:00 GMT (1676019600), 
requested 2023-02-10 09:00:00 GMT (1676019600)
Feb 10 09:09:01 weather weewx[674115] INFO user.forecast: MainThread: 
Zambretti: interval=600 max_age=604800 winddir_period=1800 
pressure_period=10800 hemisphere=NORTH lower_pressure=950.0 
upper_pressure=1050.0
Feb 10 09:09:01 weather weewx[674115] DEBUG weewx.engine: Finished loading 
service user.forecast.ZambrettiForecast

And that is it for Zambretti, it never runs the thread again until weewx is 
restarted. Any ideas? In the above tests I disabled the Aeris forecast for 
clarity, but that is running fine every 1800 seconds.

The forecast card on this page, as you can see it has not updated since 
09:50 this morning:

https://www.360shetland.co.uk/weather/index.html


-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/061296c6-9997-4e42-b550-c8f8dcdf2290n%40googlegroups.com.

Reply via email to