# Lassen Sie uns über Gladys V4 sprechen

**URL:** <https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578>\
**Category:** Développement\
**Created:** [20. Oktober 2018 um 21:24 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578 "2018-10-20T21:24:26Z")\
**Posts on this page:** 20\
**Page:** 8

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [20. Februar 2019 um 10:29 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/181 "2019-02-20T10:29:27Z")

</div>

Und schwupps, das Filtering auf der Integrationsseite funktioniert! Das ist der Hammer!

> <https://twitter.com/pierregillesl/status/1098166550345830406?s=20>

> [@piznel](#):
>
> Heißt das, wir würden nativ API-Endpunkte für Konvertierungen anbieten, die der Entwickler nach Bedarf aufrufen kann?

Ich denke schon, damit jeder nicht alles neu entwickeln muss 🙂 Für sehr spezielle Fälle muss der Entwickler allerdings selbst seine Transformationsfunktion in die eine oder andere Richtung codieren.

Was würdest du dir als Farbformat vorstellen? Ich denke, es sollte ein Ganzzahlformat sein, damit wir es speichern und der Farbauswahl funktioniert, was meinst du?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [20. Februar 2019 um 11:01 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/183 "2019-02-20T11:01:51Z")

</div>

> [@piznel](#):
>
> Ich würde wahrscheinlich so vorgehen wie Philips Hue (da ich nichts Besseres auf dem Markt kenne), nämlich:

Ich bin ganz deiner Meinung!

> [@piznel](#):
>
> Das wird kompliziert bei Geräten mit 256 Farben, denn der Farbauswahl-Assistent kann diese nicht verarbeiten, und soweit ich gesehen habe, ist der Übergang von 65.000 zu 256 Farben nicht so einfach, ganz zu schweigen davon, dass der Nutzer eine Farbe sieht, die nicht der von ihm gewählten entspricht.

Ich habe das hier gefunden =\> [https://www.npmjs.com/package/color-convert](https://www.npmjs.com/package/color-convert)

Wir werden es auf jeden Fall verwenden, aber es sind schon mal super Beispiele.

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [20. Februar 2019 um 14:08 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/184 "2019-02-20T14:08:19Z")

</div>

Meine 2 Cent, ein Prozentsatz ist für den Endnutzer einfacher. Was dahinter passiert, ist eine andere Geschichte 🤘

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [20. Februar 2019 um 16:04 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/186 "2019-02-20T16:04:06Z")

</div>

Das ist ein umgangssprachlich übersetzter Ausdruck „my 2 cents“ 😄, nur um meine ganz kleine Beitrag zur Diskussion zu zeigen

---

<div class="post-metadata">

**Author:** ![luke](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/luke/32/4488_2.png) [@luke](https://community.gladysassistant.com/u/luke)\
**Post date:** [21. Februar 2019 um 07:42 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/188 "2019-02-21T07:42:35Z")

</div>

Hallo,

Es wäre vielleicht gut, Gladys v4 von Anfang an mit einem Frontend und einem Backend zu planen

- das Frontend gibt Zugriff auf die Box (Knöpfe, Infos, …)
- das Backend gibt Zugriff auf die Einstellungen (Hinzufügen von Peripheriegeräten, …)

sowie die Möglichkeit, Themen auf der Frontend-Seite zu verwenden  
so dass je nach Ort, Terminal auf das Frontend mit dem gewünschten Thema zugegriffen werden kann (mit einem Parameter, der auf der Backend-Seite definiert ist [Benutzer → Terminal → Vorlage])

📔 Frontend  
|------- 📔 Thema1  
|------- 📔 Thema2  
|------- …  
📔 Backend

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [21. Februar 2019 um 11:35 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/189 "2019-02-21T11:35:45Z")

</div>

> [@luke](#):
>
> Vielleicht wäre es gut, Gladys v4 von Anfang an mit einem Frontend und einem Backend zu planen

Das ist tatsächlich bei Gladys 4 der Fall, das Frontend ist eine PWA mit Preact und das Backend ein Express-Server 🙂

Was das Thema angeht, Gladys 4 wird die Möglichkeit bieten, benutzerdefinierte Dashboards zu erstellen (und nicht nur ein einziges Dashboard, sondern mehrere!), also sollte das den Anforderungen entsprechen.

Um verschiedene Benutzeroberflächen zu haben, konzentrieren wir uns zunächst darauf, eine einzige Benutzeroberfläche zu erstellen, das ist schon komplex genug 🙂

---

<div class="post-metadata">

**Author:** ![luke](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/luke/32/4488_2.png) [@luke](https://community.gladysassistant.com/u/luke)\
**Post date:** [21. Februar 2019 um 12:01 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/190 "2019-02-21T12:01:29Z")

</div>

> [@pierre-gilles](#):
>
> Das ist tatsächlich in Gladys 4 der Fall, das Frontend ist eine PWA mit Preact und das Backend ein Express-Server 🙂
> 
> Was das Thema angeht, wird Gladys 4 die Möglichkeit bieten, benutzerdefinierte Dashboards zu erstellen (und nicht nur ein einziges Dashboard, sondern mehrere!), also sollte das den Anforderungen entsprechen.
> 
> Für verschiedene Benutzeroberflächen konzentrieren wir uns zunächst darauf, eine einzige Benutzeroberfläche zu erstellen, das ist schon komplex genug 🙂

👌👍 Top, danke

---

<div class="post-metadata">

**Author:** ![link39](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/link39/32/3756_2.png) [@link39](https://community.gladysassistant.com/u/link39)\
**Post date:** [25. Februar 2019 um 08:53 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/191 "2019-02-25T08:53:03Z")

</div>

> [@piznel](#):
>
> Man bräuchte auch die Farbtemperatur, aber ich habe das noch nicht überprüft.

Die Milight-LEDs steuern 2700k bis 6500k und die Hue-LEDs 2000k bis 6500k.

---

<div class="post-metadata">

**Author:** ![link39](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/link39/32/3756_2.png) [@link39](https://community.gladysassistant.com/u/link39)\
**Post date:** [25. Februar 2019 um 09:05 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/192 "2019-02-25T09:05:26Z")

</div>

Hallo,

Ich teile mit euch eine Überlegung, die ich beim „Light device State“ hatte. Sollte man nicht die Temperatur der Farbe darstellen? Klar, nicht alle Lampen unterstützen das, aber genauso wie HSB. Sollte das Schema also nicht nur die Zustände EIN/AUS darstellen?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [25. Februar 2019 um 11:22 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/193 "2019-02-25T11:22:23Z")

</div>

> [@link39](#):
>
> Es stimmt zwar, dass nicht alle Lampen das unterstützen, aber das gilt auch für HSB. Sollte das Schema dann nicht nur die Zustände EIN/AUS darstellen?

Dieses Schema war nur ein nicht abschließendes Beispiel 🙂 Bei den Lampen müssen wir uns tatsächlich für das Format entscheiden, das wir unterstützen wollen. Bisher sind wir eher von der Philips Hue-Herangehensweise ausgegangen. Ich denke aber, dass wir während der Implementierung mit den verschiedenen Herstellern sehen werden, ob sich das gut integrieren lässt oder nicht, und wie wir die verschiedenen Inkompatibilitäten lösen.

---

<div class="post-metadata">

**Author:** ![Leroy](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/l/e0b2c6/32.png) [@Leroy](https://community.gladysassistant.com/u/Leroy)\
**Post date:** [26. Februar 2019 um 09:13 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/194 "2019-02-26T09:13:53Z")

</div>

Das liebe ich, es ist sehr clean. Super Arbeit @pierre-gilles

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [26. Februar 2019 um 11:33 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/195 "2019-02-26T11:33:09Z")

</div>

Hallo zusammen!

Heute habe ich am gesamten Szenario-Engine gearbeitet, mit zwei Zielen:

- Ein reichhaltiges Engine mit allen Funktionen, die wir benötigen (Trigger + mehrere Bedingungen mit UND/ODER + Aktionen)
- Ein sehr leistungsfähiges und ressourcenschonendes Engine

Heute Abend habe ich eine erste minimale Version des Engines fertiggestellt, und… es rockt!!

1/ Ich habe die verschiedenen [Ereignisse](https://github.com/GladysAssistant/gladys-4-playground/blob/master/server/utils/constants.js#L6), [Zustände](https://github.com/GladysAssistant/gladys-4-playground/blob/master/server/utils/constants.js#L62), und [Bedingungen](https://github.com/GladysAssistant/gladys-4-playground/blob/master/server/utils/constants.js#L88) in einer Konstantendatei definiert. Es ist keine abschließende Liste, aber diese erste Liste hat mir den Einstieg ermöglicht 🙂 Ich werde sie im Laufe der Entwicklung erweitern (dazu muss man die UML-Zustandsdiagramme schreiben, das mache ich ordentlich).

2/ Alle Zustände werden in einem Speicher-Store für maximale Leseleistung gespeichert. Die Zustände werden auf der Festplatte persistiert, aber diese Persistenz ist nur für die Visualisierung (Kurven) nützlich, nicht für die Echtzeitabfrage in einem Szenario.

Ich habe also eine kleine Leistungsanalyse mit meinem ersten Engine durchgeführt.

Ich habe einen typischen, vielleicht sogar extremen Anwendungsfall erstellt:

- Ein Benutzer mit 300 Szenarien (zufällig generiert, mit zufälligen Triggern)
- 5 Bedingungen pro Trigger
- 1000 Zustände zu überwachen
- Keine asynchrone Arbeit. Das Ziel des Benchmarks ist nicht die Leistung eines Drittanbieters zu testen, sondern nur das Engine selbst, also wird hier nur die Leistung der Bedingungen bewertet, grob gesagt: wie viele Bedingungen das Engine pro Sekunde bewältigen kann!

Das Video spricht für sich selbst =\>

> <https://twitter.com/pierregillesl/status/1100344419742404608?s=20>

Wir haben 1,35 Millionen Ereignisse pro Sekunde, haha 🚀

> [@Leroy](#):
>
> Ich liebe es, es ist sehr aufgeräumt. Super Arbeit @pierre-gilles

Danke! 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [27. Februar 2019 um 01:29 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/197 "2019-02-27T01:29:21Z")

</div>

> [@piznel](#):
>
> Können wir eine Zeitangabe in die Szenarien einbauen?

Aber natürlich! Das stand doch im Manifest, glaube ich 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [27. Februar 2019 um 07:16 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/198 "2019-02-27T07:16:17Z")

</div>

@piznel:

Ich habe `delay` zu den Aktionen hinzugefügt, das war eine einfache Aktion 😉

Du kannst in den Aktionen Folgendes tun:

```json
[{
  "type": "delay",
  "seconds": 10,
  "then": [{
    type: "light.turn-on",
    deviceFeature: "piznel-lamp"
  }]
}]

```

Diese Aktionssequenz wartet 10 Sekunden, dann schaltet sie die Lampe ein, die den Selector «&nbsp;piznel-lamp&nbsp;» hat! 🙂

Hinweis: Du kannst «&nbsp;Millisekunden&nbsp;», «&nbsp;Sekunden&nbsp;», «&nbsp;Minuten&nbsp;» oder «&nbsp;Stunden&nbsp;» verwenden!

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [27. Februar 2019 um 07:28 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/199 "2019-02-27T07:28:46Z")

</div>

Übrigens, was haltet ihr von diesem Design für die Szenen? 🙂

Das ist nur ein erster Entwurf, rein designmäßig, nichts ist verkabelt! 😛

 ![30](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/f/f2a541878a3ecd889365c399741235986f792d9f.png)

---

<div class="post-metadata">

**Author:** ![Pti\_Nico](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pti_nico/32/273_2.png) [@Pti\_Nico](https://community.gladysassistant.com/u/Pti_Nico)\
**Post date:** [27. Februar 2019 um 13:10 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/200 "2019-02-27T13:10:42Z")

</div>

> [@pierre-gilles](#):
>
> **Der Zustand der Sonne**
> 
> ![gladys-v4-state-Sun State.png](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/b/b80dfaf067ba3834928fa5f89ab48ee5d6a33e92.png)

Wäre es möglich, mehrere Zustände zu verwalten, da die Sonne keine Lampe (AN/AUS) ist?

Ähnlich wie in der Bibliothek [suncalc](https://github.com/mourner/suncalc) gibt es mehrere Zustände:

| Eigenschaft | Beschreibung |
| --- | --- |
| `sunrise` | Sonnenaufgang (die Oberkante der Sonne erscheint am Horizont) |
| `sunriseEnd` | Sonnenaufgang endet (die Unterkante der Sonne berührt den Horizont) |
| `goldenHourEnd` | Morgenliche „goldene Stunde“ (weiches Licht, beste Zeit für Fotografie) endet |
| `solarNoon` | Mittag (die Sonne befindet sich in der höchsten Position) |
| `goldenHour` | Abendliche „goldene Stunde“ beginnt |
| `sunsetStart` | Sonnenuntergang beginnt (die Unterkante der Sonne berührt den Horizont) |
| `sunset` | Sonnenuntergang (die Sonne verschwindet unter dem Horizont, die Abenddämmerung beginnt) |
| `dusk` | Dämmerung (die nautische Abenddämmerung beginnt) |
| `nauticalDusk` | Nautische Dämmerung (die astronomische Abenddämmerung beginnt) |
| `night` | Nacht beginnt (dunkel genug für astronomische Beobachtungen) |
| `nadir` | Nadir (dunkelster Moment der Nacht, die Sonne befindet sich in der tiefsten Position) |
| `nightEnd` | Nacht endet (die morgendliche astronomische Dämmerung beginnt) |
| `nauticalDawn` | Nautischer Morgen (die morgendliche nautische Dämmerung beginnt) |
| `dawn` | Morgenröte (die morgendliche nautische Dämmerung endet, die morgendliche bürgerliche Dämmerung beginnt) |

---

<div class="post-metadata">

**Author:** ![Exilon62](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/exilon62/32/6003_2.png) [@Exilon62](https://community.gladysassistant.com/u/Exilon62)\
**Post date:** [27. Februar 2019 um 13:52 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/201 "2019-02-27T13:52:04Z")

</div>

ich bin mir nicht sicher, ob das nützlich ist, um den Sonnenaufgang zu erfassen, ist der Zustandswechsel (Nacht =\> Tag) und umgekehrt für den Sonnenuntergang.  
Danach sehe ich persönlich nicht, wofür all die anderen Eigenschaften gut sein sollen, wobei man das mit der Uhrzeit neben dem Zustand ableiten kann

---

<div class="post-metadata">

**Author:** ![link39](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/link39/32/3756_2.png) [@link39](https://community.gladysassistant.com/u/link39)\
**Post date:** [27. Februar 2019 um 17:53 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/202 "2019-02-27T17:53:54Z")

</div>

Klar und aufgeräumt! Sehr gut!

Was die Szenarien angeht, habe ich einen kleinen Vorschlag. Wäre es möglich, eine Einstellung zu haben, mit der man sie aktivieren und deaktivieren kann?

Ein Beispiel, um den Nutzen zu veranschaulichen:  
Ich habe einen Bewegungssensor. Wenn er eine Bewegung erkennt, startet er ein Szenario, das das Außenlicht für 15 Sekunden einschaltet und dann wieder ausschaltet.  
Ich kann das Licht auch manuell ein- und ausschalten, wenn ich möchte, mit einem Schalter.

Wenn ich das Licht manuell einschalte, weil ich weiß, dass ich eine Weile brauche (z. B. wenn ich hin und her gehe, um die Einkäufe aus dem Auto auszuladen), wird das Szenario ausgelöst, wenn mich der Sensor sieht, und schaltet das Licht 15 Sekunden später wieder aus, obwohl das nicht unbedingt das ist, was ich will.  
Daher wäre es sinnvoll, wenn das Szenario auf „deaktiviert“ schaltet, wenn ich das Licht manuell einschalte.

Dieses Beispiel ist vielleicht nicht das logischste und könnte auf viele andere Arten gelöst werden, das weiß ich. Aber ich denke, es gibt andere Fälle, in denen das nützlich sein könnte 😃

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [28. Februar 2019 um 05:14 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/203 "2019-02-28T05:14:25Z")

</div>

> [@Pti\_Nico](#):
>
> Wäre es möglich, mehrere Zustände zu verwalten, da die Sonne keine Lampe (AN/AUS) ist?
> 
> Wie in der Bibliothek [suncalc](https://github.com/mourner/suncalc) gibt es mehrere Zustände:

Warum nicht, aber meiner Meinung nach wäre das ein zusätzlicher Zustand, da in den meisten Anwendungsfällen die eigentliche Frage in den Szenarien lautet: „Ist es Nacht oder Tag“, also sollte man diese Information auch nicht verlieren! 🙂

> [@link39](#):
>
> Dieses Beispiel ist vielleicht nicht das logischste und könnte auf viele andere Arten gelöst werden, das weiß ich. Aber ich denke, es gibt andere Fälle, in denen es nützlich sein könnte 😃

Ich verstehe die Idee!

Ich denke, in deinem Fall wäre die Lösung, eine Bedingung im Szenario hinzuzufügen: „UND das Licht ist nicht bereits eingeschaltet“, es ist nicht logisch, ein Szenario deswegen zu stornieren!

Ich werde über die Möglichkeit nachdenken, ein Szenario in den Aktionen zu stornieren, ich bin mir nicht sicher, ob das das ist, was wir wollen, ich habe Angst, dass es Verhaltensweisen einführen könnte, die nur durch einfache Bedingungen lösbar sind 🙂 (denn schließlich ein Szenario jedes Mal stornieren/wiederherstellen, wenn du dein Licht an- oder ausschaltest, ist extrem umständlich!).

---

<div class="post-metadata">

**Author:** ![Pti\_Nico](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pti_nico/32/273_2.png) [@Pti\_Nico](https://community.gladysassistant.com/u/Pti_Nico)\
**Post date:** [28. Februar 2019 um 07:48 UTC](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578/204 "2019-02-28T07:48:18Z")

</div>

> [@Exilon62](#):
>
> Persönlich sehe ich nicht, wozu all die anderen Eigenschaften gut sein sollen, wenn man es ja aus der Uhrzeit und dem Status ableiten kann

Wie startest du also eine Stunde vor Sonnenuntergang ein Szenario?  
Wartest du auf ein zukünftiges Ereignis -1 Stunde?

Und ich mag es, wenn ich abends nach Hause komme und es beginnt dunkel zu werden (aber noch nicht Nacht), dass das Licht angeht 😉

[Vorherige Seite](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578.md?page=7)

[Nächste Seite](https://community.gladysassistant.com/t/parlons-de-gladys-v4/3578.md?page=9)
