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.