-
Notifications
You must be signed in to change notification settings - Fork 22
/
Readme.txt
624 lines (524 loc) · 30.5 KB
/
Readme.txt
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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
******************************************************************************
QLOCKWORK
An advanced firmware for a DIY "word-clock".
******************************************************************************
Qlockwork is an ESP8266 (NodeMCU or WeMos D1 mini) firmware (under GPL license) for a so called "word-clock".
The clock adjusts the time and date once every hour via NTP with a time server on the Internet.
If an RTC is installed, the time of the ESP is also set from the RTC via the SyncProvider.
At startup the clock performs a short self test.
The sequence of the colors should be: red, green, blue and white. If not, your LED driver setup is wrong.
The clock also shows the local IP address it received via DHCP.
Use this address in a browser to access the clocks web site to set it up.
WiFi manager: If the clock can not connect to any WLAN at startup, it turns on an access point.
Connect a mobile phone or tablet to the AP and enter the WLAN credentials. A white "WiFi" is shown on the clock.
On success there are three short beeps and "WiFi" will be green.
If no WLAN is connected or the timeout has expired, there is a long beep and "WiFi" turns red.
After the WLAN timeout the clock works without NTP but you can still control it via its AP.
Without WLAN the clock uses the optional RTC to set the time or if no RTC is present has to be set manually.
In either ways the clocks IP is shown as a textfeed.
Events can be shown every five minutes on a particular day of the year as a textfeed.
You can set them in "Events.h". Expand the array with events as shown in the default values.
You can set a color for every event. Do not change the first entry.
There is no comma behind the last entry.
Updates of the firmware could be uploaded via USB, OTA or the clocks webserver.
You will find more help and information on how to configure and compile the firmware in "Readme.md" in the zip-archive.
You will also find a circuit diagram, a partslist and some pictures in the "/misc" directory.
All sensors, the RTC and the buzzer are optional.
The clock will run with the ESP8266 module only. No PCB needed.
Warning: Do not power up the clock from USB only.
This would blow up the ESP or even the USB port because of high power demand of the LED stripe.
Always use an external 5V powersupply with at least 4A.
Disclaimer: Qlockwork uses lots of third party libraries.
I can not guarantee the integrity of these libraries.
You use the Qlockwork firmware at your own risk.
You can find the QLOCKWORK web-site here:
http://thorsten-wahl.ch/qlockwork/
You can download the latest version of the firmware here:
https://github.com/ch570512/Qlockwork
Visit this forum for comments, suggestions and bug reports:
http://diskussion.christians-bastel-laden.de/viewtopic.php?f=23&t=2843
******************************************************************************
Top features:
******************************************************************************
Almost no electronics needed. Only an ESP8266 and an LED-stripe.
Optional support for LDR, Buzzer, temperature and humidity sensor, IR-remote and buttons.
Support for NeoPixel (RGB and RGBW) LED-stripes.
Support for various horizontal and vertical LED layouts. 3 layouts included.
Webpage to control and configure the clock via WiFi.
Adaptive brightness control when using an LDR.
3 transitions for timechange.
Indoor temperature from RTC or temperature and humidity from DHT sensor.
Outdoor temperature and humidity from MeteoWeather.
Visualisation of moonphase.
Show sunrise and sunset times with animation.
Textfeed for events and infos, local and over the web.
Support for 16 frontcovers (Original and DIY) in 6 languages.
25 Colors.
99 minute timer.
2 Alarms with weekday selection.
NTP timesync with timezone support.
Automatic adjustment of daylight saving time.
USB and Over-the-air firmware updates.
******************************************************************************
Pages:
******************************************************************************
Time
AM/PM
Seconds
Weekday
Date
Sunrise (needs MeteoWeather)
Sunset (needs MeteoWeather)
Moonphase
Room temperature (needs RTX or DHT22)
Room humidity (needs DHT22)
Outdoor temperature (needs MeteoWeather)
Outdoor humidity (needs MeteoWeather)
Timer
LED-test
Red
Green
Blue
White
******************************************************************************
Needed libraries: (recommended/tested versions in brackets)
******************************************************************************
Arduino IDE for Windows (1.8.19)
esp8266 by ESP8266 Community (3.0.2)
Arduino_JSON by Arduino (0.1.0)
ArduinoJason by bblanchon (7.1.0)
Adafruit NeoPixel by Adafruit (1.10.4)
Adafruit Unified Sensor by Adafruit (1.1.5)
ArduinoHttpClient by Arduino (0.4.0)
ArduinoOTA by Juraj Andressy (1.0.7)
DHT sensor library by Adafruit (1.4.3)
DS3232RTC by Jack Christensen (2.0.0)
IRremoteESP8266 by Sebastien Warin (2.8.1)
Time by Michael Margolis (1.6.1)
Included in source is the Timezone library from Jack Christensen
and WiFiManager by AlexT.
******************************************************************************
Compiler-Options: (recommended/tested)
******************************************************************************
Board: "LOLIN(WEMOS) D1 R2 & mini"
CPU Frequency: "80 MHz"
Flash Size: "4M (3M SPIFFS)"
Debug port: "Disabled"
Debug Level: "None"
IwIP Variant: "v2 Lower Memory"
VTables: "Flash"
Exceptions: "Disabled"
Erase Flash: "Only Sketch"
SSL Support: "All SSL ciphers"
******************************************************************************
Misc:
******************************************************************************
For OTA and web-server updates check out:
http://esp8266.github.io/Arduino/versions/2.3.0/doc/ota_updates/readme.html
Don't forget to install Python 2.7 and to select "Add python.exe to path" while installing.
Call "http://your_clocks_ip/update" to upload a new firmware via webbrowser.
Call "http://your_clocks_ip/reset" to restart the ESP.
******************************************************************************
Operation manual:
******************************************************************************
Press "on/off" to switch the LEDs on and off.
Press "Settings" to configure the clock via web-site.
Press "Mode" to jump to the next page.
Press "Time" to always jump back to the time page.
*** Modes: *******************************************************************
Time: The default mode of the clock. Shows the actual time. :)
Display AM/PM: Indicates whether it is AM or PM.
Seconds: Shows the seconds.
Weekday: Shows the weekday in local language.
Date: Shows day and month.
Sunrise: Time of sunrise.
Sunset: Time of sunset.
Moonphase: Shows the moonphase.
Room temperature: Display of the measured temperature in the room (only with RTC or DHT22).
Room humidity: Display of the measured humidity in the room (only with DHT22).
Outdoor temperature: Display the temperature for your location from MeteoWeather.
Outdoor humidity: Display the humidity for your location from MeteoWeather.
Timer: Display of the remaining time if a timer is set.
LED-Test: Moves a horizontal bar across the display.
Red: Set all LEDs to red.
Green: Set all LEDs to green.
Blue: Set all LEDs to blue.
White: Set all LEDs to white.
*** Settings: ****************************************************************
Alarm 1: Enable (on) or disable (off) alarm 1.
Time for alarm 1.
Weekdays on which alarm 1 is active.
Alarm 2: Enable (on) or disable (off) alarm 2.
Time for alarm 2.
Weekdays on which alarm 2 is active.
Hourly beep: Short beep every full hour.
Timer: Sets the minute timer. Set to zero to disable a running timer.
Show temperature: Enable (on) or disable (off) showing the temperature in time view.
ABC: Enable (on) or disable (off) adaptive brightness control.
Brightness will adjust itself in the range of MIN_BRIGHTNESS and brightness.
Brightness: Brightness of the LEDs in percent. The range is MIN_BRIGHTNESS to MAX_BRIGHTNESS.
If ABC is enabled this is the maximum achievable brightness.
Color: Choose one of 25 colors for the LEDs.
Colorchange: Change the color in intervals.
Do not change (off), every 5 minutes (five), every hour (hour), every day (day).
Transition: Choose between fast, move or fade mode transition.
Timeout: Time in seconds to change mode back to time. (0: disabled)
Night off: Set the time the clocks turns itself off at night.
Day on: Set the time the clocks turns itself on at day.
Show "It is": Enable (on) or disable (off) "It is". It will be shown every half and full hour anyway.
Set date/time: Date and time of the clock. The seconds are set to zero if you press save.
******************************************************************************
Configuration.h - Software settings:
******************************************************************************
#define HOSTNAME The name of the clock.
#define WEBSITE_TITLE Title on top of the clocks webpage.
#define WIFI_SETUP_TIMEOUT Time in seconds set up the WiFiManager or search for a WLAN.
If no WLAN is connected the clock enters AP mode.
You can control the clock if you connect your phone or tablet to this accesspoint.
On Android you have to tell the phone that it's ok to have no internet.
#define WIFI_AP_PASS The password for the AP. At least 8 characters. Default is "12345678".
#define OTA_PASS Password for "Over the Air" updates. Default is "1234".
#define NTP_SERVER NTP server to be queried.
#define NTP_TIMEOUT Milliseconds to wait for NTP server to answer.
#define WIFI_BEEPS Beep 3 times if WIFI is conneced, if not, beep one time on startup.
#define SHOW_IP Show local IP at startup. Use this in the browser to access the clocks menue.
#define NONE_TECHNICAL_ZERO Displays the zero without the diagonal line.
#define AUTO_MODECHANGE_TIME Time in seconds to wait between switching from time to temperature.
#define FEED_SPEED Feed delay in milliseconds. 120 is a good start.
#define SUNSET_SUNRISE_SPEED Milliseconds delay between sunrise screen -> sunrise time and sunset screen -> sunset time
#define EVENT_TIME Time in seconds to wait between showing events. Comment to turn off events.
#define ALARM_LED_COLOR Color of the alarm LED. If not defined the display color will be used.
The possible colors are:
WHITE, RED, RED_25, RED_50, ORANGE, YELLOW, YELLOW_25, YELLOW_50, GREENYELLOW,
GREEN, GREEN_25, GREEN_50, MINTGREEN, CYAN, CYAN_25, CYAN_50, LIGHTBLUE, BLUE,
BLUE_25, BLUE_50, VIOLET, MAGENTA, MAGENTA_25, MAGENTA_50, PINK.
#define ABUSE_CORNER_LED_FOR_ALARM Use the upper right minute LED as alarm LED. Only works if ALARM_LED_COLOR is defined.
If no alarm or timer is set the LED is used as expected.
#define DEDICATION Show a text on the clocks webpage.
#define POWERON_SELFTEST Test LEDs at startup. Colors are: white, red, green, blue. In this order.
#define SHOW_MODE_AMPM Show AM/PM.
#define SHOW_MODE_SECONDS Show seconds.
#define SHOW_MODE_WEEKDAY Show weekday.
#define SHOW_MODE_DATE Show date.
#define SHOW_MODE_MOONPHASE Show moonphase.
#define SHOW_MODE_SUNRISE_SUNSET Show sunrise and sunset times.
#define SHOW_MODE_TEST Show tests.
#define WEATHER Enable MeteoWeather usage to display weather information from the internet.
#define LATITUDE Your location latitude for MeteoWeather API.
#define LONGITUDE Your location longitude for MeteoWeather API.
#define TIMZONE Your location timezone for MeteoWeather API.
#define TIMEZONE_* The time zone in which the clock is located. Important for the UTC offset and the
summer/winter time change.
#define FRONTCOVER_* Frontcover of the clock. This also sets the language of the menu and the website.
******************************************************************************
Configuration.h - Hardware settings:
******************************************************************************
#define ESP_LED Displays the function using the LED on the ESP. It flashes once a second.
#define ONOFF_BUTTON Use a hardware on/off-button.
#define MODE_BUTTON Use a hardware mode-button.
#define TIME_BUTTON Use a hardware time-button. Debug to serial will not work if defined.
#define SENSOR_DHT22 Use a DHT22 sensor module (not the plain sensor) for room temperature and humidity.
#define DHT_TEMPERATURE_OFFSET Sets how many degrees the measured room temperature (+ or -) should be corrected.
#define DHT_HUMIDITY_OFFSET Sets how many degrees the measured room humidity (+ or -) should be corrected.
#define RTC_BACKUP Use an RTC as backup and room temperature.
#define RTC_TEMPERATURE_OFFSET Sets how many degrees the measured room temperature (+ or -) should be corrected.
#define LDR Use an LDR for adaptive brightness control (ABC).
#define LDR_IS_INVERSE Combined with #define LDR inverses the value of the LDR.
#define LDR_HYSTERESIS Brightness control from a deviation in the range from 0 to 1023. Default: 40.
If your display is flickering increase this value.
#define MIN_BRIGHTNESS Minimum brightness of LEDs ranging from 0 to 255. Default: 20.
#define MAX_BRIGHTNESS Maximum brightness of LEDs ranging from 0 to 255. Default 255.
Your powersupply has to support this brightness.
#define BRIGHTNESS_SELFTEST Brightness of the LEDs while in testmode to not overload the powersupply.
#define BUZZER Use a buzzer to make noise for alarmtime and timer.
If not defined all alarmfunctions are disabled.
#define BUZZTIME_ALARM_1 Maximum time in seconds for alarm 1 to be active when not turned off manually.
#define BUZZTIME_ALARM_2 Maximum time in seconds for alarm 2 to be active when not turned off manually.
#define BUZZTIME_TIMER Maximum time in seconds for the timer alarm to be active when not turned off manually.
#define IR_REMOTE Use an IR remote control.
#define IR_LETTER_OFF Turns off the LED behind the IR sensor permanently. This improves IR reception.
#define IR_CODE_* Any remote control can be used. 6 keys are supported.
Press a button on the remote control in front of the clock.
Then write the code displayed in the serial console to the file "Configuration.h".
If you see more than one try the code which is changing from button to button.
DEBUG has to be defined to show you the code.
#define NEOPIXEL_RGB Select if your LEDs are RGB only.
#define NEOPIXEL_RGBW Select if your LEDs have a distinct white channel (RGBW).
#define NEOPIXEL_TYPE Specifies the NeoPixel driver. 400kHz, 800kHz, GRB, RGB, GRBW, RGBW...
See \libraries\Adafruit_NeoPixel.h for help.
#define LED_LAYOUT_HORIZONTAL_1 Horizontal and corner and alarm LEDs at the end of the strip. (As seen from the front.)
111 114 112
000 001 002 003 004 005 006 007 008 009 010
021 020 019 018 017 016 015 014 013 012 011
022 023 024 025 026 027 028 029 030 031 032
043 042 041 040 039 038 037 036 035 034 033
044 045 046 047 048 049 050 051 052 053 054
065 064 063 062 061 060 059 058 057 056 055
066 067 068 069 070 071 072 073 074 075 076
087 086 085 084 083 082 081 080 079 078 077
088 089 090 091 092 093 094 095 096 097 098
109 108 107 106 105 104 103 102 101 100 099
110 113
#define LED_LAYOUT_VERTICAL_1 Vertical and corner and alarm LEDs (almost) within the strip. (As seen from the front.)
000 114 102
001 021 022 041 042 061 062 081 082 101 103
002 020 023 040 043 060 063 080 083 100 104
003 019 024 039 044 059 064 079 084 099 105
004 018 025 038 045 058 065 078 085 098 106
005 017 026 037 046 057 066 077 086 097 107
006 016 027 036 047 056 067 076 087 096 108
007 015 028 035 048 055 068 075 088 095 109
008 014 029 034 049 054 069 074 089 094 110
009 013 030 033 050 053 070 073 090 093 111
010 012 031 032 051 052 071 072 091 092 112
011 113
#define LED_LAYOUT_VERTICAL_2 Vertical and corner and alarm LEDs at the end of the strip. (As seen from the front.)
112 111 110
009 010 029 030 049 050 069 070 089 090 109
008 011 028 031 048 051 068 071 088 091 108
007 012 027 032 047 052 067 072 087 092 107
006 013 026 033 046 053 066 073 086 093 106
005 014 025 034 045 054 065 074 085 094 105
004 015 024 035 044 055 064 075 084 095 104
003 016 023 036 043 056 063 076 083 096 103
002 017 022 037 042 057 062 077 082 097 102
001 018 021 038 041 058 061 078 081 098 101
000 019 020 039 040 059 060 079 080 099 100
113 114
#define LED_LAYOUT_VERTICAL_3 Vertical and corner and alarm LEDs at the end of the strip. (As seen from the front.)
111 114 110
009 010 029 030 049 050 069 070 089 090 109
008 011 028 031 048 051 068 071 088 091 108
007 012 027 032 047 052 067 072 087 092 107
006 013 026 033 046 053 066 073 086 093 106
005 014 025 034 045 054 065 074 085 094 105
004 015 024 035 044 055 064 075 084 095 104
003 016 023 036 043 056 063 076 083 096 103
002 017 022 037 042 057 062 077 082 097 102
001 018 021 038 041 058 061 078 081 098 101
000 019 020 039 040 059 060 079 080 099 100
112 113
******************************************************************************
Configuration.h - Misc:
******************************************************************************
#define DEBUG Show debug infos in the serial console.
#define DEBUG_WEB Show debug infos on the web page.
#define DEBUG_MATRIX Renders the output of the matrix for the German front in the serial console.
#define DEBUG_FPS Show number of loops per second in the serial console.
#define SYSLOGSERVER Turn logging to a syslogserver on/off.
#define SYSLOGSERVER_SERVER Address of the syslogserver.
#define SYSLOGSERVER_PORT Port of the syslogserver.
#define UPDATE_INFO_* The update info periodically anonymously checks if there is a firmwareupdate
available. No user data is send to the host. Comment if you do not want this info.
#define UPDATE_INFOSERVER Address of the updateinfo server.
#define UPDATE_INFOFILE Path and name of the updateinfo file.
#define SERIAL_SPEED Serial port speed for the console.
******************************************************************************
Events.h
******************************************************************************
event_t events[] Display a textfeed on a particular day of the year.
The format of an entry in the array is:
{ month, day, "Text to display.", year, color },
The last entry has no comma at the end.
Year will be used to calculate an age. "present year" - year = age.
'0' will not show an age.
There can only be one event a day.
The possible colors are:
WHITE, RED, RED_25, RED_50, ORANGE, YELLOW, YELLOW_25, YELLOW_50, GREENYELLOW,
GREEN, GREEN_25, GREEN_50, MINTGREEN, CYAN, CYAN_25, CYAN_50, LIGHTBLUE, BLUE,
BLUE_25, BLUE_50, VIOLET, MAGENTA, MAGENTA_25, MAGENTA_50, PINK.
Do not change the first entry.
******************************************************************************
Web-API:
******************************************************************************
http://your_clocks_ip/commitSettings?
a1=0 Alarm 1 on [1] or off [0]
a1t=hh:mm Alarm 1 hour [hh] and minute [mm]
a1w1=2 Set Sunday
a1w2=4 Set Monday
a1w3=8 Set Tuesday
a1w4=16 Set Wednesday
a1w5=32 Set Thursday
a1w6=64 Set Friday
a1w7=128 Set Saturday
a2=0 Alarm 2 on [1] or off [0]
a2t=hh:mm Alarm 2 hour [hh] and minute [mm]
a2w1=2 Set Sunday
a2w2=4 Set Monday
a2w3=8 Set Tuesday
a2w4=16 Set Wednesday
a2w5=32 Set Thursday
a2w6=64 Set Friday
a2w7=128 Set Saturday
hb=0 Hourly beep on [1] or off [0]
ti=0 Timer in minutes
mc=0 Modechange on [1] or off [0]
ab=1 ABC on [1] or off [0]
br=50 Brightness in percent
co=14 Number of the LEDs color. See Colors.h
cc=0 Number of colorchange. See Colors.h
tr=1 Number of transition. See Modes.h
to=15 Timeout in seconds
no=hh:mm Night off hour [hh] and minute [mm]
do=hh:mm Day on hour [hh] and minute [mm]
ii=1 "It is" on [1] or off [0]
st=YYYY-MM-DDThh:mm Set time and date
http://your_clocks_ip/setEvent?
day=dd Set day of event
month=mm Set month of event
color=0 Color of the eventtext, 0 to 24 (optional)
text=text Set text of event, max. 40 characters
e.g.: http://192.168.1.10/setEvent?day=27&month=10&color=5&text=This%20is%20an%20event.
http://your_clocks_ip/showText?
buzzer=1 Number of times the buzzer will beep before showing the text (optional)
color=0 Color of the textfeed, 0 to 24 (optional)
text=text Set text of feed, max. 80 characters
e.g.: http://192.168.1.10/showText?buzzer=2&color=1&text=Instant%20text%20on%20Qlockwork!
http://your_clocks_ip/control?
mode=0 Set clock to mode=0 (time), mode=1 (am/pm), ...
mode=17 (off, if all other modes are enabled) -- see modes.h and count.
e.g.: http://192.168.1.10/control?mode=6
******************************************************************************
Changelog:
******************************************************************************
20240908:
Switch to MeteoWeather API for weather and sunrise/sunset information (API Key no longer required, regestration for API no longer needed).
Beatification of debug output and webcontrol page for sunrise/sunset.
Fixed transitions.
20220830:
Fixed the issue that adaptive brightness control (ABC) can not be disabled in settings.
20220429:
Moved the web-site from "tmw-it.ch" to "thorsten-wahl.ch"
The UPDATE_INFOSERVER also moved there. Please update your Configuration.h
20220411:
Fixed a bug causing the project not to compile in a certain configuration.
<Qlockwork.ino:1504:33: error: 'save_color_sunrise_sunset' was not declared in this scope>
20220312:
Clocks brightness from LDR is now transitioning smoothly between values.
Sunrise and sunset now uses global timeout to switch back to time.
Fixed a bug causing the RTC not to work.
Added option to select RBG or RGBW for LedDriver.
Using transition "Move up" in menus. "Fade" was not working too well.
20220311:
Fixed a bug preventing compilation using esp8266 by ESP8266 Community (3.0.2).
IDE change from VisualMicro to free Visual Studio Code.
20220310:
Mode sunrise and sunset (Thanks to GenosseFlosse).
20210422:
Reduced the watchdog resets (Thanks to espuno).
20210321:
Fixed openweather bug for more than one weathercondition (Thanks to Manfred).
Setting RTC vom Web should be LT - not UTC (Thanks to Manfred).
Clear all LEDs before exiting test pattern (Thanks to espuno).
Calculate white channel for NEO_WRGB (Thanks to Manfred).
New LED_LAYOUT_VERTICAL_3 (Like vertical 2 but alarm LED = 114).
20210224:
WLAN RSSI on WEB page in Debug.
// -30 dBm Ausgezeichnet Dies ist die maximal erreichbare und für jedes Einsatzszenario geeignete Signalstärke.
// -50 dBm Ausgezeichnet Dieser ausgezeichnete Signalpegel ist für alle Netzwerkanwendungen geeignet.
// -65 dBm Sehr gut Empfohlen für die Unterstützung von Smartphones und Tablets.
// -67 dBm Sehr gut Diese Signalstärke reicht für Voice-over-IP und Video-Streaming aus.
// -70 dBm Akzeptabel Diese Stufe ist die minimale Signalstärke um eine zuverlässige Paket-Zustellung zu gewährleisten.
// -80 dBm Schlecht Ermöglicht grundlegende Konnektivität, die Paket-Zustellung ist jedoch unzuverlässig.
// -90 dBm Sehr schlecht Meistens Rauschen, das die meisten Funktionen behindert.
//-100 dBm Am schlechtesten Nur Rauschen.
20210218:
Outdoor pressure on WEB page.
Replaced WEB page title HOSTNAME with WEBSITE_TITLE in configuration (Thanks to GenosseFlosse).
20200709:
Turn off timer when it is running.
Some localization in settings and weather.
Fixed alarm running 4 times longer than configured.
Set Hostname (Thanks to toto79).
Fixes to Buttons for esp8266 2.7.x (Thanks to toto79).
Fixes to WiFiManager for esp8266 2.7.x (Thanks to toto79).
20200112:
WEB API for Clock On/Off.
20200107:
Bugfixes.
20200101:
Outdoor weather from OpenWeatherMap.
New LED driver with LED array mapping.
Reworked Configuration.h
Switched to lean Arduino_Json.h
20191212:
Some housekeeping.
20190520:
#define WIFI_BEEPS
Fixed rare flickering in fade transition.
20190204:
Maior update of "Readme.txt"
20190106:
Removed Yahoo weather.
20190105:
Bugfix negative outdoorTemperature.
Bugfix outdoorCode not available.
20181213:
No hourly beep if clock is off.
Some small improvements.
20181101:
Settings set to defaults!
Hourly beep.
Set color of textfeed from URL.
Set color of events[0].text from URL.
Code cleanup and some minor bugfixes.
20181027:
Show textfeed from URL.
20181021:
Set events[0] from URL.
Name is back to Qlockwork (from Qlockwork2).
20180930:
Use esp8266 by ESP8266 Community Version 2.4.2
Updated included libraries.
Removed legacy support for LPD8806RGBW.
Hardwareflags in debuginfo on webpage.
If NTP-request fails, try again every minute - don't wait for an hour.
More housekeeping.
20180929:
Cleaned up libraries.
20180130:
Transition "Move up"
Rewrote some code.
Removed FastLED.
FRONTCOVER_BINARY
20180120:
Hardware mode-, on/off- and timebutton.
Moved PIN_IR_RECEIVER from D3 to D0.
Tooltips for webbuttons.
Added description of the Web-API in Readme.txt
Cleanup and bugfixes.
20171127:
Bugfixes.
20171125:
Set weekdays for alarms on web-page.
Set alarm to "on" if alarmtime is changed.
Set time, timeout, "Night off", "Day on" on web-page.
Removed settings from clock-menu which are present on web-page.
AP mode if no WLAN is connected.
"#define DEBUG" and "#define DEBUG_WEB" are back.
Switched from RestClient.h to ArduinoHttpClient.h
Moved setting of frontcover to configuration.h "#define FRONTCOVER_*"
Removed "#define LANGUAGE_*". Now set from "#define FRONTCOVER_*"
Removed experimantal DUAL-support.
Settings set to defaults.
20171111 (stable):
Cleanup and bugfixes.
New syslog format.
20171019:
Changing automode.
Bugfix for Firefox.
20171013:
Settings of alarms, colorchange, automode and show "It is" on Web-Page.
RTC is now on UTC.
20171006:
Moonphase.
Color humidity indicator.
Faster Web-GUI.
Better offline behavior.
Reset via URL.
20170929:
Adaptive Brightness Control (ABC).
New syslog logging.
Code cleanup and bugfixes.
20170312:
Inital release.