Hallo liebe Community!
Nachdem ich nun doch ziemlich lange keine große Zeit und auch kein „blogwürdiges“ Thema hatte gibt’s mal wieder ein Update aus der Nerdkiste. Für viele mag es vielleicht ein alter Hut sein was jetzt kommt, für mich wars aber so erstaunlich und auch zumindest so weit im technischen Detail dass es sicher einige gibt die den Kniff nicht kennen, dass ich erstmals so etwas wie einen „Lifehack“ veröffentliche. Aber eins nach dem anderen.
Da das hier relevant ist: Mein Smartphone ist ein Sony Xperia 5 III, der Akku hat ab Werk 4500 mAh und bei meinem recht harmlosen Nutzungsprofil hält der in aller Regel zwei Tage durch, wobei ich immer nur bis 90% Lade und spätestens bei 20% wieder anstecke, üblicherweise eher schon bei 30-35%. Kurz, ein „Hub“ von ~60% (von 30 auf 90) reicht bei mir für 2 normale Tage aus.
Vor kurzer Zeit wurde ich morgens von meinem Handywecker geweckt, wie wochentags üblich zur Erinnerung, dass ich meinen Hintern aus dem Bett zur Arbeit bewegen soll. Das wäre (leider) völlig normal, was dabei nicht normal war war ein Akkustand von stolzen 8% plus einer „Akkustand niedrig, hoher Verbrauch usw.“ Meldung. Mein Handy hatte abends und über Nacht mal eben fast 40% (!!) Akku verbraten, konnte mir aber nicht sagen, welche App das gewesen sein soll – die zusammengezählten Prozente der angegebenen Apps reichten nicht ansatzweise aus, um den Akkuverlust zu erklären. Und spontane stramme Altersschwäche sollte der Akku nach etwas über 3 Jahren „sanfter Nutzung“ wie oben beschrieben auch noch nicht in dem Maße haben da da was spontan von ~50 auf 8% fällt.
Naja, dachte ich, war wohl irgendn nächtlicher Updatemist, was auch immer. Akku wieder geladen, alles funktioniert wie gewohnt. Das Problem: Das Verhalten blieb dauerhaft so. Der Idleverbrauch meines Handys hatte sich spontan um gefühlt Faktor 10 erhöht. Wo normalerweise maximal 1% in ein, zwei Stunden verlorengeht beim nichtstun saugte das Teil auf einmal 3-5% pro Stunde aus dem Akku, ohne irgendeinen ersichtlichen Grund!
Nun bin ich wirklich kein Smartphone-Profi, aber Nerd genug um mich auch hier reinzubeißen und nachzuforschen. Per Android-Toolkit und USB-Debugging habe ich mir also die detaillierten Logs besorgt welcher Prozess was wann wie so treibt. Das Ergebnis war: Der Modemteil des Smartphones wechselte nicht mehr in den deepsleep Status und verbraucht entsprechend dauerhaft viel Energie. Ok, damit ist der Akku als Schuldiger schon mal aus dem Spiel. Eine genauere Datenanalyse zeigt später, warum das Modem nicht schlafen möchte: Es existieren ständig wake Befehle die aus meinem WLAN stammen.
Wie es der Zufall will, habe ich kurze Zeit vor Auftreten des Problemes die Firmware meines Routers (ASUS RT AX86U) aktualisiert. Der Changelog zeigt aber nur „Sicherheitsupdates“ sowie „verbesserte Kompatibilität mit IoT Hardware“. Sicherheitspatches können sowas kaum verursachen, also habe ich recherchiert, was ASUS mit der IoT Kompatibilität meint bzw. was muss ein WLAN machen, damit das Internet der Dinge gut funktioniert…?
Eine länglichere, nächtliche Suche im Neuland deren Details ich dem Leser hier ersparen will bringt die Lösung und gleichzeitig die Ursache meines Problems:
Viele IoT Geräte sind darauf angewiesen (um nicht zu sagen „so schlecht konstruiert“), dass ein dauerhaft aktives WLAN Signal mit kurzem Beacon und DTIM Intervall vorliegen muss (Details dazu gleich). ASUS hat mit seinem Update daher das DTIM Intervall von üblichen 3 auf 1 heruntergesetzt um solche Geräte stabiler ansprechen zu können. Das blöde daran ist, dass auch ein Smartphone in diesem Netz dadurch 3x häufiger einen „WLAN-Schubs“ bekommt und das in meinem Falle dann so häufig ist, dass das Modem nicht mehr in den Schlafmodus wechselt.
Oder kurz gesagt: ASUS hat das WLAN meines Routers so aggressiv eingestellt dass mein Handy nicht mehr einschlafen konnte.
Kurze Erklärung der Technik:
Ein WLAN muss regelmäßig ein Signal von sich geben um Geräten mitzuteilen, dass es noch da ist und auch um Dinge synchronisieren zu können. Das ist der „Beacon“, ein kurzer Impuls innerhalb eines Frequenzbandes, der standardmäßig alle 100 Millisekunden gesendet wird (exakt sind es 102,4 ms da WLAN-Zeiteinheiten zweierpotenzenbasiert sind aber zu Anschaulichkeitszwecken rechne ich hier überall mit 10er statt 2er Potenzen).
Neben dem Beacon gibt’s jetzt noch die DTIM (=Delivery Traffic Indication Message). Eine DTIM ist sozusagen ein besonderer Beacon, der zusätzlich zum „Hallo ich bin WLAN xy, es ist jetzt 11:36:25.314 Uhr“ weitere Informationen beinhaltet und die Fähigkeit hat Hardware aufzuwecken und ihr mitzuteilen, dass Daten gesendet werden müssen. Das DTIM Interval definiert dabei, nach wie vielen Beacons ein DTIM gesendet wird.
Beispiel: Die Beaconzeit steht auf 100 ms und das DTIM Interval auf 3. Das ist der Standardwert der meisten Router und WLANs. Das bedeutet vereinfacht gesagt, der Router sendet alle 100 Millisekunden ein Lebenszeichen und alle 300 Millisekunden eine erweiterte Nachricht was grade abgeht.
Nachdem nun klar ist wie ein WLAN sich so bemerkbar macht bei den ganzen Endgeräten zurück zum Handyakku. Wie schon beschrieben wurde hat ASUS das DTIM Interval auf 1 gesetzt. Das bedeutet, alle 100 ms kommt die erweiterte DTIM-Nachricht des Routers am Handy an. Das Handy muss um das zu verarbeiten kurz aufwachen, sieht „nix neues“ und legt sich wieder schlafen. Blöderweise funktioniert das schlafenlegen nicht, wenn sofort danach schon wieder der nächste DTIM kommt (genauer: Wenn die Zeitspanne zum nächsten DTIM kürzer ist als die Zeitspanne die den deepsleep auslöst). Diese Daueraktivität des WLAN-Moduls im Smartphone saugt dann den Akku im Hintergrund leer.
Nun wäre/ist das Problem ja damit behoben, das DTIM Intervall wieder auf 3 zu setzen. Aber… warum sollte mans eigentlich nicht höher setzen…?
Es ist möglich, sowohl das Beacon- als auch das DTIM Intervall anzupassen bzw. zu verlängern. Das hat zur Folge, dass Geräte weniger oft vom WLAN „angestupst“ werden und daher auch länger schlafen können und weniger Energie benötigen. Andererseits können zu lange Intervalle dazu führen, dass Geräte die Verbindung verlieren und man bei Liveanwendungen (Streaming, Gaming, VoIP,…) Synchonisationsprobleme bekommt. Ich habs aber natürlich ausprobiert was geht. Und jetzt kommen wir endlich zum im Titel versprochenen Lifehack...
Mein Router unterstützt wie die allermeisten modernen Geräte 2,4 und 5 GHz als Frequenzband. Das 5 GHz-Band habe ich unangetastet gelassen da es für performancekritische Anwendungen (PC, Arbeitslaptop usw.) genutzt wird wo auch ein halbes Watt Stromverbrauch mehr oder weniger völlig egal ist. Das 2,4 GHz Band dagegen, in dem mein Handy (nein, das ist für mich sicher nicht performancekritisch...) beispielsweise hängt, habe ich zum Versuchskaninchen erklärt und die Zeiten für Beacon und DTIM raufgeschraubt. Ergebnis: Bis 300 ms Beacon und 1,5s DTIM (also Interval 5) habe ich keine Probleme feststellen können, erst danach gibt’s sporadisch Verbindungsabbrüche. Also habe ich mit Sicherheitspuffer das 2,4 GHz band auf 250 ms Beacon + DTIM Interval 4 gestellt. Bedeutet statt alle 100/300 ms sendet der Router nur alle 250/1000ms seine Signale für Beacon und DTIM.
Der Disclaimer vorweg: „Your results may vary“ – jede Router-Smartphone-Kombination wird da anders reagieren was stabil möglich ist und wie groß der Effekt ist aber ich wurde in der Testphase komplett überrascht – siehe hier:
Ich habe mein Handy wie üblich auf 90% geladen und zwei Tage später (die ich weitestgehend im eigenen WLAN verbracht habe da Wochenende…) bin ich bei rund 50% statt rund 30% Restakku! Der Effekt auf den Idle-Stromverbrauch ist viel größer als ich es je erwartet habe! Nicht nur, dass ein DTIM alle 100 statt 300 ms den Idleverbrauch des Handys explodieren lässt – genauso senkt ein DTIM alle 1000 ms den Idleverbrauch so stark ab, dass ich rund 10% Akkustand pro Tag weniger benötige! Das ist umgerechnet rund ne Stunde Bildschirmzeit – und wie man im Bild sehen kann geht mein Handy davon aus, dass es von 100 bis 0% ganze 5 Tage durchhalten würde (was sicher nicht ginge aber 3-4 sind so tatsächlich machbar).
Tja, was soll man sagen – hätte man das mal früher gewusst. Wie ganz oben schon erwähnt, vielleicht ist all das hier den Smartphone-Profis schon lange bekannt aber für mich war es eine echte Überraschung.
Habt ihr auch schon euer WLAN „Akkuoptimiert“ und falls ja was hats gebracht?
Nachdem ich nun doch ziemlich lange keine große Zeit und auch kein „blogwürdiges“ Thema hatte gibt’s mal wieder ein Update aus der Nerdkiste. Für viele mag es vielleicht ein alter Hut sein was jetzt kommt, für mich wars aber so erstaunlich und auch zumindest so weit im technischen Detail dass es sicher einige gibt die den Kniff nicht kennen, dass ich erstmals so etwas wie einen „Lifehack“ veröffentliche. Aber eins nach dem anderen.
Da das hier relevant ist: Mein Smartphone ist ein Sony Xperia 5 III, der Akku hat ab Werk 4500 mAh und bei meinem recht harmlosen Nutzungsprofil hält der in aller Regel zwei Tage durch, wobei ich immer nur bis 90% Lade und spätestens bei 20% wieder anstecke, üblicherweise eher schon bei 30-35%. Kurz, ein „Hub“ von ~60% (von 30 auf 90) reicht bei mir für 2 normale Tage aus.
Vor kurzer Zeit wurde ich morgens von meinem Handywecker geweckt, wie wochentags üblich zur Erinnerung, dass ich meinen Hintern aus dem Bett zur Arbeit bewegen soll. Das wäre (leider) völlig normal, was dabei nicht normal war war ein Akkustand von stolzen 8% plus einer „Akkustand niedrig, hoher Verbrauch usw.“ Meldung. Mein Handy hatte abends und über Nacht mal eben fast 40% (!!) Akku verbraten, konnte mir aber nicht sagen, welche App das gewesen sein soll – die zusammengezählten Prozente der angegebenen Apps reichten nicht ansatzweise aus, um den Akkuverlust zu erklären. Und spontane stramme Altersschwäche sollte der Akku nach etwas über 3 Jahren „sanfter Nutzung“ wie oben beschrieben auch noch nicht in dem Maße haben da da was spontan von ~50 auf 8% fällt.
Naja, dachte ich, war wohl irgendn nächtlicher Updatemist, was auch immer. Akku wieder geladen, alles funktioniert wie gewohnt. Das Problem: Das Verhalten blieb dauerhaft so. Der Idleverbrauch meines Handys hatte sich spontan um gefühlt Faktor 10 erhöht. Wo normalerweise maximal 1% in ein, zwei Stunden verlorengeht beim nichtstun saugte das Teil auf einmal 3-5% pro Stunde aus dem Akku, ohne irgendeinen ersichtlichen Grund!
Nun bin ich wirklich kein Smartphone-Profi, aber Nerd genug um mich auch hier reinzubeißen und nachzuforschen. Per Android-Toolkit und USB-Debugging habe ich mir also die detaillierten Logs besorgt welcher Prozess was wann wie so treibt. Das Ergebnis war: Der Modemteil des Smartphones wechselte nicht mehr in den deepsleep Status und verbraucht entsprechend dauerhaft viel Energie. Ok, damit ist der Akku als Schuldiger schon mal aus dem Spiel. Eine genauere Datenanalyse zeigt später, warum das Modem nicht schlafen möchte: Es existieren ständig wake Befehle die aus meinem WLAN stammen.
Wie es der Zufall will, habe ich kurze Zeit vor Auftreten des Problemes die Firmware meines Routers (ASUS RT AX86U) aktualisiert. Der Changelog zeigt aber nur „Sicherheitsupdates“ sowie „verbesserte Kompatibilität mit IoT Hardware“. Sicherheitspatches können sowas kaum verursachen, also habe ich recherchiert, was ASUS mit der IoT Kompatibilität meint bzw. was muss ein WLAN machen, damit das Internet der Dinge gut funktioniert…?
Eine länglichere, nächtliche Suche im Neuland deren Details ich dem Leser hier ersparen will bringt die Lösung und gleichzeitig die Ursache meines Problems:
Viele IoT Geräte sind darauf angewiesen (um nicht zu sagen „so schlecht konstruiert“), dass ein dauerhaft aktives WLAN Signal mit kurzem Beacon und DTIM Intervall vorliegen muss (Details dazu gleich). ASUS hat mit seinem Update daher das DTIM Intervall von üblichen 3 auf 1 heruntergesetzt um solche Geräte stabiler ansprechen zu können. Das blöde daran ist, dass auch ein Smartphone in diesem Netz dadurch 3x häufiger einen „WLAN-Schubs“ bekommt und das in meinem Falle dann so häufig ist, dass das Modem nicht mehr in den Schlafmodus wechselt.
Oder kurz gesagt: ASUS hat das WLAN meines Routers so aggressiv eingestellt dass mein Handy nicht mehr einschlafen konnte.
Kurze Erklärung der Technik:
Ein WLAN muss regelmäßig ein Signal von sich geben um Geräten mitzuteilen, dass es noch da ist und auch um Dinge synchronisieren zu können. Das ist der „Beacon“, ein kurzer Impuls innerhalb eines Frequenzbandes, der standardmäßig alle 100 Millisekunden gesendet wird (exakt sind es 102,4 ms da WLAN-Zeiteinheiten zweierpotenzenbasiert sind aber zu Anschaulichkeitszwecken rechne ich hier überall mit 10er statt 2er Potenzen).
Neben dem Beacon gibt’s jetzt noch die DTIM (=Delivery Traffic Indication Message). Eine DTIM ist sozusagen ein besonderer Beacon, der zusätzlich zum „Hallo ich bin WLAN xy, es ist jetzt 11:36:25.314 Uhr“ weitere Informationen beinhaltet und die Fähigkeit hat Hardware aufzuwecken und ihr mitzuteilen, dass Daten gesendet werden müssen. Das DTIM Interval definiert dabei, nach wie vielen Beacons ein DTIM gesendet wird.
Beispiel: Die Beaconzeit steht auf 100 ms und das DTIM Interval auf 3. Das ist der Standardwert der meisten Router und WLANs. Das bedeutet vereinfacht gesagt, der Router sendet alle 100 Millisekunden ein Lebenszeichen und alle 300 Millisekunden eine erweiterte Nachricht was grade abgeht.
Nachdem nun klar ist wie ein WLAN sich so bemerkbar macht bei den ganzen Endgeräten zurück zum Handyakku. Wie schon beschrieben wurde hat ASUS das DTIM Interval auf 1 gesetzt. Das bedeutet, alle 100 ms kommt die erweiterte DTIM-Nachricht des Routers am Handy an. Das Handy muss um das zu verarbeiten kurz aufwachen, sieht „nix neues“ und legt sich wieder schlafen. Blöderweise funktioniert das schlafenlegen nicht, wenn sofort danach schon wieder der nächste DTIM kommt (genauer: Wenn die Zeitspanne zum nächsten DTIM kürzer ist als die Zeitspanne die den deepsleep auslöst). Diese Daueraktivität des WLAN-Moduls im Smartphone saugt dann den Akku im Hintergrund leer.
Nun wäre/ist das Problem ja damit behoben, das DTIM Intervall wieder auf 3 zu setzen. Aber… warum sollte mans eigentlich nicht höher setzen…?
Es ist möglich, sowohl das Beacon- als auch das DTIM Intervall anzupassen bzw. zu verlängern. Das hat zur Folge, dass Geräte weniger oft vom WLAN „angestupst“ werden und daher auch länger schlafen können und weniger Energie benötigen. Andererseits können zu lange Intervalle dazu führen, dass Geräte die Verbindung verlieren und man bei Liveanwendungen (Streaming, Gaming, VoIP,…) Synchonisationsprobleme bekommt. Ich habs aber natürlich ausprobiert was geht. Und jetzt kommen wir endlich zum im Titel versprochenen Lifehack...
Mein Router unterstützt wie die allermeisten modernen Geräte 2,4 und 5 GHz als Frequenzband. Das 5 GHz-Band habe ich unangetastet gelassen da es für performancekritische Anwendungen (PC, Arbeitslaptop usw.) genutzt wird wo auch ein halbes Watt Stromverbrauch mehr oder weniger völlig egal ist. Das 2,4 GHz Band dagegen, in dem mein Handy (nein, das ist für mich sicher nicht performancekritisch...) beispielsweise hängt, habe ich zum Versuchskaninchen erklärt und die Zeiten für Beacon und DTIM raufgeschraubt. Ergebnis: Bis 300 ms Beacon und 1,5s DTIM (also Interval 5) habe ich keine Probleme feststellen können, erst danach gibt’s sporadisch Verbindungsabbrüche. Also habe ich mit Sicherheitspuffer das 2,4 GHz band auf 250 ms Beacon + DTIM Interval 4 gestellt. Bedeutet statt alle 100/300 ms sendet der Router nur alle 250/1000ms seine Signale für Beacon und DTIM.
Der Disclaimer vorweg: „Your results may vary“ – jede Router-Smartphone-Kombination wird da anders reagieren was stabil möglich ist und wie groß der Effekt ist aber ich wurde in der Testphase komplett überrascht – siehe hier:
Ich habe mein Handy wie üblich auf 90% geladen und zwei Tage später (die ich weitestgehend im eigenen WLAN verbracht habe da Wochenende…) bin ich bei rund 50% statt rund 30% Restakku! Der Effekt auf den Idle-Stromverbrauch ist viel größer als ich es je erwartet habe! Nicht nur, dass ein DTIM alle 100 statt 300 ms den Idleverbrauch des Handys explodieren lässt – genauso senkt ein DTIM alle 1000 ms den Idleverbrauch so stark ab, dass ich rund 10% Akkustand pro Tag weniger benötige! Das ist umgerechnet rund ne Stunde Bildschirmzeit – und wie man im Bild sehen kann geht mein Handy davon aus, dass es von 100 bis 0% ganze 5 Tage durchhalten würde (was sicher nicht ginge aber 3-4 sind so tatsächlich machbar).
Tja, was soll man sagen – hätte man das mal früher gewusst. Wie ganz oben schon erwähnt, vielleicht ist all das hier den Smartphone-Profis schon lange bekannt aber für mich war es eine echte Überraschung.
Habt ihr auch schon euer WLAN „Akkuoptimiert“ und falls ja was hats gebracht?





