I apologise to the Gurus who will sigh 'not this again!" I have been working on getting WeeWx to work with Belchertown for several weeks and admit defeat. My head is spinning from days going in circles with ChatGPT on multiple related issues (TLS, MQTT over TCP yada yada).
Summary of my setup that I feel is relevant:
Local DNS record on Pi-Hole (with unbound) points broker
(mqtt.dreamwoodestate.net) to the Traefik IP.
Mikrotik router has dst-nat pointing 8883 and 9011 to those ports on the
Traefik VM.
There are also Input rules to allow those ports.
Cloudflare has a proxied A record for the broker, pointing to my static IP
which resolves to my HomeLab domain (dreamwoodestate.net)
Traefik (in own VM) supplies Letsencrypt certificate for use by browser
wanting to securely access my website with Belchertown.
MQTT broker (Mosquitto 2.0.18) is running on its own VM also.
WeeWx also has its own VM.
So far, MQTT Explorer on my LM PC can see the broker, SSYS, broker - and
all the groups below broker.
WeeWx appears to be outputting MQTT data, with rows like:
DEBUG user.mqtt: data: {'dateTime': '1754316352.0', 'barometer_mbar'....
INFO weewx.restx: MQTT: Published record 2025-08-05 00:05:52 AEST
(1754316352)
However, MQTT Explorer is not displaying any 'weather' messages from the
WeeWx MQTT client (I think this is the way to describe it).
It is subscribed to topic=weather/loop
BTW, I have chosen port '9011' for websockets as Portainer Agent is using
'9001' traditionally used around WeeWx/MQTT
weexw.log is empty - don't know if that is good or bad
Browsing to my weather data is 'working' in all respects except for the
MQTT driven 2 second updates (and that strange appearance of 'current temp'
at the top of graphs and reports - minor problem I'm sure).
Using '?debug=true' in browser shows 'MQTT: MQTT Connected. Subscribing.'
as the last entry.
Hopefully there are sufficient clues and suitable obfuscation in the
attached.
Please let me know what other info I can provide.
--
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 visit
https://groups.google.com/d/msgid/weewx-user/7f98a9b2-0334-4202-80ff-2022b17a512bn%40googlegroups.com.
# pid_file /var/run/mosquitto.pid persistence false allow_anonymous true password_file /etc/mosquitto/passwd acl_file /etc/mosquitto/acl # Insecure mqtt to localhost only, and secure mqtt listener 1883 listener 8883 cafile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/chain.pem certfile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/cert.pem keyfile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/privkey.pem protocol mqtt # websockets listener 9011 protocol websockets # cafile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/chain.pem # certfile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/cert.pem # keyfile /etc/letsencrypt/live/mqtt.dreamwoodestate.net/privkey.pem # next log related lines from # log_type all # websockets_log_level 1023 # connection_messages true # log_dest file /var/log/mosquitto/mosquitto.log # log_type error # log_type warning # log_type notice # log_type information
############################################################################### # SKIN CONFIGURATION FILE # # Copyright (c) 2010 Tom Keffer <[email protected]> # # Updated for the Belchertown Skin by Pat O'Brien, 2019 # ############################################################################### [Extras] # General Site Defaults belchertown_debug = 0 belchertown_locale = "auto" theme = light theme_toggle_enabled = 1 site_title = "My Weather Website" logo_image = "" logo_image_dark = "" radar_html = "" radar_html_dark = "" radar_width = 650 radar_height = 360 aeris_map = 0 almanac_extras = 1 # Station Observations. Special observation rainWithRainRate combines Daily Rain with Rain Rate in 1 line station_observations = "barometer", "dewpoint", "outHumidity", "rainWithRainRate" # Manifest Settings for Mobile Phones manifest_name = "WinderaWx" manifest_short_name = "WWx" # Highcharts settings highcharts_enabled = 1 graph_page_show_all_button = 1 graph_page_default_graphgroup = "day" highcharts_homepage_graphgroup = "homepage" highcharts_decimal = "auto" highcharts_thousands = "auto" # MQTT Websockets defaults mqtt_websockets_enabled = 1 mqtt_websockets_host = "mqtt.dreamwoodestate.net" mqtt_websockets_port = 9001 mqtt_websockets_ssl = 1 mqtt_websockets_topic = "weather/loop" mqtt_websockets_username = "" mqtt_websockets_password = "" # disconnect_live_website_visitor = 1800000 # Show an alert if the page updated timestamp is older than expected with this setting. Does not apply to MQTT Websocket enabled websites # The late time threshold is defined in seconds. This should be greater than your archive_interval from weewx.conf. # Typically you would want this 2 or 3 times archive_interval show_last_updated_alert = 0 last_updated_alert_threshold = 1800 # If mqtt_websockets_enabled is set to 0, but want the page to full reload on an interval, specify this below in milliseconds. 300000 = 5 minutes webpage_autorefresh = 0 # Image Reload Section. # Set reload_hook_images to 1 to enable, then set the number of *seconds* for each section to reload. # A value of -1 will disable reloading images in that section. # radar = the radar image if you used radar_html setting # asi = index_hook_after_station_info.inc # af = index_hook_after_forecast.inc # as = index_hook_after_snapshot.inc # ac = index_hook_after_charts.inc reload_hook_images = 0 reload_images_radar = 300 reload_images_hook_asi = -1 reload_images_hook_af = -1 reload_images_hook_as = -1 reload_images_hook_ac = -1 # Forecast defaults forecast_enabled = 0 forecast_provider = "aeris" forecast_api_id = "" forecast_api_secret = "" forecast_units = "us" forecast_interval_hours = 24 # values are 0,1,3 or 24 forecast_lang = "en" forecast_stale = 3540 forecast_aeris_use_metar = 1 forecast_alert_enabled = 0 forecast_alert_limit = 1 forecast_show_daily_forecast_link = 0 forecast_daily_forecast_link = "" forecast_show_humidity_dewpoint = 0 # Air Quality Index (AQI) defaults aqi_enabled = 0 aqi_location_enabled = 0 # Show Beaufort wind scale category under wind table beaufort_category = 0 # Earthquake defaults earthquake_enabled = 0 earthquake_maxradiuskm = 1000 earthquake_stale = 10740 earthquake_server = USGS geonet_mmi = 4 # Social Share Button Defaults. Define the text below under Labels facebook_enabled = 0 twitter_enabled = 0 social_share_html = "http://yourwebsite" # Google Analytics #googleAnalyticsId = UA-12345678-1 # This is the display of the Pi Kiosk which is in the /pi folder pi_kiosk_bold = "false" pi_theme = "auto" # This is the display of the kiosk page which is kiosk.html radar_html_kiosk = "" radar_width_kiosk = 490 radar_height_kiosk = 362 mqtt_websockets_host_kiosk = "" mqtt_websockets_port_kiosk = "" mqtt_websockets_ssl_kiosk = "" forecast_interval_hours_kiosk = 24 aqi_enabled_kiosk = 0 # Display a Back To Top Button back_to_top_button_enabled = 0 # Button position, 0 for right side , 1 for left side back_to_top_button_position = 0 # Button opacity from 0.1 to 1.0 back_to_top_button_opacity = 0.8 ############################################################################### [Labels] # Labels used in this skin [[Generic]] # Generic labels, keyed by an observation type. # To change a label or translate it to your language # change the text after the equal sign. # Extra Observation labels appTemp = Apparent Temperature cloudbase = Cloud Base visibility = Visibility windrun = Wind Run cloud_cover = Cloud Cover aqi = AQI inTemp = Inside Temp inHumidity = In Humid # HTML Header Meta Tags and HTML Title. These labels have a default value # set inside of header.html.tmpl. Leave as "" to use the default value. html_title = "" html_description = "" # Footer Information footer_copyright_text = "Dreamwood Estate" footer_disclaimer_text = "Forecast data is approximate." # Twitter Social Share twitter_text = "Check out my website: My Weather Website Weather Conditions" twitter_owner = "YourTwitterUsernameHere" twitter_hashtags = "weewx #weather" # Station Observation Table rainWithRainRate = Rain # Navigation Menu nav_home = Home nav_graphs = Graphs nav_records = Records nav_reports = Reports nav_about = About # Default page headers home_page_header = "Windera NSW - Weather" graphs_page_header = "Weather Observation Graphs" records_page_header = "Weather Observation Records" reports_page_header = "Weather Observation Reports" about_page_header = "About This Weather Station" powered_by = "Observations: Davis Vantage PRO2 Weather Station" # Earthquake translations earthquake_no_data = No recent earthquake data available! # Home Page Text and Titles second = "second", "seconds" minute = "minute", "minutes" hour = "hour", "hours" sun = Sun moon = Moon sun_and_moon = Sun & Moon moon_visible = visible wind_speed = Speed wind_gust = Gust wind_today_max = Today Max feels_like = Feels like highest_temperature = High lowest_temperature = Low average_temperature = Average header_last_updated_alert = Notice: This page hasn't been updated recently and may contain stale data! header_last_updated = Last Updated mqtt_websockets_connecting = Connecting to weather station real time data. mqtt_websockets_waiting = Connected. Waiting for data. mqtt_websockets_connected = Connected to weather station live. Data received mqtt_websockets_stopped = Live updates have stopped. mqtt_websockets_continue = Continue live updates mqtt_websockets_failed = Failed connecting to the weather station. Please try again later! mqtt_websockets_lost = Lost connection to the weather station. Please try again later! weather_snapshots = Weather Record Snapshots. weather_snapshots_link = View all weather records here. snapshot_high = High snapshot_low = Low snapshot_today_avg_wind = Average Wind snapshot_today_high_wind = Highest Wind snapshot_today_high_uv = Highest UV snapshot_today_rain = Today's Rain snapshot_today_rainrate = Highest Rate snapshot_month_avg_wind = Average Wind snapshot_month_high_wind = Highest Wind snapshot_month_high_uv = Highest UV snapshot_month_rain = Total Rain snapshot_month_rainrate = Highest Rate earthquake_title = Recent Local Earthquake earthquake_magnitude = Magnitude homepage_graphs_link = View more here. copyright = Copyright # Forecast alert and almanac Popup close = Close # Almanac Popup almanac_more_details = More Almanac Information almanac_modal_title = Almanac Information sun_always_down = Always down sun_always_up = Always up more_than_yesterday = more than yesterday less_than_yesterday = less than yesterday start_civil_twilight = Start civil twilight rise = Rise transit = Transit set = Set end_civil_twilight = End Civil Twilight azimuth = Azimuth altitude = Altitude right_ascension = Right ascension declination = Declination equinox = Equinox solstice = Solstice total_daylight = Total daylight full_moon = Full moon new_moon = New moon phase = Phase full = full install_pyephem = Install pyephem for detailed celestial timings. # General Forecast translations forecast_header = Forecast daily_forecast = Daily Forecast alert_in_effect = in effect until forecast_last_updated = Last Updated on forecast_interval_caption = Forecast Interval (hours): # Air Quality Index label defaults aqi_good = good aqi_moderate = moderate aqi_usg = unhealthy for some # Official wording: "unhealthy for sensitive groups" aqi_unhealthy = unhealthy aqi_very_unhealthy = very unhealthy aqi_hazardous = hazardous aqi_unknown = unknown # Aeris Weather Forecast Codes. From https://www.aerisweather.com/support/docs/api/reference/weather-codes/ forecast_cloud_code_CL = "Clear" forecast_cloud_code_FW = "Mostly Clear" forecast_cloud_code_SC = "Partly Cloudy" forecast_cloud_code_BK = "Mostly Cloudy" forecast_cloud_code_OV = "Cloudy" forecast_coverage_code_AR = "Areas of" forecast_coverage_code_BR = "Brief" forecast_coverage_code_C = "Chance of" forecast_coverage_code_D = "Definite" forecast_coverage_code_FQ = "Frequent" forecast_coverage_code_IN = "Intermittent" forecast_coverage_code_IS = "Isolated" forecast_coverage_code_L = "Likely" forecast_coverage_code_NM = "Numerous" forecast_coverage_code_O = "Occasional" forecast_coverage_code_PA = "Patchy" forecast_coverage_code_PD = "Periods of" forecast_coverage_code_S = "Slight Chance of" forecast_coverage_code_SC = "Scattered" forecast_coverage_code_VC = "In the Vicinity" forecast_coverage_code_WD = "Widespread" forecast_intensity_code_VL = "Very Light" forecast_intensity_code_L = "Light" forecast_intensity_code_H = "Heavy" forecast_intensity_code_VH = "Very Heavy" forecast_weather_code_A = "Hail" forecast_weather_code_BD = "Blowing Dust" forecast_weather_code_BN = "Blowing Sand" forecast_weather_code_BR = "Mist" forecast_weather_code_BS = "Blowing Snow" forecast_weather_code_BY = "Blowing Spray" forecast_weather_code_F = "Fog" forecast_weather_code_FR = "Frost" forecast_weather_code_H = "Haze" forecast_weather_code_IC = "Ice Crystals" forecast_weather_code_IF = "Ice Fog" forecast_weather_code_IP = "Sleet" forecast_weather_code_K = "Smoke" forecast_weather_code_L = "Drizzle" forecast_weather_code_R = "Rain" forecast_weather_code_RW = "Rain Showers" forecast_weather_code_RS = "Rain/Snow Mix" forecast_weather_code_SI = "Snow/Sleet Mix" forecast_weather_code_WM = "Wintry Mix" forecast_weather_code_S = "Snow" forecast_weather_code_SW = "Snow Showers" forecast_weather_code_T = "Thunderstorms" forecast_weather_code_UP = "Unknown Precipitation" forecast_weather_code_VA = "Volcanic Ash" forecast_weather_code_WP = "Waterspouts" forecast_weather_code_ZF = "Freezing Fog" forecast_weather_code_ZL = "Freezing Drizzle" forecast_weather_code_ZR = "Freezing Rain" forecast_weather_code_ZY = "Freezing Spray" # Aeris US/Canada Alert Codes. From https://www.aerisweather.com/support/docs/aeris-maps/reference/alert-types/ forecast_alert_code_TOE = "911 Telephone Outage" forecast_alert_code_ADR = "Administrative Message" forecast_alert_code_AQA = "Air Quality Alert" forecast_alert_code_AQ_S = "Air Quality Alert" forecast_alert_code_AS_Y = "Air Stagnation Advisory" forecast_alert_code_AR_W = "Arctic Outflow Warning" forecast_alert_code_AF_Y = "Ashfall Advisory" forecast_alert_code_MH_Y = "Ashfall Advisory" forecast_alert_code_AF_W = "Ashfall Warning" forecast_alert_code_AVW = "Avalanche Warning" forecast_alert_code_AVA = "Avalanche Watch" forecast_alert_code_BH_S = "Beach Hazard Statement" forecast_alert_code_BZ_W = "Blizzard Warning" forecast_alert_code_DU_Y = "Blowing Dust Advisory" forecast_alert_code_BS_Y = "Blowing Snow Advisory" forecast_alert_code_BW_Y = "Brisk Wind Advisory" forecast_alert_code_CAE = "Child Abduction Emergency" forecast_alert_code_CDW = "Civil Danger Warning" forecast_alert_code_CEM = "Civil Emergency Message" forecast_alert_code_CF_Y = "Coastal Flood Advisory" forecast_alert_code_CF_S = "Coastal Flood Statement" forecast_alert_code_CF_W = "Coastal Flood Warning" forecast_alert_code_CF_A = "Coastal Flood Watch" forecast_alert_code_FG_Y = "Dense Fog Advisory" forecast_alert_code_MF_Y = "Dense Fog Advisory" forecast_alert_code_FO_Y = "Fog Advisory" forecast_alert_code_SM_Y = "Dense Smoke Advisory" forecast_alert_code_MS_Y = "Dense Smoke Advisory" forecast_alert_code_DS_W = "Dust Storm Warning" forecast_alert_code_EQW = "Earthquake Warning" forecast_alert_code_EVI = "Evacuation - Immediate" forecast_alert_code_EH_W = "Excessive Heat Warning" forecast_alert_code_EH_A = "Excessive Heat Watch" forecast_alert_code_EC_W = "Extreme Cold Warning" forecast_alert_code_EC_A = "Extreme Cold Watch" forecast_alert_code_RFD = "Extreme Fire Danger" forecast_alert_code_EW_W = "Extreme Wind Warning" forecast_alert_code_FRW = "Fire Warning" forecast_alert_code_FW_A = "Fire Weather Watch" forecast_alert_code_FF_S = "Flash Flood Statement" forecast_alert_code_FF_W = "Flash Flood Warning" forecast_alert_code_FF_A = "Flash Flood Watch" forecast_alert_code_FE_W = "Flash Freeze Warning" forecast_alert_code_FL_Y = "Flood Advisory" forecast_alert_code_FL_S = "Flood Statement" forecast_alert_code_FL_W = "Flood Warning" forecast_alert_code_FA_W = "Flood Warning" forecast_alert_code_FL_A = "Flood Watch" forecast_alert_code_FA_A = "Flood Watch" forecast_alert_code_FZ_W = "Freeze Warning" forecast_alert_code_FZ_A = "Freeze Watch" forecast_alert_code_ZL_Y = "Freezing Drizzle Advisory" forecast_alert_code_ZF_Y = "Freezing Fog Advisory" forecast_alert_code_ZR_W = "Freezing Rain Warning" forecast_alert_code_UP_Y = "Freezing Spray Advisory" forecast_alert_code_FR_Y = "Frost Advisory" forecast_alert_code_GL_W = "Gale Warning" forecast_alert_code_GL_A = "Gale Watch" forecast_alert_code_HZ_W = "Hard Freeze Warning" forecast_alert_code_HZ_A = "Hard Freeze Watch" forecast_alert_code_HMW = "Hazardous Materials Warning" forecast_alert_code_SE_W = "Hazardous Seas Warning" forecast_alert_code_SE_A = "Hazardous Seas Watch" forecast_alert_code_HWO = "Hazardous Weather Outlook" forecast_alert_code_HT_Y = "Heat Advisory" forecast_alert_code_HT_W = "Heat Warning" forecast_alert_code_UP_W = "Heavy Freezing Spray Warning" forecast_alert_code_UP_A = "Heavy Freezing Spray Watch" forecast_alert_code_SU_Y = "High Surf Advisory" forecast_alert_code_SU_W = "High Surf Warning" forecast_alert_code_HW_W = "High Wind Warning" forecast_alert_code_HW_A = "High Wind Watch" forecast_alert_code_HF_W = "Hurricane Force Wind Warning" forecast_alert_code_HF_A = "Hurricane Force Wind Watch" forecast_alert_code_HU_S = "Hurricane Local Statement" forecast_alert_code_HU_W = "Hurricane Warning" forecast_alert_code_HU_A = "Hurricane Watch" forecast_alert_code_FA_Y = "Hydrologic Advisory" forecast_alert_code_IS_W = "Ice Storm Warning" forecast_alert_code_LE_W = "Lake Effect Snow Warning" forecast_alert_code_LW_Y = "Lake Wind Advisory" forecast_alert_code_LS_Y = "Lakeshore Flood Advisory" forecast_alert_code_LS_S = "Lakeshore Flood Statement" forecast_alert_code_LS_W = "Lakeshore Flood Warning" forecast_alert_code_LS_A = "Lakeshore Flood Watch" forecast_alert_code_LEW = "Law Enforcement Warning" forecast_alert_code_LAE = "Local Area Emergency" forecast_alert_code_LO_Y = "Low Water Advisory" forecast_alert_code_MA_S = "Marine Weather Statement" forecast_alert_code_NUW = "Nuclear Power Plant Warning" forecast_alert_code_RHW = "Radiological Hazard Warning" forecast_alert_code_RA_W = "Rainfall Warning" forecast_alert_code_FW_W = "Red Flag Warning" forecast_alert_code_RFW = "Red Flag Warning" forecast_alert_code_RP_S = "Rip Current Statement" forecast_alert_code_SV_W = "Severe Thunderstorm Warning" forecast_alert_code_SV_A = "Severe Thunderstorm Watch" forecast_alert_code_SV_S = "Severe Weather Statement" forecast_alert_code_TO_S = "Severe Weather Statement" forecast_alert_code_SPW = "Shelter In Place Warning" forecast_alert_code_NOW = "Short Term Forecast" forecast_alert_code_SC_Y = "Small Craft Advisory" forecast_alert_code_SW_Y = "Small Craft Advisory For Hazadous Seas" forecast_alert_code_RB_Y = "Small Craft Advisory for Rough Bar" forecast_alert_code_SI_Y = "Small Craft Advisory for Winds" forecast_alert_code_SO_W = "Smog Warning" forecast_alert_code_SQ_W = "Snow Squall Warning" forecast_alert_code_SQ_A = "Snow Squall Watch" forecast_alert_code_SB_Y = "Snow and Blowing Snow Advisory" forecast_alert_code_SN_W = "Snowfall Warning" forecast_alert_code_MA_W = "Special Marine Warning" forecast_alert_code_SPS = "Special Weather Statement" forecast_alert_code_SG_W = "Storm Surge Warning" forecast_alert_code_SS_W = "Storm Surge Warning" forecast_alert_code_SS_A = "Storm Surge Watch" forecast_alert_code_SR_W = "Storm Warning" forecast_alert_code_SR_A = "Storm Watch" forecast_alert_code_TO_W = "Tornado Warning" forecast_alert_code_TO_A = "Tornado Watch" forecast_alert_code_TC_S = "Tropical Cyclone Statement" forecast_alert_code_TR_S = "Tropical Storm Local Statement" forecast_alert_code_TR_W = "Tropical Storm Warning" forecast_alert_code_TR_A = "Tropical Storm Watch" forecast_alert_code_TS_Y = "Tsunami Advisory" forecast_alert_code_TS_W = "Tsunami Warning" forecast_alert_code_TS_A = "Tsunami Watch" forecast_alert_code_TY_S = "Typhoon Local Statement" forecast_alert_code_TY_W = "Typhoon Warning" forecast_alert_code_TY_A = "Typhoon Watch" forecast_alert_code_VOW = "Volcano Warning" forecast_alert_code_WX_Y = "Weather Advisory" forecast_alert_code_WX_W = "Weather Warning" forecast_alert_code_WI_Y = "Wind Advisory" forecast_alert_code_WC_Y = "Wind Chill Advisory" forecast_alert_code_WC_W = "Wind Chill Warning" forecast_alert_code_WC_A = "Wind Chill Watch" forecast_alert_code_WI_W = "Wind Warning" forecast_alert_code_WS_W = "Winter Storm Warning" forecast_alert_code_WS_A = "Winter Storm Watch" forecast_alert_code_LE_A = "Winter Storm Watch" forecast_alert_code_BZ_A = "Winter Storm Watch" forecast_alert_code_WW_Y = "Winter Weather Advisory" forecast_alert_code_LE_Y = "Winter Weather Advisory" forecast_alert_code_ZR_Y = "Winter Weather Advisory" # Aeris European Alert Codes. From https://www.aerisweather.com/support/docs/aeris-maps/reference/alert-types/ forecast_alert_code_AW_WI_MN = "Minor Wind" forecast_alert_code_AW_WI_MD = "Moderate Wind" forecast_alert_code_AW_WI_SV = "Servere Wind" forecast_alert_code_AW_WI_EX = "Extreme Wind" forecast_alert_code_AW_SI_MN = "Minor Snow/Ice" forecast_alert_code_AW_SI_MD = "Moderate Snow/Ice" forecast_alert_code_AW_SI_SV = "Servere Snow/Ice" forecast_alert_code_AW_SI_EX = "Extreme Snow/Ice" forecast_alert_code_AW_TS_MN = "Minor Thunderstorm" forecast_alert_code_AW_TS_MD = "Moderate Thunderstorm" forecast_alert_code_AW_TS_SV = "Servere Thunderstorm" forecast_alert_code_AW_TS_EX = "Extreme Thunderstorm" forecast_alert_code_AW_LI_MN = "Minor Lightning" forecast_alert_code_AW_LI_MD = "Moderate Lightning" forecast_alert_code_AW_LI_SV = "Servere Lightning" forecast_alert_code_AW_LI_EX = "Extreme Lightning" forecast_alert_code_AW_FG_MN = "Minor Fog" forecast_alert_code_AW_FG_MD = "Moderate Fog" forecast_alert_code_AW_FG_SV = "Servere Fog" forecast_alert_code_AW_FG_EX = "Extreme Fog" forecast_alert_code_AW_HT_MN = "Minor High Temperature" forecast_alert_code_AW_HT_MD = "Moderate High Temperature" forecast_alert_code_AW_HT_SV = "Servere High Temperature" forecast_alert_code_AW_HT_EX = "Extreme High Temperature" forecast_alert_code_AW_LT_MN = "Minor Low Temperature" forecast_alert_code_AW_LT_MD = "Moderate Low Temperature" forecast_alert_code_AW_LT_SV = "Servere Low Temperature" forecast_alert_code_AW_LT_EX = "Extreme Low Temperature" forecast_alert_code_AW_CE_MN = "Minor Coastal Event" forecast_alert_code_AW_CE_MD = "Moderate Coastal Event" forecast_alert_code_AW_CE_SV = "Servere Coastal Event" forecast_alert_code_AW_CE_EX = "Extreme Coastal Event" forecast_alert_code_AW_FR_MN = "Minor Forest Fire" forecast_alert_code_AW_FR_MD = "Moderate Forest Fire" forecast_alert_code_AW_FR_SV = "Servere Forest Fire" forecast_alert_code_AW_FR_EX = "Extreme Forest Fire" forecast_alert_code_AW_AV_MN = "Minor Avalanche" forecast_alert_code_AW_AV_MD = "Moderate Avalanche" forecast_alert_code_AW_AV_SV = "Servere Avalanche" forecast_alert_code_AW_AV_EX = "Extreme Avalanche" forecast_alert_code_AW_RA_MN = "Minor Rainfall" forecast_alert_code_AW_RA_MD = "Moderate Rainfall" forecast_alert_code_AW_RA_SV = "Servere Rainfall" forecast_alert_code_AW_RA_EX = "Extreme Rainfall" forecast_alert_code_AW_FL_MN = "Minor Flooding" forecast_alert_code_AW_FL_MD = "Moderate Flooding" forecast_alert_code_AW_FL_SV = "Servere Flooding" forecast_alert_code_AW_FL_EX = "Extreme Flooding" forecast_alert_code_AW_RF_MN = "Minor Rain Flooding" forecast_alert_code_AW_RF_MD = "Moderate Rain Flooding" forecast_alert_code_AW_RF_SV = "Servere Rain Flooding" forecast_alert_code_AW_RF_EX = "Extreme Rain Flooding" forecast_alert_code_AW_UK_MN = "Minor Unknown" forecast_alert_code_AW_UK_MD = "Moderate Unknown" forecast_alert_code_AW_UK_SV = "Servere Unknown" forecast_alert_code_AW_UK_EX = "Extreme Unknown" # Beaufort Scale Default Labels beaufort0 = "calm" beaufort1 = "light air" beaufort2 = "light breeze" beaufort3 = "gentle breeze" beaufort4 = "moderate breeze" beaufort5 = "fresh breeze" beaufort6 = "strong breeze" beaufort7 = "near gale" beaufort8 = "gale" beaufort9 = "strong gale" beaufort10 = "storm" beaufort11 = "violent storm" beaufort12 = "hurricane force" # DarkSky Specific Codes forecast_weather_code_W = "Windy" forecast_weather_code_TO = "Tornado" # Graphs Page Text and Titles graphs_page_all_button = All graphs_windrose_frequency = Frequency graphs_windDir_ordinals = '{ 0: "N", 90: "E", 180: "S", 270: "W", 360: "N" }' # Records Page Text and Titles records_ending = ending records_days_text = days records_all_time = All Time records_temperature_records = Temperature Records records_high_temp = Highest Temperature records_low_temp = Lowest Temperature records_high_apptemp = Highest Apparent Temperature records_low_apptemp = Lowest Apparent Temperature records_high_heatindex = Highest Heat Index records_low_windchill = Lowest Wind Chill records_largest_temp_range = Largest Daily Temperature Range records_smallest_temp_range = Smallest Daily Temperature Range records_wind_records = Wind Records records_strongest_wind = Strongest Wind Gust records_daily_windrun = Highest Daily Wind Run records_rain_records = Rain Records records_highest_daily_rainfall = Highest Daily Rainfall records_highest_daily_rainrate = Highest Daily Rain Rate records_month_high_rainfall = Month with Highest Total Rainfall records_total_rainfall = Total Rainfall for records_consec_days_with_rain = Consecutive Days With Rain records_consec_days_without_rain = Consecutive Days Without Rain records_humidity_records = Humidity Records records_high_humidity = Highest Humidity records_lowest_humidity = Lowest Humidity records_highest_dewpoint = Highest Dewpoint records_lowest_dewpoint = Lowest Dewpoint records_barometer_records = Barometer Records records_high_barometer = Highest Barometer records_low_barometer = Lowest Barometer records_sun_records = Sun Records records_high_solar_rad = Highest Solar Radiation records_high_uv = Highest UV records_inTemp_records = Inside Temp Records records_high_inTemp = Highest inside Temp records_low_inTemp = Lowest inside Temp # NOAA Reports Page Text and Titles reports_title = NOAA Reports reports_click_here_link = Click here reports_view_more = to view this report directly or click on a month or year to change the NOAA report. # Pi Page Text and Titles mqtt_websockets_waiting_pi = Connecting. mqtt_websockets_connected_pi = Connected. Received # moment.js default labels formats time_earthquake = "LLL" time_last_updated = "LL, LTS" time_snapshot_records_today_header = "dddd, LL" time_snapshot_records_month_header = "MMMM YYYY" time_sunrise = "LT" time_sunset = "LT" time_forecast_alert_expires = "LLL" time_forecast_date = "ddd M/DD" time_forecast_time = "ddd LT" # must be {day} {time} format time_forecast_last_updated = "LLL" time_records_page_full_date = "LLL" time_records_page_month_day_year = "LL" time_records_page_rainfall_range_begin = "MMMM DD" time_records_page_rainfall_range_end = "LL" ############################################################################### [Almanac] # The labels to be used for the phases of the moon: moon_phases = New Moon, Waxing Crescent, First Quarter, Waxing Gibbous, Full Moon, Waning Gibbous, Last Quarter, Waning Crescent ############################################################################### [Units] # This section is for managing the selection and formatting of units. [[Groups]] # For each group of measurements, this section sets what units to # use for it. # NB: The unit is always in the singular. I.e., 'mile_per_hour', # NOT 'miles_per_hour' group_altitude = foot # Options are 'foot' or 'meter' group_degree_day = degree_F_day # Options are 'degree_F_day' or 'degree_C_day' group_direction = degree_compass group_distance = mile # Options are 'mile' or 'km' group_moisture = centibar group_percent = percent group_pressure = inHg # Options are 'inHg', 'mmHg', 'mbar', or 'hPa' group_radiation = watt_per_meter_squared group_rain = inch # Options are 'inch', 'cm', or 'mm' group_rainrate = inch_per_hour # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour' group_speed = mile_per_hour # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second' group_speed2 = mile_per_hour2 # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2' group_temperature = degree_F # Options are 'degree_F' or 'degree_C' group_uv = uv_index group_volt = volt # The following are used internally and should not be changed: group_count = count group_interval = minute group_time = unix_epoch group_elapsed = second [[StringFormats]] # This section sets the string formatting for each type of unit. centibar = %.0f cm = %.2f cm_per_hour = %.2f degree_C = %.1f degree_F = %.1f degree_compass = %.0f foot = %.0f hPa = %.1f hour = %.1f inHg = %.3f inch = %.2f inch_per_hour = %.2f km = %.2f km_per_hour = %.0f km_per_hour2 = %.1f knot = %.0f knot2 = %.1f mbar = %.1f meter = %.0f meter_per_second = %.1f meter_per_second2 = %.1f mile = %.2f mile_per_hour = %.0f mile_per_hour2 = %.1f mm = %.1f mmHg = %.1f mm_per_hour = %.1f percent = %.0f second = %.0f uv_index = %.1f volt = %.1f watt_per_meter_squared = %.0f NONE = "N/A" [[Labels]] # This section sets a label to be used for each type of unit. centibar = " cb" cm = " cm" cm_per_hour = " cm/hr" degree_C = " °C" degree_F = " °F" degree_compass = ° foot = " feet" hPa = " hPa" inHg = " inHg" inch = " in" inch_per_hour = " in/hr" km = " km" km_per_hour = " km/h" km_per_hour2 = " km/h" knot = " knots" knot2 = " knots" mbar = " mbar" meter = " meters" meter_per_second = " m/s" meter_per_second2 = " m/s" mile = " miles" mile_per_hour = " mph" mile_per_hour2 = " mph" mm = " mm" mmHg = " mmHg" mm_per_hour = " mm/hr" percent = % volt = " V" watt_per_meter_squared = " W/m²" day = " day", " days" hour = " hour", " hours" minute = " minute", " minutes" second = " second", " seconds" NONE = "" [[TimeFormats]] # This section sets the string format to be used for each time scale. # The values below will work in every locale, but may not look # particularly attractive. See the Customization Guide for alternatives. day = %X week = %X (%A) month = %x %X year = %x %X rainyear = %x %X current = %x %X ephem_day = %X ephem_year = %x %X [[TimeZone]] # The time zone in 'Area/Location' format. e. g. America/New_York time_zone = "Australia/Sydney" [[Ordinates]] # The ordinal directions. The last one should be for no wind direction directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A [[DegreeDays]] # This section sets the base temperatures used for the calculation # of heating and cooling degree-days. # Base temperature for heating days, with unit: heating_base = 65, degree_F # Base temperature for cooling days, with unit: cooling_base = 65, degree_F [[Trend]] time_delta = 10800 # 3 hours time_grace = 300 # 5 minutes ############################################################################### [CheetahGenerator] # This section is used by the generator CheetahGenerator, and specifies # which files are to be generated from which template. search_list_extensions = user.belchertown.getData # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii' encoding = html_entities [[SummaryByMonth]] # Reports that summarize "by month" [[[NOAA_month]]] encoding = utf8 template = NOAA/NOAA-YYYY-MM.txt.tmpl [[SummaryByYear]] # Reports that summarize "by year" [[[NOAA_year]]] encoding = utf8 template = NOAA/NOAA-YYYY.txt.tmpl [[ToDate]] # Reports that show statistics "to date", such as day-to-date, # week-to-date, month-to-date, etc. [[[weewx_data]]] template = json/weewx_data.json.tmpl [[[Belchertown]]] template = js/belchertown.js.tmpl [[[home]]] template = index.html.tmpl [[[about]]] template = about/index.html.tmpl [[[graphs]]] template = graphs/index.html.tmpl [[[records]]] template = records/index.html.tmpl [[[reports]]] template = reports/index.html.tmpl [[[pi]]] template = pi/index.html.tmpl [[[kiosk]]] template = kiosk.html.tmpl [[[manifest]]] encoding = utf8 template = manifest.json.tmpl ############################################################################### [CopyGenerator] # This section is used by the generator CopyGenerator # List of files to be copied only the first time the generator runs copy_once = favicon.ico, images/*, json/index.html, js/index.html, js/responsive-menu.js, robots.txt # List of files to be copied each time the generator runs copy_always = *.css ############################################################################### # # The list of generators that are to be run: # [Generators] generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.reportengine.CopyGenerator, user.belchertown.HighchartsJsonGenerator
traefik.yaml
Description: application/yaml
# WEEWX CONFIGURATION FILE # # Copyright (c) 2009-2024 Tom Keffer <[email protected]> # See the file LICENSE.txt for your rights. ############################################################################## # This section is for general configuration information. # Set to 1 for extra debug info, otherwise comment it out or set to zero. debug = 0 # Suggested by Mike Wall on Google groups at https://groups.google.com/g/weewx-user/c/oOg5qB6SCL4 # loop_on_init = true # Whether to log successful operations. May get overridden below. log_success = True # Whether to log unsuccessful operations. May get overridden below. log_failure = True # This configuration file was created by ... version = 5.1.0 ############################################################################## # This section is for information about the station. [Station] # Description of the station location, such as your town. location = Dreamwood Estate # Latitude in decimal degrees. Negative for southern hemisphere. latitude = -33.214868 # Longitude in decimal degrees. Negative for western hemisphere. longitude = 149.022575 # Altitude of the station, with the unit it is in. This is used only # if the hardware cannot supply a value. altitude = 735, meter # Choose 'foot' or 'meter' for unit # Set to type of station hardware. There must be a corresponding stanza # in this file, which includes a value for the 'driver' option. station_type = Vantage # If you have a website, you may specify an URL. The URL is required if you # intend to register your station. The URL must include the scheme, for # example, "http://" or "https://" station_url = https://dreamwoodinternational.com/weewx/belchertown # The start of the rain year (1=January; 10=October, etc.). This is # downloaded from the station if the hardware supports it. rain_year_start = 1 # Start of week (0=Monday, 6=Sunday) week_start = 0 ############################################################################## [Vantage] # This section is for the Davis Vantage series of weather stations. # Connection type: serial or ethernet # serial (the classic VantagePro) # ethernet (the WeatherLinkIP or Serial-Ethernet bridge) type = serial # If the connection type is serial, a port must be specified: # Debian, Ubuntu, Redhat, Fedora, and SuSE: # /dev/ttyUSB0 is a common USB port name # /dev/ttyS0 is a common serial port name # BSD: # /dev/cuaU0 is a common serial port name port = /dev/ttyUSB0 # If the connection type is ethernet, an IP Address/hostname is required: # host = 1.2.3.4 ###################################################### # The rest of this section rarely needs any attention. # You can safely leave it "as is." ###################################################### # Serial baud rate (usually 19200) baudrate = 19200 # TCP port (when using the WeatherLinkIP) # tcp_port = 22222 # TCP send delay (when using the WeatherLinkIP): # tcp_send_delay = 0.5 # The type of LOOP packet to request: 1 = LOOP1; 2 = LOOP2; 3 = both loop_request = 1 # The id of your ISS station (usually 1). If you use a wind meter connected # to a anemometer transmitter kit, use its id iss_id = 1 # How long to wait for a response from the station before giving up (in # seconds; must be greater than 2) timeout = 4 # How long to wait before trying again (in seconds) wait_before_retry = 1.2 # How many times to try before giving up: max_tries = 4 # Vantage model Type: 1 = Vantage Pro; 2 = Vantage Pro2 model_type = 2 # The driver to use: driver = weewx.drivers.vantage ############################################################################## [Simulator] # This section is for the weewx weather station simulator. # The time (in seconds) between LOOP packets. loop_interval = 2.5 # The simulator mode can be either 'simulator' or 'generator'. # Real-time simulator. Sleep between each LOOP packet. mode = simulator # Generator. Emit LOOP packets as fast as possible (useful for testing). #mode = generator # The start time. Format is YYYY-mm-ddTHH:MM. If not specified, the # default is to use the present time. #start = 2011-01-01T00:00 # The driver to use. driver = weewx.drivers.simulator ############################################################################## # This section is for uploading data to Internet sites [StdRESTful] # Uncomment and change to override logging for uploading services. # log_success = True # log_failure = True [[StationRegistry]] # To register this weather station at weewx.com, set this to true, and # set option 'station_url', located in the [Station] section above. register_this_station = False [[AWEKAS]] # This section is for configuring posts to AWEKAS. # If you wish to post to AWEKAS, set the option 'enable' to true, then # specify a username and password. # Use quotes around the password to guard against parsing errors. enable = false username = replace_me password = replace_me [[CWOP]] # This section is for configuring posts to CWOP. # If you wish to post to CWOP, set the option 'enable' to true, # then specify the station ID (e.g., CW1234). enable = false station = replace_me # If this is an APRS (radio amateur) station, specify the # passcode (e.g., 12345). Otherwise, ignore. passcode = replace_me [[PWSweather]] # This section is for configuring posts to PWSweather.com. # If you wish to post to PWSweather.com, set the option 'enable' to # true, then specify a station and password. # Use quotes around the password to guard against parsing errors. enable = true station = redacted password = redacted [[WOW]] # This section is for configuring posts to WOW. # If you wish to post to WOW, set the option 'enable' to true, then # specify a station and password. # Use quotes around the password to guard against parsing errors. enable = false station = replace_me password = replace_me [[WeatherCloud]] # This section added by PAS 21/6/2025 # This section is for configuring posts to WeatherCloud. # If you wish to post to WeatherCloud, set the option 'enable' to true, then # specify a station and password. # Use quotes around the password to guard against parsing errors. enable = true id = redacted key = redacted [[Wunderground]] # This section is for configuring posts to the Weather Underground. # If you wish to post to the Weather Underground, set the option # 'enable' to true, then specify a station (e.g., 'KORHOODR3'). Use # the station key (find it at # https://www.wunderground.com/member/devices) for the password. enable = true station = redacted password = redacted # Set the following to True to have weewx use the WU "Rapidfire" # protocol. Not all hardware can support it. See the User's Guide. rapidfire = False [[MQTT]] server_url = mqtts://user:[email protected]:8883/ topic = weather/loop unit_system = METRICWX binding = loop,archive aggregation = aggregate retain = false log_success = true log_failure = true ############################################################################## # This section specifies what reports, using which skins, to generate. [StdReport] # Where the skins reside, relative to WEEWX_ROOT SKIN_ROOT = /etc/weewx/skins # Where the generated reports should go, relative to WEEWX_ROOT HTML_ROOT = /var/www/html/weewx # Uncomment and change to override logging for reports. # log_success = True # log_failure = True # The database binding indicates which data should be used in reports. data_binding = wx_binding # Each of the following subsections defines a report that will be run. # See the customizing guide to change the units, plot types and line # colors, modify the fonts, display additional sensor data, and other # customizations. Many of those changes can be made here by overriding # parameters, or by modifying templates within the skin itself. [[SeasonsReport]] # The SeasonsReport uses the 'Seasons' skin, which contains the # images, templates and plots for the report. skin = Seasons enable = true [[SmartphoneReport]] # The SmartphoneReport uses the 'Smartphone' skin, and the images and # files are placed in a dedicated subdirectory. skin = Smartphone enable = true HTML_ROOT = /var/www/html/weewx/smartphone [[MobileReport]] # The MobileReport uses the 'Mobile' skin, and the images and files # are placed in a dedicated subdirectory. skin = Mobile enable = true HTML_ROOT = /var/www/html/weewx/mobile [[StandardReport]] # This is the old "Standard" skin. By default, it is not enabled. skin = Standard enable = true [[Belchertown]] skin = Belchertown HTML_ROOT = /var/www/html/weewx/belchertown enable = true [[[Extras]]] # For help refer to the docs at https://github.com/poblabs/weewx-belchertown # and consult skin.conf for the configurable elements and their hierarchy #--- General Options --- belchertown_debug = 0 # belchertown_locale = "auto" belchertown_locale = en_AU.utf8 theme = auto theme_toggle_enabled = 1 # logo_image = "" # logo_image_dark = "" site_title = Dreamwood Estate station_observations = barometer, dewpoint, outHumidity, rainWithRainRate beaufort_category = 1 manifest_name = Windera NSW manifest_short_name = WinderaWx # aeris_map = 0 radar_html = "" # (default seems to center on your lat/lon) radar_html_dark = None radar_zoom = 7 radar_marker = 1 almanac_extras = 1 # Manifest Settings for Mobile Phones # manifest_name = "WinderaWx" # manifest_short_name = "Wx" highcharts_enabled = 1 graph_page_show_all_button = 1 graph_page_default_graphgroup = day highcharts_homepage_graphgroup = homepage highcharts_decimal = auto highcharts_thousands = auto # googleAnalyticsId = "" # pi_kiosk_bold = "false" # pi_theme = "auto" # webpage_autorefresh = 0 reload_hook_images = 1 reload_images_radar = 300 # reload_images_hook_asi = -1 # reload_images_hook_af = -1 # reload_images_hook_as = -1 # reload_images_hook_ac = -1 # show_last_updated_alert = 0 # last_updated_alert_threshold = 1800 #--- MQTT Websockets (for Real Time Streaming) Options --- mqtt_websockets_enabled = 1 mqtt_websockets_host = mqtt.dreamwoodestate.net mqtt_websockets_port = 9011 mqtt_websockets_ssl = 1 mqtt_websockets_topic = weather/loop # disconnect_live_website_visitor = 1800000 #--- Forecast Options --- forecast_enabled = 1 forecast_provider = aeris forecast_api_id = redacted forecast_api_secret = redacted forecast_units = ca forecast_lang = en forecast_stale = 3540 forecast_aeris_use_metar = 0 forecast_interval_hours = 24 forecast_alert_enabled = 0 # forecast_alert_limit = 1 # forecast_show_daily_forecast_link = 0 # forecast_daily_forecast_link = "" # aqi_enabled = 0 # aqi_location_enabled = 0 #--- Earthquake Options --- earthquake_enabled = 1 earthquake_maxradiuskm = 5000 earthquake_stale = 10740 earthquake_server = USGS geonet_mmi = 4 #--- Social Options --- # facebook_enabled = 0 # twitter_enabled = 0 # twitter_hashtags = "weewx #weather" # social_share_html = "" #--- Kiosk Options --- radar_html_kiosk = "" radar_width_kiosk = 490 radar_height_kiosk = 362 mqtt_websockets_host_kiosk = mqtt.dreamwoodestate.net mqtt_websockets_port_kiosk = 9011 mqtt_websockets_ssl_kiosk = 1 forecast_interval_hours_kiosk = 24 aqi_enabled_kiosk = 0 # Display a Back To Top Button back_to_top_button_enabled = 1 # Button position, 0 for right side , 1 for left side back_to_top_button_position = 0 # Button opacity from 0.1 to 1.0 back_to_top_button_opacity = 0.5 #------------------------------------------------------------- #--- #--- python's ConfigObj has a limitation in how it processes #--- comments, so we need to define an 'unused' variable below #--- to ensure that this whole stanza makes it into weewx.conf #--- #--- please ignore the following 'unused' variable #--- #------------------------------------------------------------- work_around_ConfigObj_limitations = true # [[sqlbackup]] # skin = sqlbackup # HTML_ROOT = /var/www/html/weewx/sqlbackup [[FTP]] # FTP'ing the results to a webserver is treated as just another report, # albeit one with an unusual report generator! skin = Ftp # If you wish to use FTP, set "enable" to "true", then fill out the # next four lines. # Use quotes around the password to guard against parsing errors. enable = true user = redacted password = redacted server = redacted # The ftp server name, e.g, www.myserver.org path = "" # The destination directory, e.g., /weather # Set to True for an FTP over TLS (FTPS) connection. Not all servers # support this. secure_ftp = False # To upload files from something other than what HTML_ROOT is set # to above, specify a different HTML_ROOT here. #HTML_ROOT = /var/www/html/weewx # Most FTP servers use port 21. port = 21 # Set to 1 to use passive mode, zero for active mode passive = 1 [[RSYNC]] # rsync'ing to a webserver is treated as just another report. skin = Rsync # If you wish to use rsync, you must configure passwordless ssh using # public/private key authentication from the user account that weewx # runs to the user account on the remote machine where the files # will be copied. # # If you wish to use rsync, set "enable" to "true", then # fill out server, user, and path. # The server should appear in your .ssh/config file. # The user is the username used in the identity file. # The path is the destination directory, such as /var/www/html/weather. # Be sure that the user has write permissions on the destination! enable = false server = replace_me user = replace_me path = replace_me # To upload files from something other than what HTML_ROOT is set # to above, specify a different HTML_ROOT here. #HTML_ROOT = /var/www/html/weewx # Rsync can be configured to remove files from the remote server if # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you # make a mistake in the remote path, you could could unintentionally # cause unrelated files to be deleted. Set to 1 to enable remote file # deletion, zero to allow files to accumulate remotely. delete = 0 # Options in the [[Defaults]] section below will apply to all reports. # What follows are a few of the more popular options you may want to # uncomment, then change. [[Defaults]] # Which language to use for all reports. Not all skins support all # languages. You can override this for individual reports. lang = en # Which unit system to use for all reports. Choices are 'us', 'metric', # or 'metricwx'. You can override this for individual reports. unit_system = metricwx [[[Units]]] # Option "unit_system" above sets the general unit system, but # overriding specific unit groups is possible. These are popular # choices. Uncomment and set as appropriate. The unit is always # in the singular, e.g., 'mile_per_hour', NOT 'miles_per_hour' [[[[Groups]]]] group_altitude = meter # Options are 'foot' or 'meter' group_pressure = hPa # Options are 'inHg', 'mmHg', 'mbar', or 'hPa' group_rain = mm # Options are 'inch', 'cm', or 'mm' group_rainrate = mm_per_hour # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour' group_temperature = degree_C # Options are 'degree_C', 'degree_F', or 'degree_K' group_distance = km group_degree_day = degree_C_day group_speed = km_per_hour # The following line is used to keep the above lines indented # properly. It can be ignored. unused = unused # Uncommenting the following section frequently results in more # attractive formatting of times and dates, but may not work in # your locale. [[[[TimeFormats]]]] day = %H:%M week = %H:%M on %A month = %d-%b-%Y %H:%M year = %d-%b-%Y %H:%M rainyear = %d-%b-%Y %H:%M current = %d-%b-%Y %H:%M ephem_day = %H:%M ephem_year = %d-%b-%Y %H:%M # The following line is used to keep the above lines indented # properly. It can be ignored. unused = unused [[[Labels]]] # Users frequently change the labels for these observation types. [[[[Generic]]]] inHumidity = Radio Shack inTemp = Radio Shack # outHumidity = Outside Humidity # outTemp = Outside Temperature # extraTemp1 = Temperature1 # extraTemp2 = Temperature2 # extraTemp3 = Temperature3 # The following line is used to keep the above lines indented # properly. It can be ignored. unused = unused ############################################################################## # This service converts the unit system coming from the hardware to a unit # system in the database. [StdConvert] # The target_unit affects only the unit system in the database. Once # chosen it cannot be changed without converting the entire database. # Modification of target_unit after starting weewx will result in # corrupt data - the database will contain a mix of US and METRIC data. # # The value of target_unit does not affect the unit system for # reporting - reports can display US, Metric, or any combination of units. # # In most cases, target_unit should be left as the default: US # # In particular, those migrating from a standard wview installation # should use US since that is what the wview database contains. # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING! target_unit = US # Options are 'US', 'METRICWX', or 'METRIC' ############################################################################## # This section can adjust data using calibration expressions. [StdCalibrate] [[Corrections]] # For each type, an arbitrary calibration expression can be given. # It should be in the units defined in the StdConvert section. # Example: foo = foo + 0.2 ############################################################################## # This section is for quality control checks. If units are not specified, # values must be in the units defined in the StdConvert section. [StdQC] [[MinMax]] barometer = 26, 32.5, inHg pressure = 24, 34.5, inHg outTemp = -40, 120, degree_F inTemp = 10, 120, degree_F outHumidity = 0, 100 inHumidity = 0, 100 windSpeed = 0, 120, mile_per_hour rain = 0, 10, inch ############################################################################## # This section controls the origin of derived values. [StdWXCalculate] [[Calculations]] # How to calculate derived quantities. Possible values are: # hardware - use the value provided by hardware # software - use the value calculated by weewx # prefer_hardware - use value provide by hardware if available, # otherwise use value calculated by weewx pressure = prefer_hardware altimeter = prefer_hardware appTemp = prefer_hardware barometer = prefer_hardware cloudbase = prefer_hardware dewpoint = prefer_hardware ET = prefer_hardware heatindex = prefer_hardware humidex = prefer_hardware inDewpoint = prefer_hardware maxSolarRad = prefer_hardware rainRate = prefer_hardware windchill = prefer_hardware windrun = prefer_hardware # beaufort = software ############################################################################## # For hardware that supports it, this section controls how often the # onboard clock gets updated. [StdTimeSynch] # How often to check the weather station clock for drift (in seconds) clock_check = 14400 # How much it can drift before we will correct it (in seconds) max_drift = 5 ############################################################################## # This section is for configuring the archive service. [StdArchive] # If the station hardware supports data logging then the archive interval # will be downloaded from the station. Otherwise, specify it (in seconds). archive_interval = 300 # If possible, new archive records are downloaded from the station # hardware. If the hardware does not support this, then new archive # records will be generated in software. # Set the following to "software" to force software record generation. record_generation = hardware # record_generation = software # Whether to include LOOP data in hi/low statistics. loop_hilo = True # Uncomment and change to override logging for archive operations. log_success = True log_failure = True # The data binding used to save archive records. data_binding = wx_binding ############################################################################## # This section binds a data store to a database. [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 ############################################################################## # This section defines various 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 ############################################################################## # This section defines defaults for the different types of databases. [DatabaseTypes] # Defaults for SQLite databases. [[SQLite]] driver = weedb.sqlite # Directory in which database files are located, relative to WEEWX_ROOT SQLITE_ROOT = /var/lib/weewx # Defaults for MySQL databases. [[MySQL]] driver = weedb.mysql # The host where the database is located. host = localhost # The user name for logging in to the host. user = weewx # Use quotes around the password to guard against parsing errors. password = weewx ############################################################################## # This section configures the internal weewx engine. [Engine] # This section specifies which services should be run and in what order. [[Services]] prep_services = weewx.engine.StdTimeSynch data_services = , process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, weewx.wxxtypes.StdDelta archive_services = weewx.engine.StdArchive restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS, user.mqtt.MQTT report_services = weewx.engine.StdPrint, weewx.engine.StdReport
fileConfig.yaml
Description: application/yaml
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /run/mosquitto/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log log_dest syslog connection_messages false include_dir /etc/mosquitto/conf.d
docker-compose.yaml
Description: application/yaml
