The firmware accepts a POSIX TZ rule. This allows the node to automatically switch between daylight saving time and standard time without a time server and without a fixed UTC offset.
- Console:
--settz <regel>sets the rule,--settz noneDelete them. - Web Setup: "Time Zone" field (maximum 39 characters).
- The rule is saved in
node_tz. On the ESP32, when it starts up for the first timeCET-1CEST,M3.5.0,M10.5.0/3set by default. --utcoffDelete the rule again (fixed UTC offset).
Example: --settz CET-1CEST,M3.5.0,M10.5.0/3
Name Offset [SommerName [Offset] ,Beginn,Ende]
- Name: at least 3 letters, or the form
<+0530>. A maximum of 7 characters will be saved. - Offset:
[+-]hh[:mm[:ss]]with POSIX sign, that is, positive in the West:CET-1means UTC+1,EST5means UTC-5. - If the daylight saving time offset is missing, standard time plus 1 hour applies.
- Rules only in this form
Mm.w.d[/zeit]: Month 1–12, Week 1–5 (5 = last), Day of the week 0–6 (0 = Sunday). Local time, default 02:00, up to 167 hours, including times beyond 24 hours. - The start time is based on standard time, and the end time is based on daylight saving time.
- Maximum of 39 characters.
| Input | Firmware Report |
|---|---|
J– or rules for calculating the number of days (J60, 59) |
only M rules supported (Mm.w.d) |
| longer than 39 characters | too long (max 39 characters) |
| Everything else (syntax errors, names that don't follow the rules) | format (std offset dst,Mm.w.d/time,Mm.w.d/time) |
The strings correspond to the POSIX lines in the IANA tzdata (as of October 2026, verified against the tzdata on the development server). The "UTC Offset" column indicates standard time / daylight saving time. Each string is tested by the test test/test_tz_rule Tested to ensure that the document and firmware remain in sync.
| Region | Time zone (IANA, for reference) | TZ string | UTC offset (winter/summer) | DST rule |
|---|---|---|---|---|
| UTC | UTC | UTC0 |
+0 / +0 | none |
| Europe | Europe/London | GMT0BST,M3.5.0/1,M10.5.0 |
+0 / +1 | From last Sunday, March 1, 01:00 UTC, to last Sunday, October 1, 01:00 UTC |
| Europe | Europe/Dublin | GMT0IST,M3.5.0/1,M10.5.0 |
+0 / +1 | as London (tzdata is written as IST-1GMT0 with negative DST; use the format listed) |
| Europe | Europe/Lisbon | WET0WEST,M3.5.0/1,M10.5.0 |
+0 / +1 | as London |
| Europe | Europe/Vienna (including Berlin, Zurich, Rome, Warsaw, Prague, Budapest, Zagreb, Ljubljana, Amsterdam, Brussels, Paris, and Madrid) | CET-1CEST,M3.5.0,M10.5.0/3 |
+1 / +2 | Last Sunday, March 2, at 2:00 a.m. to last Sunday, October 3, at 3:00 a.m. local time (1:00 a.m. UTC for both) |
| Europe | Europe/Athens (including Helsinki, Bucharest, Sofia, Kyiv, Riga, Tallinn, and Vilnius) | EET-2EEST,M3.5.0/3,M10.5.0/4 |
+2 / +3 | Last Sunday, March 3, at 3:00 a.m. to last Sunday, October 4, at 4:00 a.m. local time (1:00 a.m. UTC for both) |
| Europe | Europe/Moscow | MSK-3 |
+3 / +3 | none |
| Europe | Europe/Istanbul | <+03>-3 |
+3 / +3 | none |
| Europe | Atlantic/Reykjavik | GMT0 |
+0 / +0 | none |
| North America | America/New_York (Eastern) | EST5EDT,M3.2.0,M11.1.0 |
-5 / -4 | 2nd Sun Mar 02:00 to 1st Sun Nov 02:00 local time |
| North America | America/Chicago (Central) | CST6CDT,M3.2.0,M11.1.0 |
-6 / -5 | as New York |
| North America | America/Denver (Mountain) | MST7MDT,M3.2.0,M11.1.0 |
-7 / -6 | as New York |
| North America | America/Phoenix (Arizona) | MST7 |
-7 / -7 | none |
| North America | America/Los_Angeles (Pacific) | PST8PDT,M3.2.0,M11.1.0 |
-8 / -7 | as New York |
| North America | America/Anchorage (Alaska) | AKST9AKDT,M3.2.0,M11.1.0 |
-9 / -8 | as New York |
| North America | Pacific/Honolulu (Hawaii) | HST10 |
-10 / -10 | none |
| North America | America/Halifax (Atlantic) | AST4ADT,M3.2.0,M11.1.0 |
-4 / -3 | as New York |
| North America | America/St. Johns (Newfoundland) | NST3:30NDT,M3.2.0,M11.1.0 |
-3:30 / -2:30 | as New York |
| North America | America/Mexico_City | CST6 |
-6 / -6 | none (abolished in 2022) |
| South America | America/Sao_Paulo (Brazil) | <-03>3 |
-3 / -3 | none (abolished in 2019) |
| South America | America/Argentina/Buenos_Aires | <-03>3 |
-3 / -3 | none |
| South America | America/Bogotá (Colombia) | <-05>5 |
-5 / -5 | none |
| South America | America/Santiago (Chile) | <-04>4<-03>,M9.1.6/24,M4.1.6/24 |
-4 / -3 | 1st Sat Sep 24:00 (i.e., Sun 00:00) to 1st Sat Apr 24:00 local time; Southern Hemisphere, DST over the New Year |
| Africa | Africa/Johannesburg (South Africa) | SAST-2 |
+2 / +2 | none |
| Africa | Africa/Lagos (Nigeria) | WAT-1 |
+1 / +1 | none |
| Africa | Africa/Cairo (Egypt) | EET-2EEST,M4.5.5/0,M10.5.4/24 |
+2 / +3 | From last Friday, April 00:00 to last Thursday, October 24:00 local time (DST reinstated in 2023) |
| Asia | Asia/Kolkata (India) | <+0530>-5:30 |
+5:30 / +5:30 | none |
| Asia | Asia/Kathmandu (Nepal) | <+0545>-5:45 |
+5:45 / +5:45 | none |
| Asia | Asia/Dubai (UAE) | <+04>-4 |
+4 / +4 | none |
| Asia | Asia/Tehran (Iran) | <+0330>-3:30 |
+3:30 / +3:30 | none (abolished in 2022) |
| Asia | Asia/Jerusalem (Israel) | IST-2IDT,M3.4.4/26,M10.5.0 |
+2 / +3 | Friday before the last Sunday at 2:00 a.m. (rule: 4th Thursday at 2:00 a.m. local time) through the last Sunday at 2:00 a.m. |
| Asia | Asia/Shanghai (China) | CST-8 |
+8 / +8 | none |
| Asia | Asia/Hong Kong | HKT-8 |
+8 / +8 | none |
| Asia | Asia/Singapore | <+08>-8 |
+8 / +8 | none |
| Asia | Asia/Tokyo (Japan) | JST-9 |
+9 / +9 | none |
| Asia | Asia/Seoul (South Korea) | KST-9 |
+9 / +9 | none |
| Australia | Australia/Sydney (including Melbourne, Canberra, and Hobart) | AEST-10AEDT,M10.1.0,M4.1.0/3 |
+10 / +11 | 1st Sun Oct 02:00 to 1st Sun Apr 03:00 local time; Southern Hemisphere |
| Australia | Australia/Brisbane (Queensland) | AEST-10 |
+10 / +10 | none |
| Australia | Australia/Adelaide | ACST-9:30ACDT,M10.1.0,M4.1.0/3 |
+9:30 / +10:30 | as Sydney |
| Australia | Australia/Darwin | ACST-9:30 |
+9:30 / +9:30 | none |
| Australia | Australia/Perth | AWST-8 |
+8 / +8 | none |
| New Zealand | Pacific/Auckland | NZST-12NZDT,M9.5.0,M4.1.0/3 |
+12 / +13 | Last Sunday, September 2, at 2:00 a.m. to the first Sunday, April 3, at 3:00 a.m. local time; Southern Hemisphere |
Notes:
- Dublin: tzdata itself writes
IST-1GMT0,M10.5.0,M3.5.0/1(negative daylight saving time). The firmware uses the equivalent form listed here. - The column offsets use the standard notation (east is positive), while the string uses the POSIX sign convention (west is positive).
Countries are either abolishing or reintroducing daylight saving time (Brazil in 2019, Mexico and Iran in 2022, Egypt in 2023). Check the current rule before entering it. On Linux and macOS, the last line of the zone file outputs the POSIX string:
tail -1 /usr/share/zoneinfo/Europe/Vienna
CET-1CEST,M3.5.0,M10.5.0/3
Does the file provide a form with J-If there are rules, negative daylight saving time, or more than 39 characters, it must be rewritten by hand (shorten the name, <+03>(Use the -form option).