Archived
1
0
Fork 0

Compare commits

...

10 commits

3 changed files with 100 additions and 13 deletions

View file

@ -1,10 +1,10 @@
FROM python:3.10.8-slim-bullseye as install FROM python:3.10.11-slim-bullseye as install
ARG WEEWX_UID=421 ARG WEEWX_UID=421
ENV WEEWX_HOME="/home/weewx" ENV WEEWX_HOME="/home/weewx"
ENV WEEWX_VERSION="4.10.2" ENV WEEWX_VERSION="4.10.2"
ENV ARCHIVE="weewx-${WEEWX_VERSION}.tar.gz" ENV ARCHIVE="weewx-${WEEWX_VERSION}.tar.gz"
ENV WEEWX_WDC_VERSION="v3.0.1" ENV WEEWX_WDC_VERSION="v3.3.0"
RUN addgroup --system --gid ${WEEWX_UID} weewx \ RUN addgroup --system --gid ${WEEWX_UID} weewx \
&& adduser --system --uid ${WEEWX_UID} --ingroup weewx weewx && adduser --system --uid ${WEEWX_UID} --ingroup weewx weewx
@ -30,6 +30,7 @@ RUN pip install --no-cache-dir --requirement requirements.txt
# Download weewx and plugins # Download weewx and plugins
RUN wget -nv -O "${ARCHIVE}" "http://www.weewx.com/downloads/released_versions/${ARCHIVE}" &&\ RUN wget -nv -O "${ARCHIVE}" "http://www.weewx.com/downloads/released_versions/${ARCHIVE}" &&\
wget -nv -O weewx-mqtt.zip https://github.com/matthewwall/weewx-mqtt/archive/master.zip &&\
wget -nv -O weewx-MQTTSubscribe.zip https://github.com/bellrichm/WeeWX-MQTTSubscribe/archive/refs/tags/v2.2.2.zip &&\ wget -nv -O weewx-MQTTSubscribe.zip https://github.com/bellrichm/WeeWX-MQTTSubscribe/archive/refs/tags/v2.2.2.zip &&\
wget -nv -O weewx-forecast.zip https://github.com/chaunceygardiner/weewx-forecast/archive/master.zip &&\ wget -nv -O weewx-forecast.zip https://github.com/chaunceygardiner/weewx-forecast/archive/master.zip &&\
wget -nv -O weewx-GTS.zip https://github.com/roe-dl/weewx-GTS/archive/master.zip &&\ wget -nv -O weewx-GTS.zip https://github.com/roe-dl/weewx-GTS/archive/master.zip &&\
@ -65,7 +66,8 @@ RUN sed -i -z -e "s|PTH=\"/etc/weewx/skins/Belchertown/dwd\"|PTH=\"/home/weewx/s
# weewx setup # weewx setup
WORKDIR ${WEEWX_HOME} WORKDIR ${WEEWX_HOME}
RUN bin/wee_extension --install /tmp/weewx-MQTTSubscribe.zip &&\ RUN bin/wee_extension --install /tmp/weewx-mqtt.zip &&\
bin/wee_extension --install /tmp/weewx-MQTTSubscribe.zip &&\
bin/wee_extension --install /tmp/weewx-forecast.zip &&\ bin/wee_extension --install /tmp/weewx-forecast.zip &&\
bin/wee_extension --install /tmp/weewx-GTS.zip &&\ bin/wee_extension --install /tmp/weewx-GTS.zip &&\
bin/wee_extension --install /tmp/weewx-purpleair.zip &&\ bin/wee_extension --install /tmp/weewx-purpleair.zip &&\
@ -80,7 +82,7 @@ COPY --chown=weewx:weewx user/extensions.py ./bin/user/extensions.py
RUN echo 'Default Configuration:' &&\ RUN echo 'Default Configuration:' &&\
cat ${WEEWX_HOME}/weewx.conf cat ${WEEWX_HOME}/weewx.conf
FROM python:3.10.8-slim-bullseye as final FROM python:3.10.11-slim-bullseye as final
ARG WEEWX_UID=421 ARG WEEWX_UID=421
ENV WEEWX_HOME="/home/weewx" ENV WEEWX_HOME="/home/weewx"

View file

@ -1,12 +1,14 @@
# configuration file for the weewx-wdc skin # configuration file for the weewx-wdc skin
SKIN_NAME = Weather Data Center SKIN_NAME = Weather Data Center
SKIN_VERSION = 3.0.1 SKIN_VERSION = 3.3.0
[ObservationBindings] [ObservationBindings]
[Extras] [Extras]
# If weewx is installed in some sub-folder of your web server, # Only change this if the generated files are deployed to some
# please specify the path here. # sub-folder of your web server.
# E.g. If you are accessing your site via "http://my-weewx.com/weewx-wdc/"
# the base_path should be "/weewx-wdc/".
base_path = / base_path = /
# If activated the Fontpage (index.html) will be automatically be # If activated the Fontpage (index.html) will be automatically be
@ -20,6 +22,38 @@ SKIN_VERSION = 3.0.1
radar_html = '<a href="https://www.dwd.de/DE/leistungen/radarbild_film/radarbild_film.html"><img src="/dwd/radar_nrw.gif" alt="Radar" loading="lazy"></a>' radar_html = '<a href="https://www.dwd.de/DE/leistungen/radarbild_film/radarbild_film.html"><img src="/dwd/radar_nrw.gif" alt="Radar" loading="lazy"></a>'
radar_heading = Radar radar_heading = Radar
# Set to True to have the Forecast tile and the radar/externals tile to have the same width.
# Default is forecast = 2/3 and radar tile = 1/3.
forecast_radar_equal_width = False
[[mqtt]]
mqtt_websockets_enabled = 0
mqtt_websockets_host = "localhost"
mqtt_websockets_port = 9001
mqtt_websockets_ssl = 0
mqtt_websockets_topic = "weather/loop"
# Include various external sources (eg. webcams) here.
#[[external_1]]
# source = '<img src="http://your-server.com/uploads/webcam01.jpg" />'
# title = Webcam 1
# title_long = "Webcam 1, facing North"
#[[external_2]]
# source = '<img src="http://your-server.com/uploads/webcam02.jpg" />'
# title = Webcam 2
# title_long = "Webcam 2, facing South"
#[[external_3]]
# source = '<img src="http://your-server.com/uploads/webcam01.gif" />'
# title = Webcam 1
# title_long = "Webcam 1, Timelapse"
#[[external_4]]
# source = '<img src="http://your-server.com/uploads/webcam02.gif" />'
# title = Webcam 2
# title_long = "Webcam 2, Timelapse"
[[forecast_zambretti]] [[forecast_zambretti]]
enable = False enable = False
@ -70,6 +104,10 @@ SKIN_VERSION = 3.0.1
[DisplayOptions] [DisplayOptions]
layout = 'alternative' layout = 'alternative'
# Date/Time localization for charts. Available locales: de-DE, en-US, en-GB, it-IT.
# If not set, the value from weewx.conf (reports section) will be used. If lang = en, then en-US will be used (sorry GB!).
date_time_locale = de-DE
# These days will be shown on the year and statistics pages. # These days will be shown on the year and statistics pages.
climatological_days = rainDays, summerDays, hotDays, desertDays, tropicalNights, stormDays, iceDays, frostDays climatological_days = rainDays, summerDays, hotDays, desertDays, tropicalNights, stormDays, iceDays, frostDays
@ -80,7 +118,7 @@ SKIN_VERSION = 3.0.1
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 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
# Stat tiles: Min/Max/Sum settings. # Stat tiles: Min/Max/Sum settings.
stat_tiles_show_min = outTemp, outHumidity, barometer, pressure, altimeter, heatindex, dewpoint, windchill, cloudbase, appTemp stat_tiles_show_min = outTemp, outHumidity, barometer, pressure, altimeter, heatindex, dewpoint, windchill, cloudbase, appTemp, rxCheckPercent, consBatteryVoltage
stat_tiles_show_max = rainRate, UV stat_tiles_show_max = rainRate, UV
stat_tiles_show_sum = rain, ET, lightning_strike_count stat_tiles_show_sum = rain, ET, lightning_strike_count
@ -102,7 +140,13 @@ SKIN_VERSION = 3.0.1
climatogram_enable_stats = True climatogram_enable_stats = True
climatogram_enable_year_stats = True climatogram_enable_year_stats = True
ENABLE_D3_DIAGRAMS = False # Sensor status page.
sensor_stat_tile_observations = rxCheckPercent, signal1, signal2, signal3, signal4, signal5, signal6, signal7, signal8, consBatteryVoltage, heatingVoltage, supplyVoltage, referenceVoltage
sensor_diagram_observations = rxCheckPercent, signal1, signal2, signal3, signal4, signal5, signal6, signal7, signal8, consBatteryVoltage, heatingVoltage, supplyVoltage, referenceVoltage
sensor_table_observations = rxCheckPercent, signal1, signal2, signal3, signal4, signal5, signal6, signal7, signal8, consBatteryVoltage, heatingVoltage, supplyVoltage, referenceVoltage
sensor_battery_status = outTempBatteryStatus, inTempBatteryStatus, rainBatteryStatus, hailBatteryStatus, snowBatteryStatus, windBatteryStatus, uvBatteryStatus, txBatteryStatus, batteryStatus1, batteryStatus2, batteryStatus3, batteryStatus4, batteryStatus5, batteryStatus6, batteryStatus7, batteryStatus8
# Time period of diagrams (day, week, month or year).
sensor_diagram_period = week
[[Icons]] [[Icons]]
#rain = "includes/icons/barometer.svg" #rain = "includes/icons/barometer.svg"
@ -134,6 +178,8 @@ SKIN_VERSION = 3.0.1
label = "Climatogram" label = "Climatogram"
curve="natural" curve="natural"
aggregate_interval = month aggregate_interval = month
bottom_date_time_format = "%b"
tooltip_date_time_format = "%B"
[[[[[obs]]]]] [[[[[obs]]]]]
[[[[[[rain]]]]]] [[[[[[rain]]]]]]
observation = "rain" observation = "rain"
@ -144,6 +190,8 @@ SKIN_VERSION = 3.0.1
label = "Climatogram" label = "Climatogram"
curve="natural" curve="natural"
aggregate_interval = year aggregate_interval = year
bottom_date_time_format = "%Y"
tooltip_date_time_format = "%Y"
[[[[[obs]]]]] [[[[[obs]]]]]
[[[[[[rain]]]]]] [[[[[[rain]]]]]]
observation = "rain" observation = "rain"
@ -217,7 +265,7 @@ SKIN_VERSION = 3.0.1
yScaleOffset = 3 yScaleOffset = 3
enableArea = False enableArea = False
areaOpacity = 0.07 areaOpacity = 0.07
# @see https://github.com/plouc/nivo/blob/master/packages/line/index.d.ts#L144 # @see https://github.com/Daveiano/weewx-wdc/wiki/Configuration#diagrams, at "curve".
curve = "natural" curve = "natural"
[[[bar]]] [[[bar]]]
enableLabel = False enableLabel = False
@ -358,12 +406,26 @@ SKIN_VERSION = 3.0.1
type = line type = line
enableArea = True enableArea = True
color = '#00B335' color = '#00B335'
[[[rxCheckPercent]]]
yScaleMax = 100
color = "#990033"
[[[consBatteryVoltage]]]
yScaleOffset = 0.25
color = "#666699"
[[[heatingVoltage]]]
yScaleOffset = 0.25
[[[supplyVoltage]]]
yScaleOffset = 0.25
[[[referenceVoltage]]]
yScaleOffset = 0.25
# Set which diagrams you want to see on the day, week month, etc pages. # Set which diagrams you want to see on the day, week month, etc pages.
# Note for alltime: if aggregate_interval is not set, # Note for alltime: if aggregate_interval is not set,
# it will be calculated automatically based on the number of days/records. # it will be calculated automatically based on the number of days/records.
[[[day]]] [[[day]]]
aggregate_interval = 1800 # 30 minutes aggregate_interval = 1800 # 30 minutes
bottom_date_time_format = "%H:%M"
tooltip_date_time_format = "%x %X"
[[[[observations]]]] [[[[observations]]]]
[[[[[tempdew]]]]] [[[[[tempdew]]]]]
[[[[[windchill_heatindex]]]]] [[[[[windchill_heatindex]]]]]
@ -374,14 +436,17 @@ SKIN_VERSION = 3.0.1
[[[[[windRose]]]]] [[[[[windRose]]]]]
[[[[[rain]]]]] [[[[[rain]]]]]
aggregate_interval = 7200 aggregate_interval = 7200
tooltip_date_time_format = "%X"
[[[[[rainRate]]]]] [[[[[rainRate]]]]]
[[[[[UV]]]]] [[[[[UV]]]]]
[[[[[ET]]]]] [[[[[ET]]]]]
aggregate_interval = 7200 aggregate_interval = 7200
tooltip_date_time_format = "%X"
[[[[[luminosity]]]]] [[[[[luminosity]]]]]
[[[[[radiation]]]]] [[[[[radiation]]]]]
[[[[[lightning_strike_count]]]]] [[[[[lightning_strike_count]]]]]
aggregate_interval = 7200 aggregate_interval = 7200
tooltip_date_time_format = "%X"
[[[[[cloudbase]]]]] [[[[[cloudbase]]]]]
[[[[[soilTemp1]]]]] [[[[[soilTemp1]]]]]
[[[[[soilMoist1]]]]] [[[[[soilMoist1]]]]]
@ -391,6 +456,8 @@ SKIN_VERSION = 3.0.1
[[[week]]] [[[week]]]
aggregate_interval = 7200 # 2 hours aggregate_interval = 7200 # 2 hours
bottom_date_time_format = "%m/%d"
tooltip_date_time_format = "%x %X"
[[[[observations]]]] [[[[observations]]]]
[[[[[temp_min_max_avg]]]]] [[[[[temp_min_max_avg]]]]]
[[[[[tempdew]]]]] [[[[[tempdew]]]]]
@ -402,14 +469,17 @@ SKIN_VERSION = 3.0.1
[[[[[windRose]]]]] [[[[[windRose]]]]]
[[[[[rain]]]]] [[[[[rain]]]]]
aggregate_interval = 86400 aggregate_interval = 86400
tooltip_date_time_format = "%x"
[[[[[rainRate]]]]] [[[[[rainRate]]]]]
[[[[[UV]]]]] [[[[[UV]]]]]
[[[[[ET]]]]] [[[[[ET]]]]]
aggregate_interval = 86400 aggregate_interval = 86400
tooltip_date_time_format = "%x"
[[[[[luminosity]]]]] [[[[[luminosity]]]]]
[[[[[radiation]]]]] [[[[[radiation]]]]]
[[[[[lightning_strike_count]]]]] [[[[[lightning_strike_count]]]]]
aggregate_interval = 86400 aggregate_interval = 86400
tooltip_date_time_format = "%x"
[[[[[cloudbase]]]]] [[[[[cloudbase]]]]]
[[[[[soilTemp1]]]]] [[[[[soilTemp1]]]]]
[[[[[soilMoist1]]]]] [[[[[soilMoist1]]]]]
@ -419,6 +489,8 @@ SKIN_VERSION = 3.0.1
[[[month]]] [[[month]]]
aggregate_interval = 21600 # 6 hours aggregate_interval = 21600 # 6 hours
bottom_date_time_format = "%m/%d"
tooltip_date_time_format = "%x %X"
[[[[observations]]]] [[[[observations]]]]
[[[[[temp_min_max_avg]]]]] [[[[[temp_min_max_avg]]]]]
[[[[[tempdew]]]]] [[[[[tempdew]]]]]
@ -430,14 +502,17 @@ SKIN_VERSION = 3.0.1
[[[[[windRose]]]]] [[[[[windRose]]]]]
[[[[[rain]]]]] [[[[[rain]]]]]
aggregate_interval = 172800 aggregate_interval = 172800
tooltip_date_time_format = "%x"
[[[[[rainRate]]]]] [[[[[rainRate]]]]]
[[[[[UV]]]]] [[[[[UV]]]]]
[[[[[ET]]]]] [[[[[ET]]]]]
aggregate_interval = 172800 aggregate_interval = 172800
tooltip_date_time_format = "%x"
[[[[[luminosity]]]]] [[[[[luminosity]]]]]
[[[[[radiation]]]]] [[[[[radiation]]]]]
[[[[[lightning_strike_count]]]]] [[[[[lightning_strike_count]]]]]
aggregate_interval = 172800 aggregate_interval = 172800
tooltip_date_time_format = "%x"
[[[[[cloudbase]]]]] [[[[[cloudbase]]]]]
[[[[[soilTemp1]]]]] [[[[[soilTemp1]]]]]
[[[[[soilMoist1]]]]] [[[[[soilMoist1]]]]]
@ -447,6 +522,8 @@ SKIN_VERSION = 3.0.1
[[[year]]] [[[year]]]
aggregate_interval = 172800 # 2 days aggregate_interval = 172800 # 2 days
bottom_date_time_format = "%m/%d"
tooltip_date_time_format = "%x"
[[[[observations]]]] [[[[observations]]]]
[[[[[temp_min_max_avg]]]]] [[[[[temp_min_max_avg]]]]]
[[[[[tempdew]]]]] [[[[[tempdew]]]]]
@ -474,6 +551,8 @@ SKIN_VERSION = 3.0.1
[[[[[pm10_0]]]]] [[[[[pm10_0]]]]]
[[[alltime]]] [[[alltime]]]
bottom_date_time_format = "%m/%y"
tooltip_date_time_format = "%m/%Y"
[[[[observations]]]] [[[[observations]]]]
[[[[[temp_min_max_avg]]]]] [[[[[temp_min_max_avg]]]]]
[[[[[tempdew]]]]] [[[[[tempdew]]]]]
@ -565,11 +644,17 @@ SKIN_VERSION = 3.0.1
[[[celestial]]] [[[celestial]]]
template = celestial.html.tmpl template = celestial.html.tmpl
[[[sensor_status]]]
template = sensor-status.html.tmpl
# Static pages, add as many as you want. # Static pages, add as many as you want.
[[Static]] [[Static]]
#[[[about]]] #[[[about]]]
#template = about.html.tmpl #template = about.html.tmpl
#title = About #title = About
#[[[externals]]]
#template = externals.html.tmpl
#title = Webcams/Externals
[[[DWD]]] [[[DWD]]]
template = dwd.html.tmpl template = dwd.html.tmpl
title = Vorhersage vom DWD title = Vorhersage vom DWD
@ -589,7 +674,7 @@ SKIN_VERSION = 3.0.1
daily_archive = %Y-%m-%d daily_archive = %Y-%m-%d
[CopyGenerator] [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 copy_once = dist/main.js, dist/main.css, plotly-custom-build.min.js, dist/live-updates.js, favicon.ico, manifest.json, icon-192x192.png, icon-256x256.png, icon-384x384.png, icon-512x512.png, service-worker.js, offline.html, dist/assets
copy_always = dwd/SchilderEM.jpg, dwd/radar_nrw.gif, dwd/bwk_bodendruck_weu_ana.png, dwd/bwk_bodendruck_na_ana.png copy_always = dwd/SchilderEM.jpg, dwd/radar_nrw.gif, dwd/bwk_bodendruck_weu_ana.png, dwd/bwk_bodendruck_na_ana.png
[Generators] [Generators]

View file

@ -74,7 +74,7 @@ if [ "$1" = "--gen-test-config" ]; then
fi fi
if [ "$1" = "--shell" ]; then if [ "$1" = "--shell" ]; then
/bin/sh /bin/bash
exit $? exit $?
fi fi
@ -90,4 +90,4 @@ if [ ! -f "${CONF_FILE}" ]; then
exit 1 exit 1
fi fi
./bin/weewxd "$@" exec ./bin/weewxd "$@"