-
-
Notifications
You must be signed in to change notification settings - Fork 112
/
changelog
297 lines (255 loc) · 25.7 KB
/
changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
1.3.1 April 30, 2023
* Reverts a change which pins the HighCharts to version 10
1.3 March 2, 2023
The last 2+ years have been challenging for me and as a result I've had to take a step back on developing the skin. There are so many changes in this skin since the last release in 2020. I don't have all the changes documented because the community has helped keep this skin going! I want to thank everyone who submitted a pull request!
If you're curious, you can read all of the commits that have happened between 1.2 and 1.3 here: https://github.com/poblabs/weewx-belchertown/compare/weewx-belchertown-1.2...weewx-belchertown-1.3
1.2 September 11, 2020
### Breaking Changes
* DarkSky has announced that they were acquired by Apple and will be removing their API. This release adds AerisWeather as a forecast provider with the intent to remove DarkSky in a later version.
* New option `forecast_provider` is added to specify which provider you are using (DarkSky or Aeris)
* AerisWeather is a very close drop-in replacement and is free if you send your station data to pwsweather.com. In return they give you free access to their weather API. I was considering OpenWeatherMap, but they were lacking some key observations in my opinion.
* graphs.conf gapsize is now in seconds, not milliseconds. This is to stay consistent with other graphs.conf settings. **Make sure to update your graphs.conf. Divide by 1000 to get the seconds you need for the new gapsize setting**.
* Forecast file darksky_forecast.json renamed to forecast.json for all providers.
* skin.conf option darksky_units renamed to forecast_units
* skin.conf option time_darksky_alert_expires renamed to time_forecast_alert_expires
### Added
* An entire forecast section to the labels. This allows you to translate the AerisWeather observations to your language.
* skin.conf option forecast_units. I incorporated the old DarkSky approach to the units. Options are si, ca, uk2 or us. See README for more info.
* graphs.conf option for legend. This allows you to show/hide the legend per-chart. More information under legend in the graphs wiki.
* Adds logo_image_dark option to specify an alternate logo when in dark mode.
* skin.conf: new option almanac_extras to enable or disable showing the extended almanac information table. Requires pyephem to be installed.
* The almanac extras table is now updated automatically with the ajaxweewx() function.
* New chart type called "haysChart". Thanks to @uajqq for this one! Check the charts wiki for more information.
* graphs.conf option for year_to_now. In weewx 4, the method which gets results from the database for archiveYearSpan (aka time_length = year) will return a full year's worth of data - even if the year hasn't ended. So if your chart is being created on February 1, you'll have data from Jan 1 to Feb 1, but the chart will continue to Dec 31 with empty plots. If you do not want a semi-empty chart, and instead want Jan 1 to "today", then use the year_to_now for time_length.
* Added new `time_length` options. year_to_now, hour_ago_to_now, day_ago_to_now, week_ago_to_now, month_ago_to_now, year_ago_to_now and timestamp_ago_to_now. See charts wiki for more info on these time lengths.
* Added new `start_at_midnight` option for use with specific time_length options. See charts wiki for more information.
### Changed
* Renamed skin.conf label darksky_rain to forecast_rain
* Renamed skin.conf label time_darksky_forecast_date to time_forecast_date
* Weather alerts are available through Aeris but only for USA and Canada
* Weather alerts are now in-line with the website and not a link to an external website. This is because Aeris doesn't provide an external link with the alerts, only the text itself.
* Can now customize the Daily Forecast link
* Updates bootstrap to 3.4.1
* DarkSky weather alerts now open in a modal similar to Aeris and no longer link to the alert source.
* rainTotal now charts only rain values which exist. This is a fix so that full-length charts (like year) do not have rainTotal past the actual last observation plot.
* windRose beaufort group colors can now be changed. See charts wiki for more info.
* The earthquake table now shows the earthquake's distance away from your station's lat/lon from weewx, and general bearing direction.
### Removed
* Daily Forecast link in the forecast row is no longer available due to the way Aeris operates currently. Can't extrapolate a URL from the API.
* skin.conf option darksky_secret_key
* skin.conf option darksky_lang
* The GitHub check for updates has been removed since it is not reliable.
1.1 April 8, 2020
### Breaking Changes
These changes are to align the skin closer to the way Highcharts has their options named.
* graphs.conf option xaxis_groupby is now xAxis_groupby (case sensitive)
* graphs.conf option xaxis_categories is now xAxis_categories (case sensitive)
* graphs.conf option yAxisLabel is now yAxis_label (case sensitive)
* graphs.conf option yAxisLabel_unit is now yAxis_label_unit (case sensitive)
* graphs.conf option yaxis_min is now yAxis_min (case sensitive)
* graphs.conf option yaxis_max is now yAxis_max (case sensitive)
* graphs.conf option yaxis_softmin is now yAxis_softMin (case sensitive)
* graphs.conf option yaxis_softmax is now yAxis_softMax (case sensitive)
* graphs.conf option yaxis_tickinterval is now yAxis_tickInterval (case sensitive)
* skin.conf option time_lastUpdated is now called time_last_updated
* skin.conf option time_mqtt_websockets_last_updated is deleted as it was a duplicate of time_last_updated
### Added
* Added weatherRadial observation, unique to Belchertown, which shows the high and low outTemp for a given timespan, as a columnrange polar chart. See wiki for examples.
* Added new time_length option called timespan_specific. This allows you define a static start and end time to be graphed. For example 6 hours, or 2 specific days, or 4 specific months. This offers a lot of flexibility in your graphs. See Wiki for timespan_specific.
* Added per-chart generation timers. You can control how often your charts are generated. Helpful if you have some data that's not updated frequently. Check Wiki for more info on the `generator` option.
* Added new graph group option page_content. This option takes full HTML and will display on the graphs page under the title. Can be used as a content area for the page. Examples are a quick description of the graphs being displayed, or even more elaborate description with images.
* Added per-chart width and height control overrides. If this is not specified than the default sizes will be used.
* Added css_class option to the charts for more granular and detailed CSS overrides to the charts.
* Added the ability to enable chart exporting using the Highcharts exporting utility.
* Added the ability to change the highcharts credits using the "credits" global option.
* Added the ability for custom CSS options to persist through upgrades using a user-created "custom.css" file.
* Added permanent links (permalink) to individual graphs within the Graphs page. Just copy/paste the link from the title of the individual graph you want to directly link to. When accessing this URL, the page will scroll to the graph specified in the URL. The permalink is the name of the [[chart]] inside the double brackets in graphs.conf. To make this a pretty URL, you need to change the name of the [[chart]] inside graphs.conf.
* Version update option. This checks GitHub to see if there's a new version available and then puts a notice in the site footer that an update is available.
* Added dark mode, and auto theme mode to the Pi version of the skin.
* If you're interested in learning more, please check out https://github.com/poblabs/weewx-belchertown#raspberry-pi-console
* ![raspberry pi light and dark themes](https://user-images.githubusercontent.com/3484775/59552332-7fc22c00-8f53-11e9-8a84-7c3335f47249.png)
### Changes
* Preparation in a lot of code for upcoming weewx v4 which will focus on Python 3
* Moved the per-chart timespan to be available per observation. This allows different observations to have different timespans on a single chart. Like comparing rain for this year to rain for all time.
* Moved the JavaScript outTemp color into 1 consolidated function.
* Added timestamps to the MQTT Websocket connection status headers which will show when the weather data is current as of. Helpful if your MQTT broker isn't connecting or there's an error, this lets your visitors know how recent the data on the page is.
* Added ability to specify a database binding for the station_observations table option. Example: "distance_km(data_binding=lightning_binding)".
* Updated footer layout
### Fixed
* Fixes multiple database bindings with charts.
* Fixed some Highcharts int to float issues, and yaxis min/max issues. (Thanks @ShadowsFriend!)
* Fixed an encoding error in certain situations with Python 2 and 3
* Fixed broken image indicator if forecasts is disabled.
* Fixed icon auto updating on the Pi page.
* Fixed windRose and null values causing a crash.
* Fixed moment.js showing the wrong date in the DarkSky forecasts when DST changes happen.
### Removed
* Removes the belchertown_root_url option. All links are now root relative using "." and "../".
* Removed the option to show/hide windrun and apptemp. Instead, if it's in your database, it will show up automatically. If you're calculating it, why not show it?
### Deprecated
* *Nothing*
1.0.1 June 9, 2019
# Changes
* Adds more debugging capability. See Wiki "How to get help" section.
* Adds default chart values for areaspline chart type.
* Updates the areaspline and area charts threshold. Default is 0, now it's undefined so its a floating y axis range.
* Fixes a chart bug with Highcharts values being set as an integer resulting in unexpected behavior.
* Fixes a locale bug if a system locale is not defined (or is using C, which Python views as None)
* Fixes an archive_interval bug if one is not defined in weewx.conf (e.g. when the station provides the archive interval, not weewx)
* Fixes a belchertown_root_url bug which affects on certain scenarios. In 1.1 belchertown_root_url may be removed all together.
* Fixes a moon translation label in the celestial information
* Fixes a bug with scaletime and rolling time period charts. Unsure why scaletime was used but it's gone now.
* Fixes a bug with point timestamp and using an odd minute like :59 instead of :00
* Fixes a typo in the skin.conf labels section
* Removes an invalid link from the "powered by" line in the header.
1.0 June 1, 2019
**BREAKING CHANGES**:
* Chart system is 100% re-written. See below for details.
* In an effort to provide more options for translations, the following Extra's settings have moved to Labels --> Default. Please update your settings!
** home_page_header
** graphs_page_header
** records_page_header
** reports_page_header
** about_page_header
** powered_by
** footer_copyright_text
** footer_disclaimer_text
# Full list of Changes
* Complete overhaul of the chart system and introduction of graphs.conf. Please see the Charts Wiki for all the new configuration options.
** This overhaul removes the Highcharts_Belchertown skin and bin/user file and moves everything under the 1 Belchertown skin.
** Overview of the new chart system include ability to move charts around, remove charts, configure multiple observations per chart, and add a 2nd yAxis to associate an observation to for better readability, mix timespans between the graph groups (have both a year and a day chart on the same page), mirrored charts, wind rose, monthly aggregation and more!
** You can also define which graph group from graphs.conf to show on the Graphs page. Show them All, show only the 1 you want. It's your choice!
* Add support for wind rose with Highcharts.
* Added rainTotal observation, unique to Belchertown, which aggregates the "rain" observation (bucket tips) over a timespan to return total rainfall for that time period.
* Change the Station Observation table on the homepage to an Extras option for greater control of *current* weather station observations. You can add/remove and change the order of the observations. Only valid weewx schema names are accepted.
* Locale now has an option to be auto detected by the system, or the ability to change it to a locale the site owner wants as long as that locale is installed on the server first.
* Added pyephem almanac modal to the "Sun & Moon" section. Thanks to the Seasons skin for the quick work. At this time the detailed Almanac Information does not update in real time. You will need to reload the page to get updated detailed almanac information.
* Add support for translating the skin through the use of Default Labels in skin.conf (which can be used in weewx.conf, too).
* Upgrade to Bootstrap 3.4.1 and change to new bootstrap stackpath CDN
* Added new Dark Theme. This is a combination of Bootstrap's "darkly" (on CDN) and Highcharts Dark Unica theme (hosted locally), and Belchertown overrides to remain consistent.
* Added new skin.conf option called "theme". Options are "light", "dark" and "auto". Light (white) website theme. Dark (dark) website theme. Auto switches between the two at sunset (to dark) and sunrise (to light).
* Added a toggle button to the navigation menu which will change the entire site's theme at the click of the button.
**NOTE** If you are using the AUTO theme mode, and you click this button, it will disable auto mode until you **close the page, tab or browser** to reset back to auto mode.
* Added belchertown_debug to aid in debugging the skin's options. Also available through the URL /?debug=true
* Added permalink to the graphs page. For example to link to your weekly graphs, use http://yoursite/graphs/?graph=week, for month, it's /?graph=month, for year is /?graph=year and for today you can link to the graphs page, or use /?graph=today. To find a specific permalink URL you can go to the All Graphs Page, then click the header for that graph.
* Added option reload_hook_images and hook image reload timers which when enabled will reload any images in the 4 custom content areas on the index page within their specified timers. Useful for webcam images. This option will only work if MQTT Websockets live updates are also enabled.
* Upgrade Font Awesome to 4.7.0
* Clean up of some old CSS
0.9.1 March 9, 2019
* Fixed a locale bug with the windSpeed and windGust float values by using toString() instead of format(). This is backwards compatible with weewx 3.8.2
* Fixed a bug where MQTT AJAX page updates weren't in locale decimal. (e.g. comma instead of period for decimal). Can't use parseFloat() on it's own if the culture is a comma for decimals. Need to use toLocaleString(). This requires converting the string to an int, to a float, back to a string.
* Fixed a bug with the chart gapSize on the day charts to use the `archive_interval` and not an arbirary 5 minute setting.
* Fixed a bug with windDir vectors not being consistent.
* Fixed a bug with the forecast breaking the page if it wasn't enabled, but MQTT Websockets was.
* Fixed a bug with DarkSky visibility units, since they don't seem to provide this themselves. So it's their bug that I'm trying to work around.
* Now the charts use the system locale decimal point.
* Update non-MQTT page timestamp to use moment.js to fall in line with other datetime stamp locale formatting.
* On the front page, if both charts are hidden, hide the full row to save on whitespace.
* On the charts page hide the chart if it's hidden in skin options.
0.9 February 28, 2019
* !! BREAKING CHANGE !! - Updated all mqtt_* skin options to mqtt_websockets_* to reduce confusion. The skin needs MQTT Websockets in order to work. These variable names should help.
* A lot of work focused on locale for time formatting. All time should be auto-detected by the locale on your server and displayed in your locale format.
* Charts hover tooltips are now in station's locale format.
* Major bugfix for the rain charts. The old code was adding A LOT OF PLOTS. This resulted in slower chart generation time.
* Forecast row is now JavaScript only and has been removed from the belchertown.py SLE. This makes it easier to manage in the future since it's only in 1 place now.
* Updated almanac to work with weewx 3.9.0's new [Default] section within weewx.conf.
* Added the option to show indoor temperature (inTemp) to the temperature charts. This option is disabled by default and is setup exactly like apparent temperature. Once you opt-in to show this data, it is only available for the day and week charts.
* Added a manifest.json file which allows you to install your weather website like an "app" on your smart devices. Thanks user WhiteNoseThunderPants for the initial work on this.
* Added the matching Apple config so you can add your weather website like an "app" on your Apple devices.
* Added $footer_disclaimer_text option to update the footer disclaimer.
* Added a robots.txt file.
* Switched to the new Google Analytics method of tracking with gtag.js.
* Added forecast windspeed next to the (existing) wind gust.
* Updated windspeed forecast CSS on mobile.
* Updated the records page for Consecutive Rain Days to show all time date range. Useful if your consecutive rain dates wrap around a new year and the math seems wrong (like BelchertownWeather.com shows)
* Simplified the includes for the About page, Records page and home page. Before it had a lot of overhead to it, so now it's using a simple Cheetah #include. If you want to show something in these areas, you just need to create the .inc file and that's it. No options to set or anything. See the README for more information.
* On the Pi page, added a timer to reconnect to MQTT if connection is lost to the MQTT broker.
* Re-ordered some JavaScript functions due to improper grouping.
* Fixed Pi page styles to match the 640x480 resolution for the PiTFT.
* Fixed a bug on the Records page where certain custom observations were not in the station's locale formatting.
* Fixed a bug certain users were seeing with UTF-8. Thanks user spanishhighs!
* Fixed a bug where if using a radar image (not windy.com, but a jpg, gif, png, etc.), it'll reload the image upon background updates.
* Fixed a bug where the date of the weather records snapshot for "Today" and "Month of" on the home page didn't update if the page was automatically updated overnight into a new day or a new month.
* Fixed a bug where rounding of rain and outTemp for custom Records page code wasn't honoring the number of decimal places from skin.conf.
* Fixed a bug where the highcharts timelines were in the viewer's timezone and not the station's timezone.
* Fixed a bug where the Week and Month charts did not begin on a week before, or a month before (respectively).
* Fixed a bug where the Year charts did not begin on January 1.
* Fixed a bug where if there was missing data in the chart data, the chart would show a connecting line. Instead the correct behavior should be to show a gap which represents that data is missing.
** Gaps will show if the following time ranges are missing in the chart:
** Day chart: 5 minute gap
** Week chart: 1 hour gap
** Month: 24 hour gap
** Year: 24 hour gap
* Fixed a bug where the Facebook share button was using the O'Brien Labs Facebook App ID.
0.8.2 January 1, 2019
* Fixed an error where the skin would fail when the date rolls to the New Year due to no data being in certain tables in the database yet.
* Added the ability to show any weather alerts provided by the DarkSky API. Weather alerts are off by default, use forecast_alert_enabled in weewx.conf skin options to enable it.
* New option to show cloudbase. You must have your database schema extended for the cloudbase observation to be calculated by weewx. Check the Belchertown skin wiki for details.
* Fixes an issue where the MQTT updates showed altimeter instead of barometer.
* Updated Google Analytics page to be in header based on Google recommendations.
* Updated Google Analytics to a more recent script block.
* Added a Google Analytics page view per MQTT update as per Google Recommendations on background updates.
0.8.1 December 7, 2018
* Fixes an edge case scenario where skin fails to generate due to N/A as a wind observation value.
* Fixes some false positive errors with belchertown_root_url or station_url being reported it's not set.
* On the front page, change the wording to Chart instead of Graphs above the chart region. Afterall, these are charts and not graphs. I should probably update everything to be "chart".
0.8 December 2, 2018
* A lot of metric conversion fixes. A lot.
* More metric conversions fixes.
* Now uses new option belchertown_root_url and falls back to station_url for the URL of your weather station. The CSS and JavaScript files are dependant on this setting.
* This new setting means you can run your station on a different URL than station_url. The station_url can be used to show your station on the weewx.com map. So the belchertown_root_url was added in case you did not want that, or if you want to run test sites, offline sites, or have Belchertown on a different folder or site all together than station_url.
* You can now select your own graph order and also can pick from 8 graphs to show in 6 positions. Details on the user guide on GitHub
* 4 Custom rows now available on index page for you to customize content. Check the readme on GitHub for more info on how to use these areas.
* Better fallback method if the earthquake data has no recent earthquakes.
* Added option to change DarkSky language. Use darksky_lang in configs.
* Add rainfall total line graph to year graphs.
* Show rainRate on day, week, month charts instead of bucket tips. This makes for a much more interesting graph.
* Remove rounding on the rainRate chart
* Added a windy.png icon, which is a clone of wind.png. Sometimes DarkSky wants wind.png and other times windy.png
* Added a Raspberry Pi kiosk page.
* This is handy if you want a 2nd console display using a [Raspberry Pi and a 3.5" TFT screen like this one](https://amzn.to/2z37wlV). An example of it in use [can be seen here](https://obrienlabs.net/redirecting-weather-station-data-from-observerip/#website).
* This page also does not have the MQTT timeout, so the Kiosk console display will update forever.
* Some other bug fixes and code optimization.
0.7 September 8, 2018
* Separate Highcharts from the main skin into its own skin. In testing this has shown to speed up skin generation times. **Strongly advise you to uninstall Belchertown skin, and install 0.7 as a new skin**. Also, **be sure to have a backup of your skin customizations**
* The highcharts extension gets its options from the Belchertown main skin. Keep your highcharts options under Belchertown's main Extras section.
* Moved highcharts timespans to our own intervals and not using the timespan intervals.
* Better handling of default about and records page. Now includes an `about.inc.example` and `records.inc.example` to show what you can do. If `about.inc` or `records.inc` is missing, then the skin will show some default information rather than throwing an error.
* Moved the forecast and earthquake functions into the main `getData()` class.
* Adjusted `.wind.` on the records page to `.windGust.` which should fix the errors that have been reported.
* Moved the moment.js utcOffset back to minutes instead of hours.
* If no earthquake data is available in your region, we now display that information as "No recent earthquake data available!". If this affects you, you can expand your `earthquake_maxradiuskm`.
* Cleaned up a lot of old code from the Highcharts extension included in this skin.
0.6 August 30, 2018
* Skip NULL rain values in highcharts generator.
* Updated rainRate value on the front page and records page.
* Fix all time record for barometer. It was showing dewpoint. Oops!
* Fixed a highcharts UTC graph error. Should prefer timezone offset now.
* Updated highcharts rain rounding to 2 decimals.
* Updated highcharts wind direction to have a hover and display the wind direction.
* Consolidated the getSocialShare and getNOAAdata into getAllTime, and renamed getAllTime to getData. Larger plan is to consolidate as much as possible to be able to minimize the number of SLE loops. This may or may not have a better performance, but I'll try and consolidate where it makes sense in an attempt at better performance.
* Added a version printout in syslog for easier troubleshooting.
* Removed about.inc and reports.inc from the installer because the installer was overwriting them. Please read the Readme on how to create these files.
0.5 August 27, 2018
* Fixed NOAA report conflict.
* Updated highcharts to reflect the station's UTC timezone offset.
* Front page MQTT live updates now optimized for metric and metricwx units.
* Now uses UTC offset for moment.js and "Data Received" timestamp when using MQTT.
* Fixed full moon icon.
0.4 August 23, 2018
* Better usage of getting the right label from the skin dict. This fixes the wrong windSpeed label in the DarkSky forecast row. Thanks Gary!
* Changes the way of determining the DarkSky visibility unit label values. Gets the unit from the API output, then sets the label. Fixes the wrong label when using "auto" for DarkSky units.
* Fixed a barometer rounding bug in the highcharts generator.
0.3 August 22, 2018
* Fixed a bug with the DarkSky URL.
* Removed an extra pre-requisites check.
* Updated the visibility unit check. DarkSky API does not return this in their output, so using a mixture of skin and weewx config settings, hopefully we can determine the unit you want.
* Fixed another static unit on the records page.
0.2 August 22, 2018
* Added units to the darksky api url with "auto" units as the default. Auto units automatically selects units based on your geographic location.
* Added a windy icon by remixing a couple images together.
* Updated records page units which had some hard coded units by mistake
* Fixed lowest windchill on the records page
* Fixed a formatting error with the sunrise and sunset auto-refesh
0.1 August 21, 2018
* Initial implementation