From b38833c98a5389a7fad18e08d3ebcb77c787461f Mon Sep 17 00:00:00 2001 From: Daniel Kempkens Date: Tue, 7 Mar 2023 13:51:07 +0100 Subject: [PATCH] Update weewx-wdc --- Dockerfile | 4 +- defaults/skin-wdc/skin.conf | 371 +++++++++++++++++++++++++++++------- 2 files changed, 299 insertions(+), 76 deletions(-) diff --git a/Dockerfile b/Dockerfile index f17a63c..4091282 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,9 @@ FROM python:3.10.8-slim-bullseye as install ARG WEEWX_UID=421 ENV WEEWX_HOME="/home/weewx" -ENV WEEWX_VERSION="4.10.1" +ENV WEEWX_VERSION="4.10.2" ENV ARCHIVE="weewx-${WEEWX_VERSION}.tar.gz" -ENV WEEWX_WDC_VERSION="v2.3.3" +ENV WEEWX_WDC_VERSION="v3.0.0" RUN addgroup --system --gid ${WEEWX_UID} weewx \ && adduser --system --uid ${WEEWX_UID} --ingroup weewx weewx diff --git a/defaults/skin-wdc/skin.conf b/defaults/skin-wdc/skin.conf index 54e3e02..f3c322c 100644 --- a/defaults/skin-wdc/skin.conf +++ b/defaults/skin-wdc/skin.conf @@ -1,25 +1,31 @@ # configuration file for the weewx-wdc skin SKIN_NAME = Weather Data Center -SKIN_VERSION = 2.3.3 +SKIN_VERSION = 3.0.0 [Extras] + # If weewx is installed in some sub-folder of your web server, + # please specify the path here. + base_path = / + + # If activated the Fontpage (index.html) will be automatically be + # refreshed in the browser every 300 seconds. + #refresh_interval = 300 + # Show a link to the GitHub respository of this skin. Set to False to hide. github_link = True - # This radar image would be available as $Extras.radar_img - radar_img = /dwd/radar_nrw.gif - # This URL will be used as the image hyperlink: - radar_url = https://www.dwd.de/DE/leistungen/radarbild_film/radarbild_film.html + # The radar code. Full html allowed. + radar_html = 'Radar' + #radar_heading = Recent radar [[forecast_zambretti]] - enable = false + enable = False [[forecast_table_settings]] source = Aeris num_periods = 72 num_days = 4 - show_legend = 1 - show_hourly = 0 + show_hourly = 1 show_day = 1 show_date = 1 show_outlook = 1 @@ -29,10 +35,9 @@ SKIN_VERSION = 2.3.3 show_wind = 1 show_tides = 0 show_sun = 1 - show_moon = 0 + show_moon = 1 show_pop = 1 show_precip = 1 - show_obvis = 0 [[weewx-DWD]] show_text_forecast = True @@ -61,20 +66,52 @@ SKIN_VERSION = 2.3.3 [DisplayOptions] layout = 'alternative' + + # These days will be shown on the year and statistics pages. climatological_days = rainDays, summerDays, hotDays, desertDays, tropicalNights, stormDays, iceDays, frostDays + + # What to show in the tables. # table_tile_observations = outTemp, outHumidity, barometer, windSpeed, windGust, windDir, rain, rainRate, dewpoint, windchill, heatindex, appTemp, UV, ET, radiation, cloudbase, soilMoist1 + + # What to show for the stat tiles. stat_tile_observations = outTemp, outHumidity, barometer, windSpeed, windDir, windGust, windGustDir, rain, rainRate, dewpoint, windchill, heatindex, appTemp, UV, ET, luminosity, radiation, cloudbase, soilTemp1, soilMoist1, lightning_strike_count, pm1_0, pm2_5, pm10_0 diagram_tile_observations = temp_min_max_avg, tempdew, outHumidity, barometer, windchill_heatindex, appTemp, wind, windDir, windRose, rain, rainRate, UV, ET, luminosity, radiation, cloudbase, soilTemp1, soilMoist1, lightning_strike_count, pm1_0, pm2_5, pm10_0 - stat_tile_winddir_ordinal = True - diagram_tile_winddir_ordinal = True + + # Stat tiles: Min/Max/Sum settings. + stat_tiles_show_min = outTemp, outHumidity, barometer, pressure, altimeter, snowDepth, heatindex, dewpoint, windchill, cloudbase, appTemp + stat_tiles_show_max = rainRate, hailRate, snowRate, UV, pm1_0 pm2_5, pm10_0 + stat_tiles_show_sum = rain, ET, hail, snow, lightning_strike_count, windrun + + # Stat tiles: show time when the min/max was reached. show_min_max_time_day = True show_min_max_time_yesterday = True show_min_max_time_week = True show_min_max_time_month = True + + # windDir as oridnals (N, E, S, W). + stat_tile_winddir_ordinal = True + diagram_tile_winddir_ordinal = True + + # Windrose. windRose_colors = "#f3cec9", "#e7a4b6", "#cd7eaf", "#a262a9", "#6f4d96", "#3d3b72" windRose_show_beaufort = False + # Climatogram on year and statistics pages. + climatogram_enable_stats = True + climatogram_enable_year_stats = True + + ENABLE_D3_DIAGRAMS = False + + [[Icons]] + #rain = "includes/icons/barometer.svg" + + #[[Rounding]] + #dewpoint = 3 + [[tables]] + #[[[Rounding]]] + #outTemp = 3 + [[[day]]] aggregate_interval = 3600 # 1 hour [[[week]]] @@ -87,11 +124,36 @@ SKIN_VERSION = 2.3.3 aggregate_interval = 86400 # 1 day [[diagrams]] + #[[[Rounding]]] + #barometer = 3 + [[[combined_observations]]] + [[[[climatogram_year]]]] + label = "Climatogram" + curve="natural" + aggregate_interval = month + [[[[[obs]]]]] + [[[[[[rain]]]]]] + observation = "rain" + [[[[[[outTemp]]]]]] + observation = "outTemp" + + [[[[climatogram_statistics]]]] + label = "Climatogram" + curve="natural" + aggregate_interval = year + [[[[[obs]]]]] + [[[[[[rain]]]]]] + observation = "rain" + [[[[[[outTemp]]]]]] + observation = "outTemp" + [[[[temp_min_max_avg]]]] label = "Außentemperatur Min/Max/Avg" pointSize = 3 yScaleOffset = 0.5 + markerValue = 0 + markerColor = "#00BFFF" [[[[[obs]]]]] [[[[[[outTemp_min]]]]]] observation = "outTemp" @@ -105,17 +167,23 @@ SKIN_VERSION = 2.3.3 observation = "outTemp" aggregate_type = "max" color = "#8B0000" + [[[[tempdew]]]] label = 'Außentemperatur / Taupunkt' + markerValue = 0 + markerColor = "#00BFFF" [[[[[obs]]]]] [[[[[[temp]]]]]] observation = "outTemp" [[[[[[dew]]]]]] observation = "dewpoint" + color = "#5F9EA0" [[[[windchill_heatindex]]]] label = 'Windchill / Hitzeindex' yScaleOffset = 0.5 + markerValue = 0 + markerColor = "#00BFFF" [[[[[obs]]]]] [[[[[[chill]]]]]] observation = "windchill" @@ -127,11 +195,16 @@ SKIN_VERSION = 2.3.3 [[[[wind]]]] label = 'Windgeschwindigkeit / Böen' yScaleMin = 0 + enableArea = True + areaOpacity = 0.5 + curve = linear [[[[[obs]]]]] - [[[[[[speed]]]]]] - observation = "windSpeed" [[[[[[gust]]]]]] observation = "windGust" + color = "#666666" + [[[[[[speed]]]]]] + observation = "windSpeed" + color = "#ffc000" [[[line]]] lineWidth = 2 @@ -140,114 +213,259 @@ SKIN_VERSION = 2.3.3 enablePoints = True enableCrosshair = True yScaleOffset = 3 + enableArea = False + areaOpacity = 0.07 # @see https://github.com/plouc/nivo/blob/master/packages/line/index.d.ts#L144 curve = "natural" [[[bar]]] enableLabel = False isInteractive = True + enableCrosshair = True yScaleOffset = 3 # Observation specific settings - [[[cloudbase]]] + [[[outTemp]]] + type = line + color = "#8B0000" + [[[dewpoint]]] + type = line + color = "#5F9EA0" + [[[outHumidity]]] yScaleMin = 0 - yScaleOffset = 300 + yScaleMax = 103 + type = line + enableArea = True + color = "#0099CC" + [[[pressure]]] + yScaleOffset = 1 + type = line + enableArea = True + color = "#666666" + [[[barometer]]] + yScaleOffset = 1 + type = line + enableArea = True + color = "#666666" + [[[altimeter]]] + yScaleOffset = 1 + type = line + enableArea = True + color = "#666666" + [[[windchill]]] + type = line + color = "#0099CC" + [[[heatindex]]] + type = line + color = "#610000" [[[windDir]]] curve = "basis" lineWidth = 0 yScaleMin = 0 yScaleMax = 360 + type = line + color = "#161616" [[[windSpeed]]] yScaleMin = 0 + type = line + enableArea = True + color = "#ffc000" [[[windGust]]] aggregate_type = "max" yScaleMin = 0 - [[[radiation]]] - curve = "basis" - yScaleMin = 0 - [[[UV]]] - aggregate_type = "max" - curve = "step" - yScaleMin = 0 - yScaleOffset = 1 - [[[luminosity]]] - color = '#FFCC00' - yScaleMin = 0 + type = line + enableArea = True + color = "#666666" [[[rain]]] aggregate_type = "sum" + yScaleMin = 0 yScaleOffset = 0.25 + type = bar + color = "#0198E1" [[[rainRate]]] aggregate_type = "max" curve = "linear" yScaleMin = 0 yScaleOffset = 0.25 - [[[outHumidity]]] + type = line + color = "#0a6794" + [[[UV]]] + aggregate_type = "max" + curve = "step" yScaleMin = 0 - yScaleMax = 103 + yScaleOffset = 1 + type = line + enableArea = True + color = "#e61919" [[[ET]]] aggregate_type = "sum" + yScaleMin = 0 yScaleOffset = 0.02 - [[[pressure]]] - yScaleOffset = 1 - [[[barometer]]] - yScaleOffset = 1 - [[[altimeter]]] - yScaleOffset = 1 + type = bar + color = "#E97451" + [[[luminosity]]] + curve = "basis" + yScaleMin = 0 + type = line + enableArea = True + color = "#ffcc00" + [[[radiation]]] + curve = "basis" + yScaleMin = 0 + type = line + enableArea = True + color = "#ff8c00" + [[[cloudbase]]] + yScaleMin = 0 + yScaleOffset = 300 + type = line + enableArea = True + color = "#92b6f0" + [[[appTemp]]] + type = line + color = "#C41E3A" + markerValue = 0 + markerColor = "#00BFFF" [[[soilMoist1]]] + yScaleMin = 0 + type = line + enableArea = True color = '#0099CC' yScaleMin = 0 [[[lightning_strike_count]]] aggregate_type = "sum" - curve = "step" - color = '#FF4C00' yScaleMin = 0 + type = bar + color = "#FF4C00" [[[pm1_0]]] curve = "basis" - color = '#00B335' yScaleMin = 0 + type = line + enableArea = True + color = '#00B335' [[[pm2_5]]] curve = "basis" - color = '#00B335' yScaleMin = 0 + type = line + enableArea = True + color = '#00B335' [[[pm10_0]]] curve = "basis" - color = '#00B335' yScaleMin = 0 + type = line + enableArea = True + color = '#00B335' + # Set which diagrams you want to see on the day, week month, etc pages. + # Note for alltime: if aggregate_interval is not set, + # it will be calculated automatically based on the number of days/records. [[[day]]] aggregate_interval = 1800 # 30 minutes - [[[[ET]]]] - aggregate_interval = 7200 # 2 hours - [[[[rain]]]] - aggregate_interval = 7200 # 2 hours - [[[[lightning_strike_count]]]] - aggregate_interval = 7200 # 2 hours + [[[[observations]]]] + [[[[[tempdew]]]]] + [[[[[outHumidity]]]]] + [[[[[barometer]]]]] + [[[[[windchill_heatindex]]]]] + [[[[[wind]]]]] + [[[[[windDir]]]]] + [[[[[windRose]]]]] + [[[[[rain]]]]] + aggregate_interval = 7200 # 2 hours + [[[[[rainRate]]]]] + [[[[[UV]]]]] + [[[[[ET]]]]] + aggregate_interval = 7200 # 2 hours + [[[[[radiation]]]]] + [[[[[cloudbase]]]]] + [[[[[appTemp]]]]] + [[[[[lightning_strike_count]]]]] + aggregate_interval = 7200 # 2 hours [[[week]]] aggregate_interval = 7200 # 2 hours - [[[[ET]]]] - aggregate_interval = 86400 # 1 day - [[[[rain]]]] - aggregate_interval = 86400 # 1 day - [[[[lightning_strike_count]]]] - aggregate_interval = 86400 # 1 day + [[[[observations]]]] + [[[[[tempdew]]]]] + [[[[[outHumidity]]]]] + [[[[[barometer]]]]] + [[[[[windchill_heatindex]]]]] + [[[[[wind]]]]] + [[[[[windDir]]]]] + [[[[[windRose]]]]] + [[[[[rain]]]]] + aggregate_interval = 86400 # 1 day + [[[[[rainRate]]]]] + [[[[[UV]]]]] + [[[[[ET]]]]] + aggregate_interval = 86400 # 1 day + [[[[[radiation]]]]] + [[[[[cloudbase]]]]] + [[[[[appTemp]]]]] + [[[[[lightning_strike_count]]]]] + aggregate_interval = 86400 # 1 day [[[month]]] aggregate_interval = 21600 # 6 hours - [[[[ET]]]] - aggregate_interval = 172800 # 2 days - [[[[rain]]]] - aggregate_interval = 172800 # 2 days - [[[[lightning_strike_count]]]] - aggregate_interval = 172800 # 2 days + [[[[observations]]]] + [[[[[temp_min_max_avg]]]]] + [[[[[tempdew]]]]] + [[[[[outHumidity]]]]] + [[[[[barometer]]]]] + [[[[[windchill_heatindex]]]]] + [[[[[wind]]]]] + [[[[[windDir]]]]] + [[[[[windRose]]]]] + [[[[[rain]]]]] + aggregate_interval = 172800 # 2 days + [[[[[rainRate]]]]] + [[[[[UV]]]]] + [[[[[ET]]]]] + aggregate_interval = 172800 # 2 days + [[[[[radiation]]]]] + [[[[[cloudbase]]]]] + [[[[[appTemp]]]]] + [[[[[lightning_strike_count]]]]] + aggregate_interval = 172800 # 2 days [[[year]]] aggregate_interval = 172800 # 2 days - [[[[ET]]]] - aggregate_interval = 1555200 # 8 days - [[[[rain]]]] - aggregate_interval = 1555200 # 8 days - [[[[lightning_strike_count]]]] - aggregate_interval = 1555200 # 8 days + [[[[observations]]]] + [[[[[temp_min_max_avg]]]]] + [[[[[tempdew]]]]] + [[[[[outHumidity]]]]] + [[[[[barometer]]]]] + [[[[[windchill_heatindex]]]]] + [[[[[wind]]]]] + [[[[[windDir]]]]] + [[[[[windRose]]]]] + [[[[[rain]]]]] + aggregate_interval = 1555200 # 8 days + [[[[[rainRate]]]]] + [[[[[UV]]]]] + [[[[[ET]]]]] + aggregate_interval = 1555200 # 8 days + [[[[[radiation]]]]] + [[[[[cloudbase]]]]] + [[[[[appTemp]]]]] + [[[[[lightning_strike_count]]]]] + aggregate_interval = 1555200 # 8 days + + [[[alltime]]] + [[[[observations]]]] + [[[[[temp_min_max_avg]]]]] + [[[[[tempdew]]]]] + [[[[[outHumidity]]]]] + [[[[[barometer]]]]] + [[[[[windchill_heatindex]]]]] + [[[[[wind]]]]] + [[[[[windDir]]]]] + [[[[[windRose]]]]] + [[[[[rain]]]]] + [[[[[rainRate]]]]] + [[[[[UV]]]]] + [[[[[ET]]]]] + [[[[[radiation]]]]] + [[[[[cloudbase]]]]] + [[[[[appTemp]]]]] + [[[[[lightning_strike_count]]]]] [[[heights]]] [[[[classic]]]] @@ -265,7 +483,11 @@ SKIN_VERSION = 2.3.3 [CheetahGenerator] encoding = html_entities - search_list_extensions = user.weewx_wdc.WdcGeneralUtil, user.weewx_wdc.WdcStatsUtil, user.weewx_wdc.WdcDiagramUtil, user.weewx_wdc.WdcCelestialUtil, user.weewx_wdc.WdcArchiveUtil, user.weewx_wdc.WdcTableUtil, user.weewx_wdc_forecast.WdcForecastUtil + search_list_extensions = user.weewx_wdc.WdcGeneralUtil, user.weewx_wdc.WdcStatsUtil, user.weewx_wdc.WdcDiagramUtil, user.weewx_wdc.WdcCelestialUtil, user.weewx_wdc.WdcArchiveUtil, user.weewx_wdc.WdcTableUtil, user.weewx_wdc.WdcForecastUtil + + #[[SummaryByDay]] + # [[[summary_day]]] + # template = day-archive/day-%Y-%m-%d.html.tmpl [[SummaryByMonth]] # Reports that summarize "by month" @@ -325,15 +547,16 @@ SKIN_VERSION = 2.3.3 [Units] [[TimeFormats]] # @see https://weewx.com/docs/customizing.htm#Units_TimeFormats - day = %X - week = %x - month = %x - year = %x - rainyear = %x - current = %x %X - ephem_day = %X - ephem_year = %x - stats = %x %X + day = %X + week = %x + month = %x + year = %x + rainyear = %x + current = %x %X + ephem_day = %X + ephem_year = %x + stats = %x %X + daily_archive = %Y-%m-%d [CopyGenerator] copy_once = dist/main.js, dist/main.css, plotly-custom-build.min.js, favicon.ico, manifest.json, icon-192x192.png, icon-256x256.png, icon-384x384.png, icon-512x512.png, service-worker.js, offline.html