Toll! Gute Arbeit 
Bisher habe ich noch nicht über diesen Aspekt nachgedacht 
Wenn ich jetzt darüber nachdenke, wollen wir eigentlich Folgendes haben:
- Wenn ein Gerät in einer Wohnung gesehen wird, dann den Benutzer als „gesehen“ in der Wohnung markieren.
- Ein Benutzer kann mehrere Geräte haben.
- Ein Gerät gehört nur einem Benutzer (sonst ergibt das keinen Sinn).
Die Modellierung, die wir bisher in Gladys 3 hatten, ist also eher logisch. (ein Attribut in der Device-Tabelle).
Allerdings denke ich, dass wir diesem Attribut einen besseren Namen geben sollten und es vor allem in der UI ganz anders darstellen sollten, in Gladys 3 war es wirklich nicht klar. Für mich muss es in der UI eine eigene kleine UI geben, die sich speziell mit der Anwesenheitserkennung befasst.
Das Attribut in der Device-Tabelle könnte presence_detection_user_id sein (ist nicht verrückt, wenn jemand eine bessere Idee hat..)
Wir könnten zum Beispiel einen Dienst „Anwesenheitserkennung“ erstellen, der klar erklärt:
"Einige Geräte haben die Möglichkeit, erkannt zu werden, wenn sie bei Ihnen zu Hause sind: über einen Bluetooth-Scan, einen Wi-Fi-Netzwerk-Scan oder über ihre Geolokalisierung. Gladys kann diese Informationen verwenden, um abzuleiten, ob Sie zu Hause sind oder im Gegenteil abwesend.
Wenn Sie möchten, dass Gladys die Erkennung bestimmter Geräte verwendet, um Sie als zu Hause anwesend zu markieren, müssen Sie Gladys die Geräte angeben, die sie verwenden kann, um Sie zu erkennen.
Beispiel: Wenn Sie einen Bluetooth-Schlüsselanhänger an Ihren Schlüsseln hängen haben, können Sie diesen Schlüsselanhänger mit Ihrem Benutzer verknüpfen, und wenn er per Bluetooth zu Hause gesehen wird, werden Sie als „anwesend“ markiert. Nach einer bestimmten Zeit, wenn das Gerät von Gladys nicht mehr erkannt wird, werden Sie als „abwesend“ markiert.
Wählen Sie die Geräte aus, die Gladys verwenden kann, um Sie zu erkennen:
[Liste mit Kontrollkästchen der Geräte mit einem DeviceFeature der Anwesenheit, die Informationen zurückgemeldet hat + Angabe der letzten zurückgemeldeten Information + Sortierung der Liste nach der neuesten zurückgemeldeten Information].
Beispiel:
Fitbit Charge 2 (vor 2 Minuten gesehen)
Nut Mini (vor 12 Minuten gesehen)
Gladys kann Sie automatisch als abwesend markieren, wenn diese Geräte nach einer bestimmten Zeit nicht erkannt werden.
Automatische Abwesenheitserkennung aktivieren
(standardmäßig deaktiviert)
Verzögerung vor Abwesenheit: 15 Minuten (Select-Box mit 4-5 Optionen, z. B. 5, 10, 15, 30, 45)
"
Auf Entwicklungsebene
Zusammengefasst:
- Ein Attribut in der Tabelle « t_device », z. B.
presence_detection_user_id, nullbar und Fremdschlüssel auf t_user.id.
- Eine neue Kategorie von device_feature, die angibt, dass es sich um ein device_feature der « Anwesenheit » eines Geräts handelt. Beispiel: { category: « detection », type: « push », min: 1, max: 1 }
- Eine API-Route zum GET von Geräten, gefiltert nach Kategorie.
- Eine API-Route zum PATCH von Geräten.
- Zwei Variablen in der DB, z. B. « ABSENCE_DETECTION_ENABLED » und « ABSENCE_DETECTION_TIMEOUT ».
- Eine Aufgabe im Scheduler (noch nicht entwickelt) von Gladys 4, um die mögliche Abwesenheit eines Benutzers zu überprüfen. Wenn wir alles im RAM machen (wie es oft in Gladys 4 der Fall ist), sollte ein Durchgang alle Minuten kein Problem darstellen.
Was denkst du? 