peter9teufel / iobmobile-issues

Repository to only track issues with IOB Mobile, code is not hosted in this repository.
11 stars 0 forks source link

Appstart mit Authentifizerung lädt Daten nicht #32

Closed HackyPaddy closed 2 months ago

HackyPaddy commented 3 months ago

Moin Peter,

ich weiß nicht, ob das Verhalten vor dem Update schon so war, aber seit dem Update auf 1.0.24 lädt er die Daten nicht, wenn die App gestartet oder aus dem Hintergrund geholt wird.

Die Kreise drehen sich und drehen sich und drehen sich. Wechselt man einmal auf eine andere Seite, dann holt er die Daten.

Hier ein Video...

https://github.com/user-attachments/assets/25f8071e-e307-4c3f-9169-8b5b45160875

Ohne Authentifizierung lädt er die Daten sofort...

Viele Grüße

Patrick

peter9teufel commented 3 months ago

OK, das ist seltsam, muss ich mir anschauen woran das liegen kann. Danke für den Hinweis 👍

HackyPaddy commented 3 months ago

Mir ist auch aufgefallen, dass im Log vom ioBroker immer noch Einträge vom socket.io auftauchen, wo trotz eingeschalteter Authentifizierung kein Kennwort übergeben wird.

Da muss im Code noch irgendwas faul sein.

peter9teufel commented 3 months ago

Hi! Sorry, war etwas stressig diese Woche, bin gerade dabei mir das anzusehen, kanns aber nur schwer reproduzieren. Hab aber glaube ich was gefunden was der Grund sein könnte. Hab heute eh ein Update vor, da werd ich die Änderungen mal mit reinnehmen, dann kannst du checken ob durch meinen Verdacht der Fehler bei dir behoben wird.

LG, Peter

HackyPaddy commented 3 months ago

Hey :)

Kein Ding, kenn ich ja selber. Ich habe mir das Update mal gezogen. Das Problem mit der Authentifizierung besteht weiterhin noch.

Test ohne Authentifizierung: Alles perfekt! Test mit Authentifizierung: Klappt nicht... Test mit Authentifizierung, aber mit Passwort ohne Sonderzeichen: Klappt auch nicht...

Es liegt also nicht an den Sonderzeichen im Passwort, wie es damals mal der Fall war.

Im Log vom ioBroker stehe ich, dass er sich unter dem admin und dem Passwort einloggt. Kurz danach loggt er sich nochmal als admin ein, aber diesmal ohne Passwort und genau daran wird es liegen. Irgendwo wird ein Passwort nicht übertragen und die Authentifizierung scheitert.

Auf der Seite sind folgende Datenpunkte:

  1. Datenpunkt mit Boolean Wert
  2. Datenpunkt Einzelwert
  3. Datenpunkt Einzelwert

Vielleicht hilft Dir das bei der Fehlersuche :)

Viele Grüße

Patrick

HackyPaddy commented 3 months ago

Hier noch das Log vom ioBroker:

socketio.0 2024-08-04 16:33:12.472 debug socket.io client admin connected
socketio.0 2024-08-04 16:33:12.471 debug Logged in: admin
socketio.0 2024-08-04 16:33:12.282 debug Logged in: admin, *****
socketio.0 2024-08-04 16:33:12.258 info ==> Connected system.user.admin from ::ffff:192.168.1.87
peter9teufel commented 3 months ago

sehr seltsam, ist unter iOS oder?

Werd ich wohl mal mein produktives System im Haus auf Authentifizierung umstellen, eventuell lässt es sich mit den echten Dashboards nachstellen, muss ich halt mal einen ruhigen Moment abwarten in dem keiner da ist 😄

HackyPaddy commented 3 months ago

Nur iOS ist das Wahre 😆

Ich merk sofort den Unterschied, wenn die Authentifizierung aus ist. Die App ist dann auch deutlich schneller.

Du kannst das ganz einfach testen. Mal ne zweite Instanz von socket.IO und der simple.Api und die Adapter stellst auf Authentifizierung.

Dann musst nix groß umstellen und kannst das produktiv testen.

Mach ich genauso :)

HackyPaddy commented 2 months ago

Moin Peter,

konntest Du das Problem eingrenzen? Oder doch schwieriger als gedacht?

Viele Grüße

Patrick

peter9teufel commented 2 months ago

Hi, war jetzt mit Urlaub und ein paar Erweiterungen blockiert, sehs mir als nächstes nochmal an 👍

Lg

HackyPaddy commented 2 months ago

Moin Peter,

leider ist der Fehler immer noch vorhanden. Ich habe noch ein wenig weiter im System gewühlt und es betrifft sowohl den Socket.Io als auch SimpleAPI.

Sobald die App sich versucht zu verbinden, kommen folgende Meldungen ins Log:

socketio.0 2024-09-23 09:41:09.556 info ==> Connected system.user.admin from ::ffff:192.168.1.87
socketio.0 2024-09-23 09:41:09.554 debug socket.io client admin connected
socketio.0 2024-09-23 09:41:09.553 debug Logged in: admin
socketio.0 2024-09-23 09:41:09.430 debug Logged in: admin, ****
socketio.0 2024-09-23 09:41:09.407 info ==> Connected system.user.admin from ::ffff:192.168.1.87
socketio.0 2024-09-23 09:41:09.406 debug socket.io client admin connected
socketio.0 2024-09-23 09:41:09.404 debug Logged in: admin
socketio.0 2024-09-23 09:41:09.273 debug Logged in: admin, ****
simple-api.0 2024-09-23 09:41:08.830 debug Logged in: admin

Man sieht sehr schön, dass er sich mit Passwort verbindet, so wie es auch sein soll. Aber eben nicht immer. Ein paar Mal meldet er sich ohne Passwort an und kommt entsprechend nicht weiter.

Ich hoffe, Du kannst den Fehler irgendwie finden. Das wäre echt wichtig für mich...

peter9teufel commented 2 months ago

Hi! Hab grad nochmal 2 Stunden versucht den Fehler zu finden 😄 konnte ihn dann auch mal reproduzieren und hab jetzt noch Kleinigkeiten angepasst die mglw. das Problem lösen. Ich schaffte es zumindest nicht mehr, nach den Änderungen den Fehler zu erzeugen.

Hab ein Update (Version 1.0.31) eingereicht, dass nur diese Änderungen enthält. Teste bitte nochmal sobald 1.0.31 verfügbar ist.

LG, Peter

peter9teufel commented 2 months ago

Hi nochmal, Update (Version 1.0.31) sollte in den Stores jetzt schon verfügbar sein.

LG, Peter

HackyPaddy commented 2 months ago

Du hast es geschafft! 😁

Wenn ich den Adapter socket.io auf Debug stelle, sehe ich zwar, dass er sich manchmal immer noch versucht, ohne Benutzer bzw. ohne Kennwort anzumelden, aber die App läuft. Auch, wenn ich diese aus dem Hintergrund hole.

Vielleicht schaust bei ner umfangreichen Wartung nochmal, ob da irgendwie noch die Authentifizierung fehlt bzw. die Logindaten nicht korrekt übermittelt werden.

Aber ich bin zufrieden. Nächste Stufe ist jetzt das https, damit ich von aussen zugreifen kann. Ich berichte :)

Lg Patrick

peter9teufel commented 2 months ago

Das ist scheinbar eine Eigenheit vom Logging des Adapters, Authentifizierung wurde eh schon immer bei jedem Call mitschickt, war nur ein sehr spezielles Timingproblem in Kombination mit Auth das ich gefunden habe.

Super, dass es jetzt funktioniert 👍 sollte wieder was auftreten einfach wieder ein Issue aufmachen 😁

Lg, Peter