[v4] Dev-Service EweLink (Sonoff nativ)

Hallo,

Ich habe mit der Entwicklung des EweLink-Dienstes begonnen (PR #719).

Da ich keine Geräte zur Verfügung habe (meins ist durchgebrannt, ist aber noch « offline » in der Cloud verfügbar).
Falls jemand mit nicht geflashten Geräten bereit ist, Tests durchzuführen, bin ich dankbar :wink:

Hallo @Pti_Nico, ich werde dieses Wochenende damit spielen, ich habe ein nativen Sonoff, das bei mir herumliegt :slight_smile: Ich gebe dir mein Feedback.

Meine Rückmeldungen werden vor dem Wochenende kommen :slight_smile:

Zuerst einmal vielen Dank für dein Engagement, dieser Integrationsdienst wird sehr nützlich sein.

Insgesamt ist die „Paarung“ eher flüssig und schnell, man muss nicht eine Minute warten, um zu wissen, ob man verbunden ist oder nicht :+1:

Ich habe trotzdem ein paar Anmerkungen zur UI:

  1. Ich finde, dass das Bild im Vergleich zu den anderen recht groß ist

  2. Es fehlen einige Überschriften, und vielleicht sollte die Höhe vergrößert und „no devices found“ zentriert werden.

  3. Wenn du einen Fehler bei deinem Login/Passwort machst, gibt es Anzeigeprobleme.

  4. Sobald das Konto verknüpft ist, weiß ich nicht auf Anhieb, wo ich meine Geräte finde, also gehe ich zurück zum Geräte-Tab, und dort gibt es einige Anzeigeprobleme.

  5. Sobald meine Kontodaten gespeichert sind, weiß ich nicht, wie ich einen Scan durchführen soll (ich habe es gefunden, man muss die Verbindung erneut bestätigen).
    Vielleicht einen „Scan“-Button vorsehen, um die Liste zu aktualisieren.

  6. Ich denke auch, dass die erkannten Geräte nicht im Geräte-Tab angezeigt werden sollten, der meiner Meinung nach die bereits in Gladys integrierten Geräte auflistet (zu bestätigen mit @pierre-gilles)

  7. Sobald alles konfiguriert ist und meine Geräte in Gladys hinzugefügt sind, funktioniert die „Ein/Aus“-Funktion nicht
    Ein Fehler erscheint:

There was an error while polling device ewelink-1000b5e8ac-0
2020-04-03T11:56:01+0200 <error> device.poll.js:24 (DeviceManager.poll) { Error: EWeLink device is not currently online.
    at EweLinkHandler.poll (/home/alex/NickDub-Gladys/server/services/ewelink/lib/device/poll.js:24:11) message: 'EWeLink device is not currently online.' }

Dabei ist mein Gerät online und brandneu!! :stuck_out_tongue:

Ansonsten ein paar Entwicklungen zu bedenken:

  • es wird die Verfügbarkeit des Geräts verwaltet werden müssen (neue Funktion, die in Gladys erwartet wird)
  • Mehrere Konten hinzufügen?
  • die Möglichkeit bieten, das Firmware zu aktualisieren (falls möglich?)

Ich hoffe, meine Anmerkungen sind dir nützlich.

Falls nötig, bin ich bereit, dir mein EWeLink-Konto vorübergehend zu teilen, damit du damit spielen kannst.

Bis bald

Bei Problemen mit der Benutzeroberfläche, zögere nicht, in den DEMO-Modus zu wechseln, indem du die Datei demo.json ausfüllst, um die Antworten des Servers zu simulieren.

Im Demomodus? Kannst du mir mehr darüber sagen, wie man den Demomodus startet? (Ich scheiße mir jedes Mal in die Hose mit der Kontoerstellung und den Geräten usw…)

Du fügst eine Datei .env im Stammverzeichnis des Frontends hinzu und fügst dort DEMO_MODE=true ein.
Und du vervollständigst die Datei demo.json, um die Antworten auf die Serveraufrufe zu haben, die du erwartest. Du startest das Frontend, der Server ist nicht nötig.

Alles klar, danke, also ist das wirklich nur für die Benutzeroberfläche

Ja, das ermöglicht es, die Anzeige zu verfeinern, und das ist auch das, was auf https://demo.gladysassistant.com/ sichtbar sein wird.

Ich bin mit der Idee einverstanden, allerdings habe ich den Service nicht getestet! Wichtig ist, dass die Benutzererfahrung einfach ist: Man muss den Benutzer an die Hand nehmen, das ist alles, was zählt.

Kleine Umfrage zur Bildauswahl:

  • Ich stimme für Bild 1
  • Ich stimme für Bild 2
0 votant

@AlexTrovato, danke für dein erstes Feedback.

Es ist normal, dass es so viele Fehler gibt, der Service ist noch ganz am Anfang der Entwicklung :smile:

Was meinst du mit « Nichtverfügbarkeit des Geräts »?
Ich habe nicht alle Beiträge durchgesehen, gibt es einen Link, der darüber spricht?

Die Verwaltung mehrerer Konten wäre ziemlich kompliziert, da die Verbindung zum Konto einmal erfolgt, um ein Token abzurufen, das zur Steuerung der Geräte dient.
Zusätzlich zum Speichern der Geräteanmeldedaten müsste bei jedem Befehl erneut eine Verbindung hergestellt werden, um dieses Token abzurufen (was beim Start des Dienstes oder bei der Eingabe der Anmeldedaten erfolgt)…
Das wäre so, als würde man mehrere Telegram- oder DarkSky-Konten verwalten…

Was die Aktualisierung betrifft, erlaubt die verwendete Bibliothek nur zu erkennen, ob eine neue Firmware verfügbar ist. Vielleicht wird es in einer zukünftigen Version möglich sein…

Das wäre super :+1:
Kannst du mir das per PN schicken?

Ideal wäre es, auch Zugang zu mehreren Gerätetypen zu haben.

Also, ich habe den Service komplett überarbeitet (Back- und Frontend), ich denke, ich habe etwas Gutes hinbekommen… :wink:

Ok, das ist wirklich viel besser!!!
Ich habe immer noch das Problem mit der doppelten Fehlermeldung, wenn ich falsche Anmeldedaten eingebe.

Es gibt auch noch das Bild, aber ich sehe, dass du eine Umfrage gestartet hast.
Warum nicht:

Ach ja, eine kleine Sache (ich treibe es auf die Spitze), ich habe es auf Gladys getestet, dann bin ich auf die offizielle App gegangen, und seitdem funktioniert es nicht mehr mit Gladys:

There was an error while polling device ewelink-1000b5e8ac-0
2020-04-04T21:32:04+0200 <error> device.poll.js:24 (DeviceManager.poll) { Error
    at EweLinkHandler.poll (/home/alex/NickDub-Gladys/server/services/ewelink/lib/device/poll.js:26:11)
  status: 500,
  code: 'SERVER_ERROR',
  error: 'EWeLink error: Authentication error' }

Glückwunsch, es ist fast geschafft!!!

Hallo,

@AlexTrovato, ich habe den Dienst aktualisiert, um das Authentifizierungsproblem zu beheben.

Dafür würde ich gerne einen Test durchführen, indem ich dir mein Gerät teile und dein Konto erneut verwende.
Stört dich das? :wink:

@Pti_Nico mach mit meinem Account, was du willst, ich habe ihn nur erstellt, um deinen Service zu testen :slight_smile: aber ich habe mein Gerät abgesteckt, falls du möchtest, dass ich es wieder anstecke, lass mich wissen.

Hallo,

Vielen Dank @Pti_Nico, ich hatte meinen Amazon-Warenkorb bereit mit dem Modul, das mir erlaubt hätte, meinen Sonoff Basic zu flashen… Dank dir ist das jetzt nicht mehr nötig :wink:

Ich habe gerade deinen Dienst an meinem einzigen Sonoff getestet (mit den richtigen Anmeldedaten, Modulerstellung, Löschung, erneute Hinzufügung…). Es funktioniert perfekt, die Oberfläche ist sauber, es ist super einfach zu bedienen… Das Gerät funktioniert einwandfrei mit Gladys.

Anschließend habe ich meine Anmeldedaten geändert, sodass sie falsch waren. Das hat Gladys komplett zum Absturz gebracht:

2020-04-17T21:26:07+0200 device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-100029cc19-0
2020-04-17T21:26:07+0200 device.poll.js:24 (DeviceManager.poll) Error401: EWeLink error: Authentication error
at EweLinkHandler.connect (/home/philippe/gladys-ewelink/server/services/ewelink/lib/device/connect.js:65:13)
at async EweLinkHandler.poll (/home/philippe/gladys-ewelink/server/services/ewelink/lib/device/poll.js:17:5)
at async DeviceManager.poll (/home/philippe/gladys-ewelink/server/lib/device/device.poll.js:21:5) {
status: 401,
code: ‹ UNAUTHORIZED ›,
message: ‹ EWeLink error: Authentication error ›
}

@PhilippeMA, danke für dein Feedback zu diesem Problem.
Ich werde versuchen, das so schnell wie möglich zu beheben.

@PhilippeMA, ich habe mir das Problem angesehen und wie die Fehlermeldungen zeigen:

Wenn deine Anmeldedaten falsch sind, kann nicht gepollt werden.
Hier sehe ich nicht, wie man das korrigieren kann… :confused:

@AlexTrovato, eine Meinung dazu, wie man diesen Fehlertyp behandeln soll?
Angesichts der Tatsache, dass das passieren kann, wenn ein Benutzer sein Passwort in der eWeLink-App ändert, aber die Änderung nicht in Gladys überträgt…

Hallo @Pti_Nico, entschuldige für die Wartezeit.
Das Problem, das ich erwähnt habe, tritt in folgendem Fall auf:

  1. Ich melde mich von Gladys an und erhalte einen eindeutigen Token (z. B. Token_1).
  2. Dann melde ich mich von der Android-App an und erhalte einen eindeutigen Token (z. B. Token_2).
  3. Wenn ich zurück zu Gladys gehe, verwende ich immer noch meinen ersten Token (Token_1), aber dieser ist nicht mehr gültig, obwohl ich mein Passwort nicht geändert habe.

Vielleicht sollte man vorsehen, es einmal (nur einmal) zu versuchen, sich erneut anzumelden (Token neu generieren) im Falle eines Fehlercodes 401. Wenn man auch beim zweiten Aufruf eine 401 erhält, kann man dann annehmen, dass die Anmeldedaten ungültig sind.
Und in diesem Fall (ungültige Anmeldedaten) die Information speichern, um sie auf der Modulseite anzuzeigen (und in der Zukunft eine Benachrichtigung zu senden, um den Benutzer über die Unmöglichkeit, sich bei seinem Konto anzumelden, zu informieren).

Ich habe gerade eine Korrektur in diese Richtung vorgenommen :wink: