Android 9 vereitelt Anwesenheitsprüfung

Juni 2019

OnePlus hat Wort gehalten, mein OP3 bekam tatsächlich noch das Upgrade auf Android 9. Ein Grund zur Freude, kann man das Gerät doch weiterhin mit halbwegs gutem Gewissen verwenden und hat auch 3 Jahre nach dem Kauf keinen Elektroschrott mangels Security-Updates. Ich habe mich gefreut.

Tja, und dann bin ich nachts mal für kleine Pinguine gegangen und bekam Alarmmeldungen. Die Anwesenheitsprüfung funktioniert nicht mehr korrekt. Geprüft wurde, ob das Mobiltelefon per WLAN im Router sichtbar ist. Genauer: ob das Telefon eine Lease vom Router bekommen hatte. Und das tat nicht mehr korrekt. Android 9 scheint in einen Tiefschlaf zu gehen wenn das Telefon eine Weile nicht mehr benutzt wird. Dann ist am Telefon zwar WLAN angeschaltet, aber die Verbindung wird real gekappt.

Ich habe den Check dann von einer aktiven Prüfung im Router und Setzen des Status per REST-Aufruf umgebaut auf die Verwendung des Network-Bindings, in der Hoffnung, dass die beim Mobiltelefon ankommenden Netzwerk-Pakete die Verbindung aufrecht erhalten. Leider ohne Erfolg.

Damit die Funktionalität grundsätzlich erst einmal erhalten bleibt, wurde die Anzeige des Anwesenheitsstatus umgeändert auf einen Switch, den ich nun manuell bedienen kann. Das ist allerdings nur ein workaround. Aber noch habe ich keine Idee, wie ich die Funktion wieder verlässlich automatisieren kann. Eine Einstellung am Mobiltelefon zur Verhinderung des "deep sleep" hatte ich auf die Schnelle keine gefunden.

Juli 2019

Ich habe das nun so gelöst wie bei den Alarmen: es gibt für jedes Anwesenheit signalisierende Gerät zwei Schalter statt bislang einem. Der eine Schalter wird über die Hardware gesteuert (antwortet das Gerät auf einen PING?), der zweite ist ein logischer Schalter. Ist das zu überwachende Gerät online, wird der zugehörige logische Schalter immer auf online gesetzt. Geht das Gerät offline, bleibt der logische Schalter auf online. Ausser die Abschlusstüre wurde geöffnet. Da ich nur physisch abwesend sein kann, wenn die Tür geöffnet wird/wurde, ist das ein zweites Kriterium.

Bei öffnen der Tür läuft ein Zeitfenster von wenigen Minuten, in dem ein offline-gehen des technischen Schalters über eine Regel auch den zugehörigen logischen Schalter auf offline stellen darf. Und für den Fall, dass die Geräte vor öffnen der Tür bereits offline gegangen sind (die logischen Schalter stehen dann ja noch auf online), werden als Teil der Regel für das Erlauben des offline-gehens auch die Zustände der physischen Schalter auf die logischen Schalter übertragen, wenn sie offline sind. Es kommt in dem Fall ja kein nachträglicher Trigger in Form einer Zustandsänderung. Damit wird bei verlassen der Wohnung sichergestellt, dass offline gegangene Geräte auch tatsächlich korrekt berücksichtigt werden.