Das ist doch mal was! Ich bin heiß darauf, Offsets zu Ereignissen hinzufügen zu können ( -1h/+1h )
Im Fall der Sonne könnte das ein Szenario wie folgt sein:
{
"type": "sunset",
"offset": "-01:00:00"
}
Home Assistant kann das glaube ich!
Das ist doch mal was! Ich bin heiß darauf, Offsets zu Ereignissen hinzufügen zu können ( -1h/+1h )
Im Fall der Sonne könnte das ein Szenario wie folgt sein:
{
"type": "sunset",
"offset": "-01:00:00"
}
Home Assistant kann das glaube ich!
Ein Fond, der typischerweise deine Lichter vor Sonnenuntergang einschaltet
Die Nutzung ist isoliert und spezifisch. Wenn phpmyadmin benötigt wird, fehlt etwas in Gladys.
Dazu kommt noch der zusätzliche Support, und phpmyadmin ist nicht nötig, um die Datenbank zu bearbeiten. MySQL Workbench erledigt das gut und ist plattformübergreifend.
Gladys 4 wird hauptsächlich auf SQlite basieren, also wird es anders sein
Und ja, ich bin mit @VonOx einverstanden, Gladys 4 soll ein Produkt sein, das von allen genutzt werden kann. Wenn man in die Datenbank eingreifen muss, um es zu nutzen, dann haben wir etwas übersehen..
Das ist geplant! In Gladys 4 wird es ein Alarmsystem für das Haus geben (aktiviert/deaktiviert), und ich habe vorgesehen, dass dies über einen Code auf einem Zahlenfeld erfolgt, damit es einfach auf einem kleinen Tablet im Eingangsbereich oder einem physischen Tastatur + Arduino entsperrt werden kann ![]()
Mmm, da bin ich mir nicht so sicher, um genau zu sein, glaube ich, dass es technisch gesehen nicht einmal möglich ist, das zu tun, da der Gladys Gateway Ende-zu-Ende verschlüsselt ist, also habe ich keine Ahnung, was über den Server läuft, es sind eure Daten! Aber danke für den Vorschlag, es ist immer gut, Feedback zu bekommen ![]()
Hallo,
Ich habe eine kleine Frage, aber ich weiß nicht genau, ob sie zum Thema V4 gehört oder nicht.
Ich fange langsam an, mit Gladys zu spielen, und am Anfang habe ich Szenarien wie diese erstellt:
Nach Hause kommen nachts
Einschalten Eingang, Einschalten Wohnzimmer usw.
Verlassen des Hauses
Ausschalten Licht X, Y, Z
Aber dann habe ich festgestellt, dass ich viele Szenarien hatte, die auf dieselbe Vorrichtung zugreifen, um sie in denselben Zustand zu versetzen, zum Beispiel wenn ich ins Bett gehe und das Haus verlasse, schalte ich alle Geräte aus.
Daher dachte ich, vielleicht sollte man das anders machen: Skripte wie diese erstellen:
usw.
So muss man auf Ebene der Szenarien nur ein Skript aufrufen und das war’s.
Gleiches gilt für die Entwicklung von Szenarien, um ein Gerät zu integrieren oder ähnliches, man muss nur das Skript ändern.
In der V4 stelle ich mir vor, dass das möglich ist, aber gibt es geplante Änderungen bei den Szenarien/Skripten?
Ist die Szenarienmethode, die Skripte aufruft, eine « gute » Methode, um Gladys zu konfigurieren?
Und eine kleine Bonusfrage, hast du eine Idee, wann du die V4 fertigstellen möchtest? ![]()
Ich habe gerade daran gedacht, dass ich einen Fall habe, bei dem die Deaktivierung/Aktivierung von Szenarien nützlich sein könnte.
Ich bin alle drei Wochen im Bereitschaftsdienst. Daher habe ich ein Szenario mit einem CRON-Alarm, der mir jeden Abend um 22 Uhr sagt, dass der Bereitschaftsdienst beendet ist. Aber dieses Szenario nutze ich nur alle drei Wochen.
Derzeit lösche ich das Szenario, sobald der Bereitschaftsdienst aufgehoben wird, und füge es wieder hinzu, wenn ich erneut im Bereitschaftsdienst bin.
Die Aktivierung/Deaktivierung des Szenarios könnte in diesem Fall nützlich sein ![]()
Hallo zusammen! ![]()
Ich möchte noch einmal auf den Beleuchtungsteil zurückkommen. Um neue Funktionen und Verbesserungen vorzuschlagen, basiere ich auf dem Awox-Modul von @AlexTrovato, das er derzeit verbessert, um die Bluetooth-Mesh-Glühbirnen der Marke zu integrieren. Diese Glühbirnen haben 3 Hauptmodi:
Diese Glühbirnen können folgende Parameter steuern:
Das sind viele Parameter.
Und in der lokalen Gladys-Benutzeroberfläche und im Gateway ist es nicht immer praktisch, so viele Steuerungen gleichzeitig zu haben.
Hier sind also meine Vorschläge:
Er würde es ermöglichen, zwischen den Modi zu wechseln, in unserem Beispiel: Farben/Sequenz/Weiß.
Man könnte ihm eine dreieckige Form geben, das wäre hübsch, aber es würde Platz beanspruchen. Alternativ könnte man ihn horizontal anordnen, mit einem Piktogramm in jedem Zustand (z. B. Farben, warm/kaltes Weiß)
(o)–o–o | o–(o)–o | o–o–(o)
(Ich werde später noch Bilder hinzufügen)
Die Möglichkeit, Steuerungen dynamisch in Abhängigkeit vom Zustand einer anderen zu verbergen, hier: Deaktivieren der Farbsteuerungen, wenn man sich im Weiß-Modus befindet.
Idealerweise sollte das Ausblenden der Steuerungen einstellbar sein, sodass diejenigen, die alles anzeigen möchten, alle behalten können.
Jede Marke steuert die Farbe ihrer Glühbirne unterschiedlich, einige verwenden direkt RGB (RGB), andere gehen über HSL (HSL).
Aus Sicht des Benutzers sucht man häufiger nach einer Möglichkeit, den Farbton der Glühbirne zu ändern, als die Farbe in RGB einzustellen.
Ich schlage daher vor, dass wir einen Farbauswahlschalter haben, der standardmäßig in HSL ist, aber den man auch in RGB verwenden kann.
Wenn man die Farbe der Glühbirne ändern möchte, würde man standardmäßig nur einen Schieberegler (den Farbton) sehen und könnte die Sättigung mit einem Knopf anzeigen lassen, aber auch in RGB wechseln mit einem anderen Knopf. Die Helligkeit kann dagegen direkt mit dem entsprechenden Schieberegler gesteuert werden, eine Redundanz ist nicht nötig.
Anschließend würde sich Gladys um die Berechnung der Farbe kümmern, wie das Modul der Glühbirne es benötigt, sei es in 8 oder 16 Bit oder in Prozent, mit RGB- oder HSL-Werten.
Derzeit haben die Steuerungen (Knöpfe, Schieberegler usw.) keinen „Aktion läuft“-Status für Geräte mit Rückmeldung. Ideal wäre es, eine Animation hinzuzufügen (z. B. kleine Kreise, die sich im Punkt des Knopfes drehen), um dies zu beheben.
Wenn die Aktion nicht ausgeführt wird (Timeout), könnte es ein leichtes Blinken des Umrisses in Rot geben, bevor die Steuerung ihren vorherigen Zustand wiederherstellt. Oder wenn sie mehrmals versucht (Param: retry X times), würde der Umriss orange sein.
Kurz gesagt, all das, um zu sagen, dass man beim Benutzererlebnis nichts dem Zufall überlassen sollte. Wenn das System eine Aktion ausführt und „arbeitet“, muss der Benutzer das „sehen“! ![]()
Was haltet ihr davon? ![]()
Nein, aber das wird auf jeden Fall möglich sein
Ein aktiviertes/deaktiviertes Szenario ist Standard in der UI!
Hier ging es darum, die Möglichkeit zu haben, ein Szenario in den Aktionen eines Szenarios zu aktivieren/deaktivieren (das ist ein bisschen meta :p)
Top, dein Feedback ![]()
Tatsächlich haben wir uns beim Entwicklertreffen darüber unterhalten, dass wir in bestimmten Fällen spezifische Gerätefunktionen für bestimmte Geräte erstellen könnten, die wirklich sehr spezifische Verhaltensweisen haben.
Achtung: Jeder Fall muss mit großer Sorgfalt bewertet werden, um sicherzustellen, dass wir keine hyper-spezifischen Schaltflächen hinzufügen und am Ende das Gegenteil von dem tun, was Gladys tun soll: Verhaltensweisen zwischen Herstellern vereinheitlichen.
Deshalb fällt es mir schwer zu sehen, warum in deinem Fall diese Lampen so spezifische Verhaltensweisen haben!
Abgesehen von den Sequenzen (die hier tatsächlich eine spezifische Schaltfläche sein können), ist der Rest wie bei Philips Hue, oder? Natürlich sind die Formate nicht dieselben, aber sie tun genau dasselbe wie Philips Hue, oder?
Da bin ich nicht unbedingt einer Meinung! Selbst wenn deine Lampe weiß ist, kannst du vielleicht deine Glühbirnen plötzlich gelb/rot machen wollen, um die Atmosphäre zu dimmen?
Beim Farbauswahlwerkzeug haben wir weiter oben in dieser Diskussion darüber gesprochen
Die Idee ist es, das Verhalten der Farben zwischen den Glühbirnenmarken zu vereinheitlichen, das wird für alle gleich sein!
100% damit einverstanden!
Hallo @pierre-gilles!
Ich hatte diese Woche etwas Zeit totzuschlagen bei der Arbeit, also habe ich ein wenig recherchiert bezüglich der UI des Szenen-Editors.
Daher habe ich mich stark von den « Flows » von Homey inspirieren lassen. Für diejenigen, die es nicht kennen, Homey ist ein Smart-Home-System, das von der Firma Athom entwickelt wurde und schrecklich teuer ist (und genau deshalb brechen sie nicht durch).
Auch wenn sie nicht so komplexe Szenen wie Gladys 4 verwalten, ist ihr UI-Ansatz sehr freundlich. Also habe ich eine ziemlich komplexe Szene geschrieben, um die Überlegungen auf Basis ihres horizontalen und kartengestützten Ansatzes zu erweitern.
Um zu zeigen, wovon ich rede, hier ein typisches Beispiel von ihnen =>
{
"name": "Wake Up Tony",
"selector": "wake - up - tony",
"decscription": "Szene, wenn der Benutzer Tony aufwacht.",
"actions": [{
"type": "devicetype.turn-on",
"selector": "room.bedroom.light.binary",
"value": 1,
"then": [{
"type": "delay",
"duration_in_seconds": 10,
"then": [{
"type": "speak",
"selector": "room.bedroom.pod",
"text": "Hallo Tony!",
"then": [{
"if": {
"type": "sun.sunrise",
"selector": "house.malibu-house",
"so": [{
"type": "rolling-shutter.open",
"selector": "room.all.rolling-shutter.open",
"value": "open"
},
{
"type": "devicetype.turn-off",
"selector": "room.bedroom.light.binary",
"value": 0
},
{
"type": "speak",
"selector": "room.bedroom.pod",
"text": "In Malibu sind es 22 Grad, der Himmel ist leicht bewölkt. Das Wetter ist ideal zum Surfen."
}
]
},
"type": "dashboard.display",
"selector": "dashboard.portable",
"data": "{day}, {hour}, {weather}, {armor.state}, {armor.manufacturing.state}, {calendar.day}, {stock-market.stark-industries}"
}]
},
{
"type": "music.play",
"selector": "room.all.harman-kardon",
"value": "playlist-yyyy"
}
]
}],
"type": "devicetype.set-value",
"selector": "room.bathroom.shower.multilevel",
"value": 26,
"then": [{
"type": "speak",
"selector": "room.bedroom.pod",
"text": "Deine Dusche ist bereit",
"then": [{
"type": "devicetype.turn-on",
"selector": "room.bathroom.light.binary",
"value": 1
}],
"then": [{
"type": "delay",
"duration_in_minutes": 20,
"then": [{
"type": "devicetype.turn-on",
"selector": "room.kitchen.coffee-machine.binary",
"value": 1,
"then": [{
"type": "speak",
"selector": "room.bathroom.pod",
"text": "Ich habe deinen Kaffee zum Aufwärmen gestellt, Sir"
}]
}]
}]
}]
}]
}
Das ist genau die Art von Szenario, die ich derzeit mit Gladys 3 zu Hause habe ![]()
Ich habe ein paar Skizzen auf Papier gemacht, aber da ich ein schlechter Zeichner bin, habe ich ein paar Entwürfe gemacht, um meine Ideen bestmöglich zu veranschaulichen!
Wie man sehen kann, habe ich das Wesentliche von Homey übernommen, aber die Struktur geändert, um sie an die viel komplexeren Szenen anzupassen, die Gladys 4 verwalten kann. (Vielleicht fehlt es ein bisschen an Farbe) Ich möchte klarstellen, dass es sich nur um Mockups handelt und dass es schnell gemacht wurde ![]()
Jeder Vorschlag ist willkommen! ![]()
Ich habe auch einen vertikalen Ansatz auf Papier versucht, aber als ich mit den Mockups begann, habe ich es gleich zu Beginn aufgegeben, weil die Lesbarkeit drastisch verloren geht. Das liegt an der eingeschränkten Breite, die durch das von Gladys 4 verwendete Template vorgegeben ist.
Hallo @MathieuA!
Top alles das, super Reflexion.
Aha, du wirst lachen, ich habe eine Notiz auf meinem PC mit Inspirationen von anderen Systemen, ich hatte fast dasselbe Screenshot ![]()
Ich mag die Tatsache, dass jede Szene eine Karte ist, ich denke, das ist der beste Ansatz, um so viele Szenen wie möglich unterzubringen, während es visuell und sauber bleibt.
Es ist schön, dass man die Szene von der Szeneliste aus starten kann, das ist sauber!
Zwei Änderungen, die ich vornehmen würde:
Das ist wirklich sauber! GG!
Wie sieht die Änderung innerhalb einer Aktion aus? Zum Beispiel, wenn ich die Wartezeit definieren möchte?
Hast du das alles in HTML gemacht oder ist das nur ein Mockup?
Hallo,
Ich komme nochmal auf diesen Teil zurück:
Ich denke, es wäre nützlich, eine Kontrolle „deaktivieren“ zu können (ohne sie zu verstecken). Es kommt vor, dass das Gerät nicht erreichbar ist, und das Modul könnte die Steuerung deaktivieren, um die Abwesenheit des Geräts zu signalisieren.
Zum Beispiel im Fall der verbundenen Glühbirnen: Wenn ich den physischen Schalter der Lampe drücke, wird das Bluetooth nicht mehr mit Strom versorgt, die Glühbirne ist nicht mehr verfügbar: Deaktiviere den Knopf in der Gladys-Oberfläche, um die Nichtverfügbarkeit anzuzeigen.
Vielleicht bin ich nicht klar, aber ich verstehe mich selbst ![]()
Ah, verstehe! Nicht dumm, das macht in vielen Integrationen Sinn
Ich notiere das.
Hallo zusammen!
Kurzer Zwischenstand zu meinen Entwicklungen ![]()
1/ Ein erster Modul-Prototyp ist weit fortgeschritten
Heute habe ich an der Entwicklung eines ersten Lichtsteuerungsmoduls gearbeitet, dem Philips Hue-Modul. Es dient mir als Grundlage, um mit der API zu experimentieren und ein Modul von Grund auf zu programmieren, inklusive Tests.
Das Ziel ist, dass auch die Module zu 100% getestet werden. Dafür werden alle Aufrufe externer Bibliotheken mit proxyquire gemockt.
Um den philips-hue next-gen-Service zu sehen, geht es hier entlang =>
https://github.com/GladysAssistant/gladys-4-playground/tree/master/server/services/philips-hue
Die Tests des philips-hue-Moduls sind hier =>
https://github.com/GladysAssistant/gladys-4-playground/tree/master/server/test/services/philips-hue
Zögert nicht, mir Feedback zu geben, nichts ist in Stein gemeißelt ![]()
2/ Ein Online-Demo-Frontend
Ja, dank der Tatsache, dass das Frontend von Gladys 4 nun eine vollständig vom Backend getrennte PWA ist, kann ich eine Demo-Version von Gladys online hosten, die bei jedem Merge in den Master dank Netlify automatisch deployt wird. 100% transparent für mich, keine Wartung nötig.
Das hat mich nur 2 Minuten Setup gekostet, und ehrlich gesagt, ist das cool!
Das Demo-Frontend von Gladys 4 ist hier verfügbar =>
Achtung: Es ist 100% Arbeitsstand, also sind heute noch nicht viele Funktionen nutzbar, aber der Vorteil ist, dass ich euch nun einfacher Feedback zur UI geben lassen kann, ohne dass ihr Gladys lokal deployen müsst. Nicht schlecht, oder?! ![]()
Zur Information: Ich habe im Frontend einen Demo-Modus eingebaut: Alle HTTP-Anfragen werden nicht an Gladys gesendet (da es sich um eine Demo handelt, läuft nur das Frontend statisch), sondern an eine statische JSON-Datei, die Demo-Antworten enthält, damit die UI gut aussieht ![]()
Es ist simpel, aber nur dank der neuen Architektur von Gladys kann ich solche Dinge so einfach starten. Ich kann mir nicht vorstellen, wie komplex es wäre, eine statische Gladys-Demo mit der v3 zu hosten…
In Sachen UI finde ich, dass die Möglichkeit, die Blöcke selbst anzuordnen, sei es direkt per Drag’n Drop oder in den Einstellungen, nicht schlecht wäre.
Bevorzugung für Drag’n Drop, ich habe ein bisschen Schwierigkeiten mit der aktuellen Verwaltung und den Reihenfolgenummern (oder man könnte sie bearbeiten, um sie leicht umzuordnen und nicht alles löschen, um eine neue Reihenfolge zu erstellen)
Ich weiß nicht, ob dieser Kommentar hier am Platz ist, ich schmeiße das einfach mal rein, ihr könnt die Steine werfen.
Edit: Ein fehlendes großes N in « Navigation » bei « Integrationen »
Hallo !
Gleichen Sinnes ![]()
Ich habe mir auch Gedanken gemacht und habe es schließlich so belassen, vor allem aus Faulheit, alles nochmal zu ändern ![]()
Aber wenn du willst, kann ich es mal versuchen, wenn ich etwas Zeit habe, um zu sehen, wie es aussieht !
Ahah, gut beobachtet! Das ist ein Vorwurf, den ich oft an Gladys 3 gemacht habe! Ich gebe zu, dass ich da nicht nachgedacht habe ![]()
Der FAB macht für mich mehr Sinn, vor allem, weil er sich immer mehr durchsetzt. Ich finde, das ist eine ausgezeichnete Idee, weil man seine Form, seinen Standort und vor allem seine Verwendung in mehreren Ansichten gleichzeitig ändern kann.
Er könnte sogar multifunktional werden, um die UI zu vereinfachen!
Beispiel: Der FAB selbst ermöglicht das Erstellen einer Szene, aber wenn man mehrere Szenen auswählt, öffnet der FAB ein Aktionsmenü, um z.B. alle ausgewählten Szenen zu löschen oder sie in eine JSON-Datei oder so etwas anderes zu exportieren ![]()
Die Anwendungen des FAB sind vielfältig und können sehr praktisch sein! Es ist nur eine Frage der Überlegung, aber es ist nicht exklusiv für Android, auch wenn Google es für Android geschaffen hat ^^
Ich habe an ein kleines Popup gedacht, das sich öffnet, wenn man darauf klickt. Ich habe noch nicht weiter darüber nachgedacht, ehrlich gesagt.
Es sind nur Mockups ![]()
GG für deinen Fortschritt ![]()
Redest du vom Dashboard? Klar, das wird der Fall sein! Bisher wurde das Dashboard überhaupt nicht programmiert, es ist nur ein reiner Copy-Paste vom Gateway, statisch, nichts ist gemacht ^^
Wie ich im Manifest erwähnt habe, wird das Dashboard 100% anpassbar sein, mit benutzerdefinierten Blöcken. Und tatsächlich möchte ich, dass es per Drag and Drop funktioniert, wahrscheinlich über einen Bearbeitungsmodus (der noch definiert werden muss)
Gut aufgepasst ![]()
Mach dir keine Mühe, wir haben die Idee.
Jetzt brauche ich eher Hilfe bei der HTML-Implementierung all dessen, ich, der kein großer Fan von CSS ist, werde Hilfe brauchen ![]()
Wenn jemand mithelfen möchte, zögert nicht ^^
Meine Ziele für heute sind, meine Arbeit am Philips Hue-Dienst fortzusetzen und so schnell wie möglich eine funktionierende End-to-End-Demo zu haben, das heißt:
Für meinen Teil habe ich gerade Preact in einem kleinen Projekt getestet und es sieht toll aus. Ich würde gerne helfen, aber ich bevorzuge es, wenn man mir konkret sagt, was interessant zu tun wäre. Zum Beispiel mir eine Aufgabe geben (z. B. das Modul „Bidule“ machen usw.). Ich mag Frontend und Backend
Ich bin nicht nervig ahah
Also weiß ich nicht, ob es ein Trello gibt, wo man die Arbeit zuweisen kann?
Danke ![]()
Im Moment kein Trello. Ich denke nicht, dass das Projekt derzeit in einem Zustand ist, in dem man im Akkord daran arbeiten kann, aber das wird noch kommen. Ich möchte lieber die Grundlagen sauber definieren. Ich experimentiere noch mit allem, was Architektur von Ordnern, Klassenstruktur, Event-Flow und Datenmodell angeht.
Sobald das Projekt von Anfang bis Ende für jeden Modultyp funktioniert, dann ja, werde ich Hilfe brauchen, um die Gladys 3 Module zu Gladys 4 zu migrieren
Ich denke, ich werde alle Aufgaben als GitHub Issues erstellen, und wir schließen sie dann eine nach der anderen ![]()
Aber bevor wir in den „industriellen“ Modus gehen, werde ich die Dokumentation erstellen, damit es einfach ist, beizutragen, und damit der gesamte Projektbestand kohärent bleibt.
Hier habe ich vor allem um ein bisschen Hilfe mit CSS für die Szenenansicht des Frontends gebeten, nichts Schlimmes ![]()
Schau mal @MathieuA, ich logge mich bei Twitter ein und zack, da sehe ich eine super Inspiration!
Das sieht nicht schlecht aus, was du gemacht hast, das bestätigt, dass wir nicht die Einzigen wären ![]()
(Die Verbindungen zwischen den einzelnen Aufgaben sind fixiert, das ist nur, um das klar zu machen, nichts zu tun mit den Knoten der Szenario-Interfaces einiger Editoren)
Oooookay, das hatte ich nicht verstanden. Ehrlich gesagt, überlasse ich das CSS anderen ![]()
Ich nutze lieber etwas Bestehendes und verändere es ein bisschen. Ich warte gespannt.