Das eigentliche Setzen der Zeitzone erfolgt (soweit ich weiß und getestet habe - verglichen habe ich selbst nur die 7490 und bei der 7580 mal "reingeschaut") sowohl bei der deutschen als auch der internationalen Firmware immer auf demselben Weg (in der "rc.conf"):
Code:
488 ##########################################################################################
489 ## Time Zone
490 ##########################################################################################
491 MANUAL_TZ_ENABLED="`echo timezone_manual.enabled | ar7cfgctl -s 2>/dev/null`"
492 if [ "$MANUAL_TZ_ENABLED" = "yes" ]; then
493 MANUAL_TZ="`echo timezone_manual.TZ_string | ar7cfgctl -s 2>/dev/null | sed s/\\"//g`"
494 rm -f /var/TZ
495 echo $MANUAL_TZ >/var/TZ
496 else
497 rm -f /var/TZ
498 TZ_EXT="`echo timezone_manual.country_timezone | ar7cfgctl -s 2>/dev/null | sed s/\\"//g`"
499 if [ -n "${TZ_EXT}" ] && [ -f "/etc/default.$Country/TZ_ext/${TZ_EXT}/TZ_String" ] ; then
500 ln -s /etc/default.$Country/TZ_ext/${TZ_EXT}/TZ_String /var/TZ
501 else
502 if [ -f "/etc/default.$Country/TZ_ext/.default/TZ_String" ] ; then
503 ln -s /etc/default.$Country/TZ_ext/.default/TZ_String /var/TZ
504 else
505 ln -s /etc/default.$Country/TZ /var/TZ
506 fi
507 fi
508 fi
509 export TZ=`cat /etc/TZ`
Wie man in Zeile 492 und 493 sehen kann, interessiert es bei "enabled=yes" nur noch, was in der "TZ_string" steht ... denn das wird unbesehen (selbst wenn es leer wäre) in die Datei "/var/TZ" geschrieben ("/etc/TZ" ist ein Symlink dorthin) und auch so ins Environment exportiert.
Erst wenn bei "enabled" ein "no" steht, kommt der Rest der Logik (im "else"-Zweig ab Zeile 497) zum Einsatz und dann wird versucht, aus verschiedenen Quellen die Zeitzone zu ermitteln. Die "letzte Instanz" (wenn es zuvor nichts anderes gab, was sich aus "country_timezone" als "TZ_ext" ermitteln läßt - wozu es dann bei den Ländereinstellungen aber ein Unterverzeichnis "TZ_ext" bräuchte und das hat bei der 7490 fast(!) keines der vorkonfigurierten Länder) ist dann die "TZ" für das Land und die sieht jeweils so aus:
Code:
vidar:/home/FritzBox/FB7490/firmware/113.07.01-intl $ for d in $(find etc -type d -name "default.[0-9]*"); do printf "%s\t- %s\n" "${d#etc/default.}" "$(cat $d/TZ)"; done
0351 - WET-0WEST-1,M3.5.0/01:00:00,M10.5.0/02:00:00
033 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0352 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0264 - WAT-1WAST-2,M9.1.0/02:00:00,M4.1.0/02:00:00
039 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
046 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0255 - EAT-3
0371 - EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00
041 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0256 - EAT-3
030 - EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00
049 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
054 - UTC+3
0386 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
031 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
064 - NZST-12NZDT-13,M9.5.0/02:00:00,M4.1.0/03:00:00
027 - UTC-2
0357 - EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00
036 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
061 - EST-10EDT-11,M10.5.0/02:00:00,M3.5.0/03:00:00
045 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
044 - GMT+0BST-1,M3.5.0/01:00:00,M10.5.0/02:00:00
034 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0376 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0385 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0387 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0234 - WAT-1
047 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0389 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0972 - UTC-3
0420 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0358 - EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00
0421 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
043 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0382 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
99 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
066 - UTC-7
048 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0372 - EET-2EEST-3,M3.5.0/03:00:00,M10.5.0/04:00:00
032 - CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
0353 - GMT+0IST-1,M3.5.0/01:00:00,M10.5.0/02:00:00
vidar:/home/FritzBox/FB7490/firmware/113.07.01-intl $
Da, wo diese "TZ string" die Informationen zur Sommerzeit enthält (der Aufbau ist vielfach im Internet dokumentiert), sollte die "Umschaltung" auch funktionieren, denn wie auch hier schon richtig festgestellt wurde, liefert ein Zeitserver nur den UTC-Wert (der ist im Sommer wie auch im Winter immer derselbe) und was man daraus dann macht, entscheidet das Gerät selbst.
Selbst auf der Südhalbkugel (Australien ist 061) sollte das also funktionieren und oben sieht man in der "TZ string" auch schön, daß die Umschaltung dort am selben Tag und zur selben Stunde wie in Europa (D ist natürlich 049) erfolgt, nur halt in die andere Richtung.
Australien ist dann auch die Ausnahme hinsichtlich der "TZ_ext" ... wie man in der internationalen Firmware sehen kann, gibt es da mehrere Einträge, anhand derer man erkennt, wie AVM sich das bei einem Land mit mehreren Zeitzonen wohl vorstellt:
Code:
vidar:/home/FritzBox/FB7490/firmware/113.07.01-intl $ find etc/default.061/TZ_ext/ -ls
9311493 4 drwxrwxrwx 3 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/
9311495 4 drwxrwxrwx 7 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia
9311496 4 drwxrwxrwx 2 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Adelaide
9312024 4 -rwxrwxrwx 1 root root 31 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Adelaide/TZ_String
9312023 4 -rwxrwxrwx 1 root root 86 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Adelaide/TZ_Info
9312025 4 -rwxrwxrwx 1 root root 6 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Adelaide/TZ_stringtabid
9311498 4 drwxrwxrwx 2 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Darwin
9312030 4 -rwxrwxrwx 1 root root 10 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Darwin/TZ_String
9312029 4 -rwxrwxrwx 1 root root 36 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Darwin/TZ_Info
9312031 4 -rwxrwxrwx 1 root root 6 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Darwin/TZ_stringtabid
9311500 4 drwxrwxrwx 2 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Sydney
9312036 4 -rwxrwxrwx 1 root root 29 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Sydney/TZ_String
9312035 4 -rwxrwxrwx 1 root root 162 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Sydney/TZ_Info
9312038 4 -rwxrwxrwx 1 root root 6 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Sydney/TZ_stringtabid
9312037 0 -rwxrwxrwx 1 root root 0 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Sydney/TZ_isDefault
9311497 4 drwxrwxrwx 2 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Brisbane
9312027 4 -rwxrwxrwx 1 root root 8 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Brisbane/TZ_String
9312026 4 -rwxrwxrwx 1 root root 95 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Brisbane/TZ_Info
9312028 4 -rwxrwxrwx 1 root root 6 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Brisbane/TZ_stringtabid
9311499 4 drwxrwxrwx 2 root root 4096 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Perth
9312033 4 -rwxrwxrwx 1 root root 7 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Perth/TZ_String
9312032 4 -rwxrwxrwx 1 root root 51 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Perth/TZ_Info
9312034 4 -rwxrwxrwx 1 root root 6 Sep 19 14:00 etc/default.061/TZ_ext/Australia/Perth/TZ_stringtabid
9311494 0 lrwxrwxrwx 1 root root 18 Oct 4 18:24 etc/default.061/TZ_ext/.default -> ./Australia/Sydney
vidar:/home/FritzBox/FB7490/firmware/113.07.01-intl $
Wer das also selbst "auswählbar" haben will für sein Land (und wo AVM das nicht bereitstellt), kann sich daran orientieren und wer nur seine eigene Box umstellen möchte, der braucht nur die richtige(!) Zeichenfolge in "TZ_string" einzutragen, damit das auch mit der Umstellung klappt. Wer's nicht glaubt und den Aufbau der Zeichenkette kennt, braucht auch nicht erst ein halbes Jahr zu warten mit dem eigenen Test ... man kann das Datum für die Umschaltung auf jeden beliebigen Tag (auch morgen nachmittag um 14 Uhr) legen und sich selbst überzeugen oder nach dem Problem (sollte es tatsächlich eines geben) bei der automatischen Umstellung suchen.
Die Frage, was das GUI zur Konfiguration anbietet, ist dann wieder eine vollkommen andere (und davon losgelöst) ... wer das genauer untersuchen will, muß einen Blick in die "timezone.lua" werfen, die es in der deutschen Firmware gar nicht gibt. Das ist auch der Grund, warum es von mir bisher kein "modscript" dafür gibt, welches die einfach auch in der deutschen Version freischaltet, denn das Auswerten von "manual_timezone" gibt es ja bereits, auch in der deutschen Version. Hingegen gibt es wohl keine Option für "ctlmgr_ctl" (und damit auch nicht für das Lua-Interface), mit der man die "TZ_string" direkt setzen könnte - da wird nur "tz_enabled", "tz_dst_enabled" und "tz_offset_minutes" eingestellt, soweit man das dem Lua-Quelltext entnehmen kann und die werden wohl auf die passenden Variablen abgebildet, aber nicht direkt auf "TZ_string" oder "TZ_name" in "timezone_manual".
Wer seine Box ohnehin modifiziert, dem würde ich das Ersetzen des weiter oben gezeigten AVM-Codes von 488 bis 508 durch ein simples "echo" des richtigen Wertes in die "/var/TZ" empfehlen, das "export" danach kann/sollte bleiben. Damit interessiert es normalerweise auch nicht mehr, wenn die AVM-Firmware irgendetwas in der "ar7.cfg" wieder von selbst verstellt (ich meine, mich an entsprechende Berichte von
@chilango79 zu erinnern) ... es wird gar nicht mehr aus irgendeiner Einstellungsdatei gelesen und immer ein "fester" Wert verwendet. Das wäre die Lösung, wenn man keine Umschaltmöglichkeit braucht und trotzdem nicht mit dem "TZ"-Inhalt für das eingestellte Land leben kann bzw. wenn es für den Standort bei AVM gar keine Ländereinstellung gibt.
Ansonsten muß man eben damit leben, daß man "TZ_string" und "enabled" immer mal wieder anpassen muß, wenn die Box die aus irgendeinem Grund ändert ... aber wichtig für die tatsächliche Einstellung der Zeitzone in der Box, wären eben (wie oben gezeigt) nur diese beiden Werte - einmal zum "generellen Einschalten" der manuellen Konfiguration und einmal die richtige TZ-String, wie sie unter Unix üblich ist.
Ich habe mal einen Test mit der "TZ_string" gemacht:
Code:
root@FB7490:~ $ date -u
Tue Nov 6 21:51:48 UTC 2018
root@FB7490:~ $ date
Tue Nov 6 23:51:52 CEST 2018
root@FB7490:~ $ getsect timezone_manual /var/flash/ar7.cfg
timezone_manual {
enabled = yes;
offset = 0;
dst_enabled = no;
TZ_string = "CET-1CEST-2,M3.5.0/02:00:00,M11.1.3/01:00:00";
name = "private setting";
}
root@FB7490:~ $
und das Datum für das Ende der Sommerzeit auf 01:00 Uhr am ersten Mittwoch im November verschoben. Was dann die UTC-Zeit war und welche lokale Zeit daraus wurde (vor der Umstellung), sieht man oben auch. Etwas mehr als 1 1/2 Stunden später sah das Ganze dann so aus (ohne daß ich selbst etwas geändert hätte):
Code:
root@FB7490:~ $ date
Wed Nov 7 00:30:16 CET 2018
root@FB7490:~ $ date -u
Tue Nov 6 23:30:20 UTC 2018
root@FB7490:~ $
Als die Uhrzeit die angegebene Marke "01:00 Uhr" für die Umschaltung erreicht hatte (das war dann um 23:00 UTC), wurde daraus wieder die lokale Zeit "07.11.2018 00:00 Uhr" (und 30 Minuten später habe ich dann die o.a. Kommandos ausgeführt).
Der einzige Hinweis dafür, daß die Box überhaupt die Zeit "geändert" hat, ist das Event-Log ... das springt von 00:50 Uhr auf 00:14 Uhr:
Code:
07.11.18 00:14:34 WLAN-Gerät angemeldet, WLAN wird mit voller Leistung reaktiviert (5 GHz).
07.11.18 00:50:11 Kein WLAN-Gerät mehr angemeldet, Stromverbrauch wird reduziert (5 GHz).
Ich habe auch keine Idee, was AVM mit dem GUI erreichen will und was das bringen soll ... aber mit der manuellen Konfiguration der "TZ_string" (ggf. sogar auf einen festen Wert, wie oben angesprochen) sollte man auch seiner (modifizierten) FRITZ!Box so ziemlich jede beliebige Zeitzone beibringen können, die man möchte. Ob die AVM-Seite (in der internationalen Firmware) dabei immer sehr hilfreich ist, vermag ich nicht einzuschätzen ... dafür brauche ich das zu selten, weil ich keine FRITZ!Boxen außerhalb von CET betreuen muß.