Skip to content

Commit e5870b1

Browse files
authored
New repeating alarm feature. (#121)
* First pass at biweekly and other repeating alarms. Removed code related to a now-abandoned start on that feature. Minor AQI tweaks. * Fix repeat data calculations and some dialog layout/display issues. * Get versioning and CHANGELOG.md ready for new alarm features. * More alarm work. * Documentation updates for new alarm features.
1 parent db6d71b commit e5870b1

21 files changed

Lines changed: 207 additions & 146 deletions

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 3.9.0
2+
3+
* Alarms can now be created that repeat biweekly, monthly, or yearly.
4+
15
## 3.8.0
26

37
* Major new feature: Air quality current conditions and forecast.

README.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Astronomy/Weather Clock
22

3-
![raspberry pi logo](https://shetline.com/readme/aw-clock/3.8.0/rpi_logo.svg)
3+
![raspberry pi logo](https://shetline.com/readme/aw-clock/3.9.0/rpi_logo.svg)
44

55
This project is designed to create a desktop clock that provides weather and astronomical information while additionally functioning as an alarm clock.
66

@@ -12,21 +12,21 @@ When displaying 24-hour time, that time can either be local time or UTC.
1212

1313
On a display which is narrower than a 16-by-9 aspect ratio, four forecast days can be seen at one time without scrolling. On 16-by-9 or wider displays, five days are visible at a glance.
1414

15-
Multiple alarms can be set as either daily alarms (on selectable days of the week), or one-time alarms triggered at a specific date and time. Various alarms tones are available, and each alarm can be accompanied by an on-screen message. Alarms can be set to snooze for 5, 10, or 15 minutes.
15+
Multiple alarms can be set as daily alarms (on selectable days of the week), or as alarms triggered on a specific date and time, these either going off once, or at repeating intervals starting with the given date. Various alarms tones are available, and each alarm can be accompanied by an on-screen message. Alarms can be set to snooze for 5, 10, or 15 minutes.
1616

1717
When viewing the sky map feature you can choose to see a multicolor sky, shaded to indicate daylight, sunrise and sunset, twilight, and even solar eclipse conditions. Or the sky can be shown as black all the time for easier viewing of the positions of the stars. Constellation lines can be optionally displayed as well.
1818

1919
**A touchscreen or mouse is required to display the last two or three days of the seven-day forecast, to switch the display from sunrise/sunset to moonrise/moonset, from clock face to sky map, or to switch from hourly temperatures to hourly probability-of-precipitation.*
2020

21-
![finished project](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-12.jpg)
21+
![finished project](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-12.jpg)
2222

23-
![app screenshot](https://shetline.com/readme/aw-clock/3.8.0/awc_screenshot.png)
23+
![app screenshot](https://shetline.com/readme/aw-clock/3.9.0/awc_screenshot.png)
2424

25-
![night sky](https://shetline.com/readme/aw-clock/3.8.0/sky-map-night.jpg)
25+
![night sky](https://shetline.com/readme/aw-clock/3.9.0/sky-map-night.jpg)
2626

27-
![day sky](https://shetline.com/readme/aw-clock/3.8.0/sky-map-day.jpg)
27+
![day sky](https://shetline.com/readme/aw-clock/3.9.0/sky-map-day.jpg)
2828

29-
![app dst animation](https://shetline.com/readme/aw-clock/3.8.0/spring-forward-480.gif)
29+
![app dst animation](https://shetline.com/readme/aw-clock/3.9.0/spring-forward-480.gif)
3030

3131
<br/>
3232

@@ -54,7 +54,7 @@ If you want to use the **alarm clock** feature, **it’s important that you use
5454

5555
If you choose to launch the clock with Firefox, and also want audio alarms to work, you will have to configure Firefox to allow autoplay.
5656

57-
<img src="https://shetline.com/readme/aw-clock/3.8.0/firefox-autoplay.jpg" alt="drawing" width="600"/>
57+
<img src="https://shetline.com/readme/aw-clock/3.9.0/firefox-autoplay.jpg" alt="drawing" width="600"/>
5858

5959
You can be pickier than this about autoplay privileges, narrowing the autoplay permission to localhost, but this is the easiest way to ensure audio playback.
6060

@@ -78,7 +78,7 @@ Having a back-up weather data source is not required, but it might be a good ide
7878

7979
By default, this application uses GPS-synced system time, if available, or uses a default pool of NTP time servers (keeping its own time via NTP, rather than using the system clock). You can configure the use of different time servers, however, you should not choose Google or Facebook time servers, or any other NTP server that implements “leap second smearing”, if you want the Astronomy/Weather Clock to be able to accurately display leap seconds as shown below:
8080

81-
![Hypothetical leap second](https://shetline.com/readme/aw-clock/3.8.0/moment_of_leap_second.jpg)
81+
![Hypothetical leap second](https://shetline.com/readme/aw-clock/3.9.0/moment_of_leap_second.jpg)
8282

8383
*This image is hypothetical — the pictured moment in time was not an actual leap second. Video here: <https://shetline.com/video/leap_second_display.mp4>*
8484

@@ -94,22 +94,22 @@ The Astronomy/Weather Clock will (unless you disable the feature) display air qu
9494

9595
For the US AQI system, you can use an alternative color coding system that gradually changes shade as the air quality transitions from one level to the next. As can be seen below, the just-on-the-border rating between “Good” and “Moderate” at an AQI of 51, rather than starkly switch from green to yellow, can be shown as greenish yellow instead.
9696

97-
![AQ modes](https://shetline.com/readme/aw-clock/3.8.0/us_aqi_standard_v_mod.jpg)
97+
![AQ modes](https://shetline.com/readme/aw-clock/3.9.0/us_aqi_standard_v_mod.jpg)
9898

9999
In the Air Quality Details view, the standard colors border each measurement while the gradiated colors are used around each numeric value.
100100

101-
![AQ details](https://shetline.com/readme/aw-clock/3.8.0/air-quality-details.jpg)
101+
![AQ details](https://shetline.com/readme/aw-clock/3.9.0/air-quality-details.jpg)
102102

103103
### Web browser client options
104104

105105
As soon as you’ve got the Astronomy/Weather Clock up and running the first time, you might want to click on the gear icon in the lower right corner of the web browser display to adjust the various user options which aren’t queried as part of the initial set-up.
106106

107107
Your city might be filled in automatically by using your IP address &mdash; but then again, it might not. If you’re using this clock in a bedroom you might find the **Dimming** options very useful, as they establish a schedule during which the display will be reduced in brightness.
108108

109-
![user settings screenshot - options](https://shetline.com/readme/aw-clock/3.8.0/awc-dlog-options.jpg)
110-
![user settings screenshot - locations](https://shetline.com/readme/aw-clock/3.8.0/awc-dlog-locations.jpg)
111-
![user settings screenshot - alarms](https://shetline.com/readme/aw-clock/3.8.0/awc-dlog-alarms.jpg)
112-
![user settings screenshot - alert-filters](https://shetline.com/readme/aw-clock/3.8.0/awc-dlog-alert-filters.jpg)
109+
![user settings screenshot - options](https://shetline.com/readme/aw-clock/3.9.0/awc-dlog-options.jpg)
110+
![user settings screenshot - locations](https://shetline.com/readme/aw-clock/3.9.0/awc-dlog-locations.jpg)
111+
![user settings screenshot - alarms](https://shetline.com/readme/aw-clock/3.9.0/awc-dlog-alarms.jpg)
112+
![user settings screenshot - alert-filters](https://shetline.com/readme/aw-clock/3.9.0/awc-dlog-alert-filters.jpg)
113113

114114
Using Chromium, you can close the web browser while it’s running in full-screen kiosk mode by pressing `Alt-F4`, or use the Settings/Quit button if available. To get out of full screen mode, but leave the browser running, press `Alt-F11`.
115115

@@ -123,7 +123,7 @@ With your Raspberry Pi shut down and disconnected from power, connect the DHT22/
123123

124124
*&#42;This default was GPIO 4 (physical pin 7) before version 2.4.0, but the Adafruit GPS HAT is pre-wired to use that pin, hence the new default.*
125125

126-
![Picture of wiring to GPS HAT](https://shetline.com/readme/aw-clock/3.8.0/rpi_with_gps_hat.jpg)
126+
![Picture of wiring to GPS HAT](https://shetline.com/readme/aw-clock/3.9.0/rpi_with_gps_hat.jpg)
127127

128128
Also for the Raspberry Pi you have the option to provide wireless indoor conditions and outdoor weather data using [433 MHz Acu Rite 06002M wireless temperature and humidity sensors](https://www.amazon.com/gp/product/B00T0K8NXC/) paired with a [433 MHz receiver module](https://www.amazon.com/D-FLIFE-Wireless-Transmitter-Receiver-Antenna/dp/B0BZRRBBNK/).
129129

@@ -164,7 +164,7 @@ When you perform the standard dedicated device installation, a folder will be cr
164164

165165
### Temporarily disabling upcoming alarms
166166

167-
<img src="https://shetline.com/readme/aw-clock/3.8.0/alarm-indicator.jpg" width=105 height=85 alt="alarm indicator">&nbsp;&nbsp;&nbsp;<img src="https://shetline.com/readme/aw-clock/3.8.0/alarm-disabled.jpg" width=105 height=85 alt="alarm indicator">
167+
<img src="https://shetline.com/readme/aw-clock/3.9.0/alarm-indicator.jpg" width=105 height=85 alt="alarm indicator">&nbsp;&nbsp;&nbsp;<img src="https://shetline.com/readme/aw-clock/3.9.0/alarm-disabled.jpg" width=105 height=85 alt="alarm indicator">
168168

169169
Ever wake up before your alarm goes off, don’t want to worry about the alarm going off when you aren’t around, but you’re also worried that if you turn the alarm off you’ll forget to turn it back on again for when you need it next?
170170

@@ -186,7 +186,7 @@ The filter text you enter is case-insensitive. Advanced users can enter *regular
186186

187187
### Wind speed
188188

189-
<img src="https://shetline.com/readme/aw-clock/3.8.0/wind_barbs.png" width=820 height=55 alt="wind barbs">
189+
<img src="https://shetline.com/readme/aw-clock/3.9.0/wind_barbs.png" width=820 height=55 alt="wind barbs">
190190

191191
Wind speed is displayed using *wind barbs*. When using imperial units, the wind barbs represent wind speed in knots, rounded to the nearest multiple of 5 knots, up to a maximum of 100 knots. In metric mode the wind barbs, by default, represent wind speed in meters per second, in increments of 2.5 m/s (in the diagram above, divide the captions by 2 for m/s).
192192

@@ -221,7 +221,7 @@ If an arc becomes a full circle, that means the corresponding planet on that tra
221221

222222
The 3D model for this stand is provided by the project file `raspberry_pi_setup/monitor_stand.stl`. Below is how that model came out when printed using black ABS, 20% infill, at a cost of about $28 USD.
223223

224-
![3D stand rear view](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-01.jpg)
224+
![3D stand rear view](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-01.jpg)
225225

226226
This is my second design of this stand, after making a few improvements from my first design. I made this version shorter, improved wire routing, and added an access hole where (using tweezers) it’s possible to access the SD card slot without disassembling the clock.
227227

@@ -231,37 +231,37 @@ This is my second design of this stand, after making a few improvements from my
231231

232232
#### Front view
233233

234-
![3D stand front view](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-02.jpg)
234+
![3D stand front view](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-02.jpg)
235235

236236
<br>
237237

238238
#### Side mounting panel
239239

240240
The side panel has a place to attach a quarter-wave 433 MHz antenna, a clip to hold a 433 MHz receiving module, a hole for a female SMA coaxial connector for GPS, and (on the reverse side) a mounting position for a DHT22/AM2302 temperature/humidity sensor.
241241

242-
![3D stand side panel](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-03.jpg)
242+
![3D stand side panel](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-03.jpg)
243243

244244
<br>
245245

246246
#### Original monitor stand
247247

248248
This is the original stand that came with the 2560x1600 ELECROW 10.1" touchscreen monitor. It’s not a bad stand in general, but, with the Raspberry Pi attached to the back of the monitor, the cables and wires were an awkward fit. The stand had to be skewed off-center quite a bit for it to work at all.
249249

250-
![Original monitor stand](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-04.jpg)
250+
![Original monitor stand](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-04.jpg)
251251

252252
<br>
253253

254254
#### Stand attached to monitor
255255

256256
The stand is attached using 4 M3 x 10 mm wafer-head machine screws. Please note that M4 is the typical size screw for a VESA mount of this size (75 mm square spacing), so it’s a little unusual M3s were needed instead.
257257

258-
![Stand attached to monitor](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-05.jpg)
258+
![Stand attached to monitor](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-05.jpg)
259259

260260
<br>
261261

262262
#### Stand attached to monitor, side view
263263

264-
![Stand attached to monitor, side view](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-06.jpg)
264+
![Stand attached to monitor, side view](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-06.jpg)
265265

266266
<br>
267267

@@ -271,22 +271,22 @@ The long arm that reaches out from the side panel is designed so the temperature
271271

272272
A small piece of non-conductive foam wedged behind the RF module helps keep the module in place.
273273

274-
![Side panel with components attached](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-07.jpg)<br>
275-
![Side panel with components attached, temp/humidity sensor](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-07b.jpg)
274+
![Side panel with components attached](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-07.jpg)<br>
275+
![Side panel with components attached, temp/humidity sensor](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-07b.jpg)
276276

277277
<br>
278278

279279
#### Raspberry Pi Model 4 attached to stand-offs
280280

281281
I was a bit uncertain how well machine screws would work with the stand-offs that I’d designed, since I wanted them to function like self-tapping screws. As it turned out, the four M2.5 x 6 mm pan-head machine screws fit quite nicely and snugly, without being difficult to turn. If the Pi were to be repeatedly removed and reattached, however, this design might not be durable enough. For my current purposes, it’s just fine.
282282

283-
![Raspberry Pi Model 4 attached to stand-offs](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-08.jpg)
283+
![Raspberry Pi Model 4 attached to stand-offs](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-08.jpg)
284284

285285
<br>
286286

287287
#### GPS HAT added, and components wired together
288288

289-
![GPS HAT added, and components wired together](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-09.jpg)
289+
![GPS HAT added, and components wired together](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-09.jpg)
290290

291291
<br>
292292

@@ -300,13 +300,13 @@ The odd reddish-brown object at the end of the USB cable is an adapter that bloc
300300

301301
While this would actually be a good thing if it meant I could hook up the clock with only one power cable, not two, the power from the monitor only keeps the Raspberry Pi running *after* the Pi has been separately powered up using its own power supply. The result is no simplification of the power connections, but merely making it harder to shut the clock down without adding this power isolating adapter.
302302

303-
![Monitor connections for HDMI video and USB touchscreen](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-10.jpg)
303+
![Monitor connections for HDMI video and USB touchscreen](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-10.jpg)
304304

305305
<br>
306306

307307
#### Rearview of completed clock project
308308

309-
![finished project](https://shetline.com/readme/aw-clock/3.8.0/aw-clock-w-stand-11.jpg)
309+
![finished project](https://shetline.com/readme/aw-clock/3.9.0/aw-clock-w-stand-11.jpg)
310310

311311
<br>
312312

@@ -420,7 +420,7 @@ For reference, here’s a breakdown of the steps performed by a full installatio
420420

421421
When using a small but high resolution display like the 2560x1600 ELECROW 10.1" monitor I chose to use, which is nearly 300 ppi (~120 pixels per cm) you’ll typically want to apply a scaling/zooming factor to the display, otherwise text and other details will be impractically small to see. With earlier releases of Raspbian this kind of scaling would be done using the pixel doubling option below:
422422

423-
![pixel doubling](https://shetline.com/readme/aw-clock/3.8.0/config-pixel-dbl.jpg)
423+
![pixel doubling](https://shetline.com/readme/aw-clock/3.9.0/config-pixel-dbl.jpg)
424424

425425
With later versions of Raspbian all you need to do is set a lower display resolution than the native resolution of your display to get sharp but smooth text instead of very tiny text.
426426

img/awc-dlog-alarms.jpg

44 KB
Loading

img/awc-dlog-alert-filters.jpg

19.4 KB
Loading

img/awc-dlog-locations.jpg

67.2 KB
Loading

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aw-clock",
3-
"version": "3.8.0",
3+
"version": "3.9.0",
44
"license": "MIT",
55
"author": "Kerry Shetline <kerry@shetline.com>",
66
"scripts": {

sass/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sass/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aw-clock-sass",
3-
"version": "3.8.0",
3+
"version": "3.9.0",
44
"description": "SASS builder for aw-clock",
55
"keywords": [
66
"sass"

server/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)