Neue Funktion *Signalstärke* oder Verbindungsstatus

Ich erlaube mir, meine Meinung als Nicht-Entwickler zu äußern…
Es wäre toll, ein Diagramm des Signalpegels aus der Historie zu erhalten. Tatsächlich habe ich einige Geräte, die dazu neigen, regelmäßig die Verbindung zu verlieren, aber ich kann den Grund nicht finden, und das könnte mir helfen, der Sache auf den Grund zu gehen.
Ebenso würde ich gerne eine Nachricht erhalten, wenn mein Gerät zu lange die Verbindung verliert…
Also, Frontend oder Backend? Äh… Ja! :smiley:

Das ist nicht dasselbe, weil:

  • Es ist nicht if(signal = 1) dann dieses Icon, sondern if(signal = 1 oder signal = 44 oder signal < -33 oder signal > 12), um jede Marke/Implementierung zu verwalten. Die Unterscheidung nach Marke wird nun in der Frontend-Logik gemacht, während wir das in der v4 immer im Backend-Code jedes Dienstes gemacht haben.

  • Das muss an allen Stellen gemacht werden:

    • In den Nachrichten, wenn wir eine Frage codieren: „Ist meine Lampe XX erreichbar?“ Die Antwort wird von jeder Marke abhängen, daher müssen wir in den Nachrichten-Code if-Anweisungen nach Marke einfügen. Dieses Beispiel ist vielleicht nicht etwas, das wir machen wollen, aber zum Beispiel, wenn du eine Lampe ein- oder ausschaltest und es nicht klappt, möchte man vielleicht eine erweiterte Antwort geben wie „Die Lampe hat seit gestern ein schwaches Signal“. Um diese Berechnung durchzuführen, muss man die Formel auch im Nachrichten-Code aufrufen.

    • In den Szenen müssen wir entweder auch die Umwandlung vornehmen, um mit der UI konsistent zu sein, oder wir bitten den Benutzer, sich zu merken und selbst herauszufinden, was welcher LQI/RSSI-Wert bedeutet. Was übrigens nicht mit der UI konsistent ist, da der Benutzer den aktuellen Wert im Dashboard nicht sehen kann (er wird eine Balkenanzeige sehen). Warum nicht auch in den Szenen eine Skala von 0 bis 5 anzeigen? (mit einer speziellen UI für dieses Feature)

@VonOx Ich sehe, dass du mich in einem PR (Signal quality feature by VonOx · Pull Request #1315 · GladysAssistant/Gladys · GitHub) getaggt hast

Was ist also das Fazit? :slight_smile:

Boah, ich habe eine generische Funktion für das Signal (ohne Einheit) gemacht.

@pierre-gilles Ich habe eine Frage dazu

Lucide bietet ein Preact-Paket an. lucide/packages/lucide-preact at main · lucide-icons/lucide · GitHub
Bei Gladys müssen wir bei einer Web-Schriftart bleiben oder ist der Wechsel möglich?

Der Wechsel ist möglich, aber ich habe nicht die Details des Pakets getestet:

  • Wie werden die Icons geladen? Der Vorteil einer Webfont ist, dass alles zu Beginn geladen wird, es gibt nicht Hunderte von kleinen Anfragen (vor allem, wenn du die Szenen-Erstellungsansicht anzeigen musst, in der du alle Icons anzeigen musst)
  • Wie wirkt sich das auf die Größe des Bundles aus?
  • Wie verhält sich so ein Paket in einer Ansicht, in der viele Icons angezeigt werden? (Zum Beispiel ein Szenen-Erstellungsbildschirm) 200 Zeichen anzuzeigen ist einfach, 200 Preact-Komponenten anzuzeigen ist schwer

Lucide bietet keine Webfont an?

Das wird kommen, es war eher eine technische Frage, da ich keine Erfahrung mit diesen Themen habe.

Ich weiß nicht, ob es sich lohnt, es zu testen, denn es ist eine große Aufgabe. Wie kann man die Leistung nur mit der Browserkonsole analysieren?

Zwei Möglichkeiten:

  • Tatsächlich ist die Konsole dein Freund, du kannst im Tab « Netzwerk » nachschauen, was wirklich passiert, wenn du ein Icon lädst (gibt es ein anfängliches Laden oder macht es ein GET pro Icon?)
  • Alternativ kannst du eine lokale Build des Frontends erstellen und eine Analyse des Bundles mit dem Befehl generieren:
npm run build-with-stats

Das generiert eine Datei stats.json, die du mit einem Tool wie https://www.npmjs.com/package/webpack-bundle-analyzer visualisieren kannst

Installierbar wie folgt:

npm i -g webpack-bundle-analyzer

Und danach:

webpack-bundle-analyzer stats.json

Das zeigt dir im Browser so etwas an:

Das ist super einfach und praktisch :slight_smile:

Arbeitet jemand von euch daran?
Die Funktion „Signal“ steht kurz vor der Fertigstellung! Aber wir haben noch nichts, um sie anzuzeigen.

Nicht ich! Meine beiden aktuellen Fokuspunkte:

  • Korrektur aller Rückmeldungen zur grafischen Anzeige + sobald alle zufrieden sind, Kommunikation zur Funktion
  • Danach, Integration von Alexa

Man muss halt geduldig sein.

FeatherIcon wird nicht mehr gewartet und ist offensichtlich aufgegeben worden, ein Community-Fork existiert mit dem aktuellen Fokus, die Issues/Anfragen von Feather zu behandeln.
Feather hat keine Signal-Icons :antenna_bars:.
Aktuell bei Lucid: Add `signal*` icons by ericfennis · Pull Request #428 · lucide-icons/lucide · GitHub

Der Fork bietet derzeit keine Webfont-Datei, aber das kommt noch

Ich halte euch hier auf dem Laufenden:

  • zuerst die Migration von Feather → Lucid
  • dann die Implementierung der Funktion

Für die Integration der Lucide-Bibliothek können wir zu mehreren arbeiten, es gibt über 400 Icon-Referenzen auf der Frontend-Seite.
Ich habe heute Morgen schnell mal ausprobiert.

@VonOx Warum fügt man nicht einfach die Signal-Icons für diese Ansicht hinzu, anstatt die gesamte Bibliothek zu ändern? Mir scheint das ein bisschen übertrieben, all diese Arbeit nur zu machen, um ein paar armselige Netzwerk-Icons anzuzeigen :smiley:

Warum lädt man nicht die Netzwerk-SVGs herunter?

Lucide sieht zwar ganz nett aus, aber ohne Webfont ist das schon ein bisschen blockierend…

Wie oben erwähnt, kommt die Webfont an, aber Feather sah zwar hübsch aus, war aber sehr, sehr arm an Icons und ich bin nicht der Einzige, der dieser Meinung ist (man sollte nicht vergessen, dass es auf der anderen Seite MDI mit Tausenden von Icons gibt).

Wenn du die Bibliothek nicht wechseln möchtest (das ist der Eindruck, den du vermittelst), sag es gleich, das spart Zeit.

Kurz gesagt, warum, gibt es viele Nachrichten im Forum.

Nein, kein Problem, das Iconset zu ändern :slight_smile:

Lucide scheint übrigens super zu sein, es behält die Schlichtheit von Feather, hat aber ein paar mehr Icons. Ich hätte wirklich nichts dagegen, zu Lucide zu wechseln. Natürlich muss man es erst testen, aber grundsätzlich sehe ich vom Design her keine Nachteile.

Aber da das Thema hier die Signalstärke war und wir den Zeitplan von Lucide in Bezug auf die Webfont nicht kennen, habe ich nur eine Alternative vorgeschlagen, falls wir die Anzeige der Signalstärke trotzdem haben wollen

Für die Migration müsste man normalerweise nicht viel tun (solange die Iconschlüssel seit Feather nicht geändert wurden, sonst muss man eine Migration durchführen), wir haben ein Repo mit dem Theme, das ich diesen Sommer geforkt hatte, weil Tabler einige blockierende Fehler hatte, was Gladys betrifft:

Hallo hier,
ich habe gehört, dass die Integration der neuen Iconsammlung nicht gerade einfach ist.

Aber ich habe noch eine andere Frage, ich habe gehört, dass der Wert dieser Funktion zwischen 0 und 5 liegen sollte.
Wäre es nicht sinnvoller, die Attribute min/max auf der Funktion zu verwenden, um die Leistung und das Verhältnis (x/5) zu bestimmen?
Denn ich denke, wir werden diese Einschränkung während der Entwicklung der Dienste sehr schnell vergessen.
Während man auf der Frontseite das Verhältnis zwischen min und max berechnen könnte.
Und für die Szenen andererseits… da habe ich mich noch nicht damit beschäftigt :slight_smile:

Ja, denn es gibt 5 oder 6 Symbole, die den grafischen Zustand darstellen

Das klingt nach einer guten Idee

Warum integriert man diese Icons nicht einfach (man legt die 5 SVG in Gladys und importiert sie in die Komponenten)?

Aber genau das war doch die Aufgabe des Backends, oder?

Was du da voraussetzt, ist, dass es immer eine lineare Skala ist, ich bin mir nicht sicher, ob das immer der Fall ist.

(Unter linearer Skala verstehe ich, dass wenn der Wert von 0 bis 100 geht, dann 0 = 0 Balken, 20 = 1 Balken, 60 = 3 Balken, …, 100 = 5 Balken.)

Warum integriert man diese Icons nicht einfach (im On-Modus legt man die 5 SVG in Gladys und importiert sie in die Komponenten)?

Ja, oder sogar mit CSS.

Was du hier voraussetzt, ist, dass es immer eine lineare Skala ist, ich bin mir nicht sicher, ob das immer der Fall ist.

Genau, das setze ich voraus.
Ich kenne nur die Distanz mit Bluetooth (rssi) und den lqi von z2m.
Aber ich habe keine tiefere Studie durchgeführt.

Als ich über Iconsets sprach, wusste ich gar nicht, dass Tabler (unser Theme) ihr eigenes Iconset hat, und das ist wirklich sauber!

Was haltet ihr davon?