Es gibt gute Nachrichten zum Sonntag:
Ich habe eine Lösung gefunden, wie man die Störungsmeldungen aus GoingElectric
Richtung App synchronisiert. Dies habe ich vor wenigen Minuten auch deployed. Das heißt also konkret:
- Störungsmeldungen (sowohl "neue Störung" als auch "Störung behoben"-Events) aus GoingElectric erscheinen in der App als CheckIn Einträge
- Push-Meldungen werden jetzt auch bei Störungen aus dem GE Verzeichnis gesendet
- Graue Pins auch bei Störungen aus GE
Insbesondere löst dies folgende Anomalien, die in der Vergangenheit aufgetreten sind:
- Negativer CheckIn über die App
- Störung wurde im GE später als „behoben“ markiert
- => In der App wurde die entsprechende Ladestation weiterhin als „gestört“ angezeigt (früher)
Das passiert nun nicht mehr. Sobald die Störung im GE aufgehoben worden ist, wird das mit einem positiven CheckIn abgebildet und da werden auch Push-Nachrichten gesendet!
Auch kann jetzt die App-Logik eindeutig bestimmen, ob die Information aus GoingElectric oder CheckIns über die App Vorrang hat. Das war in der Vergangenheit nicht immer möglich und hat schon für einige Irritationen geführt.
Ich habe heute auch initial den Stand aus GoingElectric abgeglichen:
- Für gemeldete Störungen aus GoingElectric (neuer als 01.01.2017) wurden neue CheckIns erstellt - dies nur dann, wenn nicht bereits ein neuerer CheckIn vorhanden war
- Negative CheckIns wurden mit GoingElectric abgeglichen. Hier wurde ebenfalls mit einem Algorithmus entschieden, ob der Status aus GE neuer war als das letzte CheckIn. Falls der Algorithmus festgestellt hat, dass die Störung obsolet ist, weil im GE behoben wurde diese mit einem positiven CheckIn „behoben“, damit das nun auch in der App konsistent ist.
Ich habe das o.g. in der Entwicklungsumgebung relativ lange und ausgiebig validiert, bin also recht zuversichtlich, dass da wenig false positives entstanden sind. Punktuell, sollte dann doch was nicht korrekt sein, kann ich manuell korrigieren. Feedback dazu gerne direkt an mich, am besten via EVPlugFinder-Slack, dann können wir diese Dinge geordnet und auch ein wenig agiler kommunizieren.
tl;dr
Da die GoingElectric API in die Richtung nicht erweitert wurde, habe ich ein eigenes Backend-Service implementiert. Vereinfacht ausgedrückt werden damit Änderungen protokolliert, mit dem jew. Timestamp, ob z.B. die Fälle „Neue Störung“ und „Störung aufgehoben“. In diesen Fällen wird ein CheckIn mit dem entsprechenden Status und Timestamp erstellt. Kommentar aus GoingElectric wird dabei ebenfalls übernommen, das erscheint auch im jew. CheckIn 1:1
Die Synchronisation wird derweil mehrmals am Tag durchgeführt nach einem bestimmten Algorithmus. Die Frequenz und Zeiten werde ich in den nächsten Tagen noch fein tunen. Das ist wichtig, damit die Push-Nachrichten bei Störungen aus dem GE Verzeichnis möglichst zeitnah kommen. CheckIns über die App triggern weiterhin in Echtzeit eine Push-Nachricht, wie gehabt. Hier hat sich also nichts geändert!
Ich habe soeben auch ein neues Build veröffentlicht, was einige Kleinigkeiten adressiert und auch die CheckIns aus GoingElectric entsprechend kennzeichnet.
Ich werde v.a. in den nächsten Tage die Logs im Auge behalten und auch Stichproben machen, um etwaige Bugs zu beheben. Und, wie gesagt, Feedback willkommen!