# Ändern des Status eines deviceFeature bei Änderung des Werts eines anderen deviceFeature

**URL:** <https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533>\
**Category:** Développement\
**Created:** [18. September 2021 um 12:31 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533 "2021-09-18T12:31:55Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [18. September 2021 um 12:31 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/1 "2021-09-18T12:31:55Z")

</div>

Hallo,

Wie kann ich den Zustand einer Funktion ändern, ohne den zugehörigen setValue auszulösen, wenn ich den Zustand einer anderen Funktion ändere?

Denn ich habe eine `deviceFeature`, die die Farben verwaltet, und eine, die den Zustand verwaltet, aber eigentlich ist der Zustand fiktiv: Aus = schwarze Farbe und An = Farbe, die mit dem abhängt, was auf dem Bildschirm passiert.  
Es ist nicht wirklich ein Ein-/Aus-Schalter.  
Daher kann ich die Farbe ändern, auch wenn aus Gladys-Sicht die Status-Funktion auf Aus steht.  
Ich möchte, dass es konsistent ist, sodass der Binärwert virtuell auf An springt, wenn ich eine Farbe setze.

Ich weiß nicht, ob ich mich klar ausgedrückt habe.. Ich glaube nicht, dass ich eine interne Bibliothek von meiner Integration aus aufrufen kann.

---

<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. September 2021 um 08:17 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/2 "2021-09-27T08:17:42Z")

</div>

Hallo @Jean-Philippe!

Entschuldige, ich hatte deine Nachricht nicht gesehen.

Wenn ich das richtig verstehe, entwickelst du eine Integration, die Lampen mit mehreren Funktionen steuert:

- Ein-/Ausschalten
- Farbe

Möchtest du, dass die Lampe eingeschaltet wird, wenn der Benutzer die Farbe ändert?

Ich würde gerne wissen, wie du dir das Verhalten vorstellst. Technisch ist alles möglich, ich sage dir, was ich davon halte 🙂

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [2. Oktober 2021 um 15:14 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/3 "2021-10-02T15:14:46Z")

</div>

Hallo,

Eigentlich geht es darum, mein Ambilight-System auf Basis von Hyperion zu steuern.  
Um es einfach auszudrücken, handelt es sich dabei um ein LED-Band hinter dem Fernseher, das die Farben des Bildschirmrandes übernimmt.

Und in der aktuellen Version wählt man entweder

- einen Modus (z. B. blinkend oder ein mehrfarbiger Schlauch usw.)

- alle LEDs auf die gleiche Farbe zu setzen.

Aber es gibt kein AN/AUS  
Das AUS ist die schwarze Farbe.

Also habe ich in Gladys einen Binärtyp mit folgendem erstellt:

- AUS, alle LEDs auf Schwarz setzen
- AN, in den Modus „Farbfolge des TV-Bildes“ wechseln

Ich habe auch einen Modustyp und einen Farbtyp.

Das Problem ist also, dass, wenn ich auf AUS setze, die LEDs ausgeschaltet werden.  
Dann, wenn ich statt AN eine Farbe wähle, funktioniert es, aber der Binärtyp bleibt auf AUS, da ich keine echte Statusrückmeldung habe.

Ich frage mich also, welcher der beste Ansatz ist, damit, wenn ich die _Farbe_ oder den _Modus_ ändere, der _Binärwert_ auf AN gesetzt wird, um Inkonsistenzen zu vermeiden.

---

<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:** [4. Oktober 2021 um 01:50 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/4 "2021-10-04T01:50:42Z")

</div>

> [@Jean-Philippe](#):
>
> Ich fragte mich, welcher der beste Ansatz wäre, damit, wenn ich die _Farbe_ oder den _Modus_ ändere, das _Binary_ auf „An“ gesetzt wird, um Inkonsistenzen zu vermeiden.

Ich würde in deiner Integration eine On/Off-Funktion hinzufügen (auch wenn es dahinter nicht wirklich eine On/Off-Funktion gibt), und in der setValue-Funktion deiner Integration würdest du den On/Off-Fall verwalten, indem du das tust, was dein Gerät erwartet (schwarze Farbe für „Aus“).

Das Ziel ist, dass es für den Benutzer transparent ist, ihm ist es egal, wie es implementiert ist, solange er das Licht an- und ausschalten kann 🙂

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [6. Oktober 2021 um 05:55 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/5 "2021-10-06T05:55:47Z")

</div>

Ja, das ist gut, aber meine Frage ist, wie man den Binary auf Ein stellt, wenn man direkt auf eine Farbe zugreift, obwohl das Band schwarz / Aus war?

Beispiel:  
Abends habe ich das Gerät auf Aus gestellt, wodurch der Status Binary auf 0 gesetzt und die Farbe auf Schwarz geändert wird.  
Morgens stelle ich direkt die Farbe auf Vollrot ein, ohne den Binary zu ändern, der auf Aus bleibt.  
Damit gibt es eine offensichtliche Inkonsistenz.

Ich habe das:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/d/ddd1ff0eb0f503f7585f605914161e0e2017ab8a.png)

Dann schalte ich aus:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/55f7edaf35d1ecc3e71c9d8839d5d0eac4e1b8e3.png)

Jetzt bin ich richtig schwarz / aus.  
Und wenn ich die Farbe ändere, wodurch das Band wieder eingeschaltet wird:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/9/9e36f47a25d3fcc59fb538e322ac6a6e0d4e344a.png)

Ich kann kein Binary = Ein-Event auslösen, denn wenn ich mich nicht irre, wird Gladys die Funktion zum Einschalten aufrufen, die tatsächlich ein clear() der Farbe durchführt.

Übrigens, wenn ich auf Aus schalte, könnte ich auch den Farbauswahl auf Schwarz sehen wollen.

---

<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:** [6. Oktober 2021 um 06:44 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/6 "2021-10-06T06:44:31Z")

</div>

Oups, entschuldige, ich habe falsch verstanden.

Du kannst ein Ereignis (wie ein Sensor es tun würde) in deinem setValue senden, um die beiden Zustände zu synchronisieren.

So etwas wie das:

```auto
 this.gladys.event.emit(EVENTS.DEVICE.NEW_STATE, {
    device_feature_external_id: 'TON_DEVICE_FEATURE_EXTERNAL_ID',
    state: 1
});

```

Wenn du den Code des EVENTS.DEVICE.NEW\_STATE ([Gladys/server/lib/device/device.newStateEvent.js at dc25cf7ed3ac36a2962e899e4c152ffe10c2c6ae · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/blob/dc25cf7ed3ac36a2962e899e4c152ffe10c2c6ae/server/lib/device/device.newStateEvent.js)) ansiehst

Diese Funktion speichert nur den Zustand, es ist kein setValue! Also wird es keine endlose Schleife geben, es wird deinen setValue nicht erneut aufrufen.

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [8. Oktober 2021 um 19:52 UTC](https://community.gladysassistant.com/t/changer-le-state-dun-devicefeature-sur-changement-de-value-dun-autre-devicefeature/6533/7 "2021-10-08T19:52:46Z")

</div>

Perfekt, ich dachte fälschlicherweise, dass der Aufruf dieses Events tatsächlich zu meinem setStatus zurückkehren würde.

Ich werde es also so machen 🙂
