Lassen Sie uns über Gladys V4 sprechen

Ja, ich erkenne es an :smiley:
Dein Vorschlag, die gleichzeitig durchgeführten Aktionen zu gruppieren, würde diese Probleme beheben, ja!
Es bleibt abzuwarten, was dabei herauskommt :slight_smile:

Aus UX-Sicht ist es toll, einfach und konzentriert sich auf das Wesentliche. Ich könnte mir intelligente Felder vorstellen, die ihren Inhalt in Echtzeit überprüfen (wie die E-Mail-Adresse des Benutzers oder die Übereinstimmung der Passwörter und von Rot auf Grün wechseln, wenn alles in Ordnung ist).

Was die Dienste betrifft, so werden sie, soweit ich verstanden habe, alle standardmäßig installiert, aber je nach Bedarf des Benutzers aktiviert. Super!

Daher würde ich mir auf der UI-Seite auch ein visuelles Element in der Kachel des Dienstes (Integrationsseite) vorstellen, z. B. eine Leiste einer bestimmten Farbe unten in der Kachel mit dem Status:

  • Aktiviert: Grüne Leiste
  • Aktiviert, Konfiguration erforderlich: Gelbe Leiste
  • Aktiviert, Warnung: Orange Leiste (falls diese Funktion von Interesse ist)
  • Aktiviert, Fehler: Rote Leiste (falls diese Funktion von Interesse ist)
  • Deaktiviert: Graue Leiste

Dann würde ich mir eine visuelle Trennung zwischen den aktiven Diensten und den verfügbaren Diensten vorstellen, was zwei Kategorien ergibt, wobei die erste über der zweiten liegt.

Was die verwendeten Technologien betrifft, wie wird die Integration der verschiedenen Objekte verschiedener Marken / persönlicher Kreationen organisiert sein?

Ich nehme das Beispiel von Bluetooth: Gibt es einen Bluetooth-Master-Dienst, der für die Verbindungen zuständig ist, und abhängige Dienste, die jedes Produkt oder jede Funktion
/Marke wie die Überprüfung der Anwesenheit des Benutzers über die Nuts oder andere, die Awox-Lampen und Bluetooth-„Haushaltsgegenstände“ verwalten? Oder wird es nur eine Trennung auf der UI-Ebene geben?

Oh ja ja ja! Snips :smiley: (Ich würde auch XMPP oder Matrix/Riot nicht ablehnen :stuck_out_tongue: )

Und ich werde für den Test der Alpha-Version verfügbar sein :wink:

Alles klar, ich habe gerade die 18 Issues erstellt, eine pro Service, die für diese erste Alpha entwickelt werden müssen.

Das Meilenstein ist hier verfügbar =>

https://github.com/GladysAssistant/gladys-4-playground/milestone/4

Wenn ihr helfen wollt und in den kommenden Tagen/Wochen Zeit habt, zögert nicht, einen Kommentar in der Issue zu hinterlassen, die euch interessiert, um anzugeben, dass ihr die Leitung für die Entwicklung dieses Services übernehmt :slight_smile: Das verhindert, dass mehrere von euch an demselben Thema arbeiten. Und sobald ihr beginnt, lade ich euch ein, einen PR zu erstellen (den ihr als „in Arbeit“ markiert).

Ich werde mich um die restlichen Services kümmern, aber je mehr Hilfe ihr mir gebt, desto schneller wird Gladys 4 veröffentlicht :smiley:

Wir werden es pro Service einzeln angehen. Vorläufig wird der Bluetooth-Service wie der Z-Wave-Service sein, alles wird im Code des „bluetooth“-Ordners sein. Es wird eine Trennung in der UI zur Klarheit geben, aber dahinter wird es ein einzelner Service sein.

Lasst uns erstmal das Wesentliche angehen. Es geht vor allem um eine Alpha, und die Entwicklungszeit ist für jeden begrenzt. Aber wenn du diese Integrationen entwickeln möchtest, werden sie mit Freude integriert :wink:

Hallo @pierre-gilles,

In Gladys 4 speicherst du die Aktionen der Szenen direkt im JSON-Format in der Datenbank.
Das scheint tatsächlich sehr praktisch zum Parsen und Entwickeln zu sein.
Andererseits, wenn man ein Gerät aus irgendeinem Grund x oder y entfernt,
wie gehst du in deiner Szene damit um?

Gute Frage!

Man könnte in allen Szenen eine Überprüfung beim Entfernen eines Geräts einfügen, um zu prüfen, ob das Gerät verwendet wird, und falls ja, das Entfernen verhindern.

Wird das nicht super aufwendig?
Ich glaube, in der Community hat jemand einen Campingplatz.
Wie läuft das ab, wenn er eine Vielzahl von Szenen hat, von denen jede eine Vielzahl von Aktionen hat?

Die Szenen sind im RAM. Selbst 1 Million Elemente in reinem JS durchlaufen, denke ich, dass wir von Millisekunden sprechen :slight_smile:

Nach diesem Benchmark sollte es nicht schwer sein.

Die andere Lösung wäre einfach anzunehmen, dass der Fall eintreten kann, und den Fall intelligent zu verwalten, falls eine Szene ausgeführt wird und das Gerät nicht existiert.

Meiner Meinung nach sollte man beides tun.

Oder vielleicht die Information in das Gerät einfügen?
device = {
…,
scenes: [ 1, 5, 8 ]
}

Also im Grunde eine Verbindung in beide Richtungen herstellen.

Ich denke nicht, dass die Daten duplizieren die beste Lösung ist. Das bedeutet, dass man diese Liste zusätzlich pflegen muss, obwohl sie bereits in den Szenen vorhanden ist. Dadurch haben wir noch mehr Risiko von Datenkorruption.

Genau das wollte ich vorschlagen:

  • Durch die Szenen gehen und warnen (oder blockieren), wenn ein Benutzer ein verwendetes Gerät löschen möchte
  • Den Fall vorsehen, dass ein Gerät in einer Szene nicht existiert (als ob es schließlich nicht funktioniert hätte), um dennoch seine Ausführung mit einer Warnung zu ermöglichen.
    Denn wenn die Szene komplex ist und auf mehrere Geräte zugreift, ist es auch wenn eines fehlt oft immer noch möglich, sie auszuführen.

Absolut :wink:

Man kann sich „notwendige“ und „optionale“ Geräte für die Ausführung einer Szene vorstellen: Im ersten Fall stoppt die Szene und geht in den Fehlerzustand, im zweiten Fall wird sie trotzdem ausgeführt (und gibt eine Warnung aus?)

Ich verstehe die Idee nicht ^^

Lass uns die Dinge einfach halten :slight_smile: Hier geht es um einen Edge Case, den man handhaben muss. Der Benutzer muss sich nicht mit alldem befassen.

Hallo zusammen!

Heute habe ich an der UI gearbeitet, insbesondere daran, wie das/ die Dashboard(s) organisiert werden und wie der Benutzer sie bearbeiten kann.

Und ich habe ein kleines Dilemma.

Wichtiger Hinweis

In Gladys 4 möchte ich die Erstellung von zwei Arten von Dashboards ermöglichen:

  • Das Dashboard, das wir alle kennen, das Start-Dashboard. Es ist für größere Boxen gedacht und bietet 3 Spalten. Es wird wahrscheinlich möglich sein, mehrere Start-Dashboards zu erstellen, aber nicht Millionen, damit es organisiert bleibt. Also, es ist so:

  • Ein „Fullscreen“-Dashboard, praktisch für Tablets oder Gladys-Wandbildschirme, mit kleineren und engeren Boxen. Praktisch, um Informationen an einer Wand zu kondensieren und schnelle Steuerungen zu haben. Also so etwas (Bild von Google Images, es wird nicht genau das sein):

Hier spreche ich über das Start-Dashboard.

Die Frage

Die Debatte betrifft das verwendete Raster, und es gibt zwei Möglichkeiten.

  • System Nr. 1: Entweder haben wir 3 Spalten, und der Benutzer verteilt und fixiert selbst, wo jede Box hingeht.

Das heißt:

Jede Box hat also zwei Koordinaten, X und Y. Nichts Kompliziertes.

  • System Nr. 2: Entweder haben wir 3 Spalten, und der Benutzer wählt nur die Reihenfolge der Boxen aus, und dann platziert der Browser die Boxen intelligent je nach Bildschirm und der dynamischen Größe jeder Box.

Die Box hat nur noch eine Koordinate, X.

Die Platzierung erfolgt mit den „column-card“-Elementen von Bootstrap. Das ist super schlau und versucht, so viele Daten wie möglich auf dem Bildschirm zu kondensieren.

Das ist das, was ich zum Beispiel für das Gladys Gateway verwende.

Frage: Was haltet ihr davon?

Der Bearbeitungsmodus

Um die Boxen zu bearbeiten, wird es im Gegensatz zu Gladys 3 nicht mehr notwendig sein, in die Einstellungen zu gehen, sondern direkt in der Oberfläche.

Ich denke an einen „Bearbeiten“-Button:

Der, wenn man darauf klickt, alle Boxen in den Bearbeitungsmodus versetzt:

(nur die Box Benutzerpräsenz hier, das ist ein Beispiel)

Bisher habe ich es leider noch nicht geschafft, ein sauberes Drag-and-Drop zu machen, wenn also jemand Experte ist, bin ich dankbar ^^ In der Zwischenzeit habe ich ein System mit „Up“- und „Down“-Pfeilen zum Bewegen der Boxen eingerichtet.

Ich würde eure Meinung dazu hören :slight_smile:

Ich bin ein Befürworter von „Drag-and-Drop“ in drei Spalten. Ich finde, das ist für den Benutzer und in der Nutzung viel anschaulicher.
Wenn ich eine Box „dorthin“ setze, bleibt sie fast immer „dort“. Es sei denn, der Bildschirm wird plötzlich kleiner oder größer, natürlich.

Tatsächlich gefällt es mir, mein Dashboard zu konfigurieren und es immer im gleichen Zustand wiederzufinden.

Hallo, persönlich bevorzuge ich die Lösungen X und Y. Das erinnert mich stark an Gladys 3 und vor allem, wie oben bereits erwähnt, mag ich es, wenn die Dinge dort bleiben, wo ich sie hingelegt habe ^^.

Für die Bearbeitung ist Drag and Drop super, aber die Pfeile stören mich nicht :slight_smile:

Mir gefällt die zweite Lösung besser, weniger Aufwand bei der Konfiguration. Gladys macht einen ersten Entwurf und falls es nicht passt, kann man später einfach per Drag’n Drop umsortieren.
Habe ich das richtig verstanden, dass sie, sobald man sie verschiebt, fix bleiben?

A priori werde ich mit der Lösung X, Y weitermachen.

Genau das ist nicht der Fall! Je nach Größe des Inhalts und der Bildschirmgröße werden die Boxen unterschiedlich angeordnet.

In dem Beispiel, das ich gegeben habe, nehmen wir an, dass Box 5 viel größer ist. Dann sorgt das CSS dafür, dass sich alles neu anordnet und zum Beispiel Box 7 über Box 8 platziert wird, damit der Bildschirm gleichmäßig ausgefüllt ist.

Ich glaube, das könnte unklar sein. Die Lösung « X, Y » ist klarer und das Dashboard bewegt sich nicht (außer auf dem Handy, aber das ist eine andere Sache).

Drag and drop, ich versetze mich in die Lage des Nutzers, der meiner Meinung nach 2019 eher so etwas erwartet als ein Koordinatensystem. (Ich weiß, das ist nicht einfach)

Es sei denn, es gibt einen Grund, ich bin bereit, mich mit dem Thema Drag&Drop zu beschäftigen, mit Preact sollten wir leicht Beispiele finden, aber ich denke, das wird in einem zweiten Schritt sein, ein Issue auf GitHub wird reichen :wink:

Ich habe nicht gesagt, dass es ein Koordinatensystem sein wird :slight_smile:

Bisher sieht die Bearbeitungsoberfläche so aus:

Du hast die kleinen Pfeile (hoch/runter), mit denen du die Boxen bewegen kannst.

Ich habe angefangen, mit Drag and Drop zu spielen, ich habe keine schöne Bibliothek gefunden, aber ich denke, dass wir nativ damit klarkommen sollten. Danach werde ich wahrscheinlich Hilfe brauchen, wenn wir schöne Animationen wollen, das ist nicht meine Spezialität :slight_smile:

@AlexTrovato Das ist nett, aber ich brauche dich im Moment eher für das Bluetooth :smiley:

Kleines Video-Demo des aktuellen Editiermodus:

https://gifyu.com/image/9iEa

Achtung, das GIF ist 22 MB groß, deshalb habe ich es nicht hier reingestellt :slight_smile: