NEWS
Shelly Duo rgbw Mode
-
Ich habe mir eine Shelly Duo gekauft und möchte die über den iot Adapter in Google home einbinden (eigentlich ganz einfach). Leider sind die Datenpunkte nicht so einfach. Ich habe folgende Datenpunkte: Power, brightness, color, temp, saturation, Mode, gain
Wenn nun der color wert (Hex) geändert wird, muss der Mode auf color stehen. Um die Helligkeit zu ändern muss dies bei gain verändert werden.
Wenn die Lampe weißes Licht machen soll muss, Mode auf White gestellt werden und bei temp die Farbtemperatur einstellen. Um da die Helligkeit zu verändern muss brightness geändert werden. Es sind viele Datenpunkte was die Integration in iot erschwert. Hat jemand eine Idee wie dies umsetzbar ist. Ich habe bis jetzt immer nur hinbekommen die color Werte über Google Home zu ändern aber nicht den Wechsel auf weiß. Ich hoffe jemand hat eine Idee. -
@kilian-z Tja das ist ein Problem dieser Adapter und ihrer Aufdröselung in einzelne Datenpunkte. Wenn man originiäres mqtt verwenden würde, würde man wahrscheinlich Mode und color in einem JSON String zugleich schicken. Ich kann Dir nur raten, diese Adapter nicht mehr zu verwenden.
-
@mickym Okay, danke. Hast du eine Idee wie ich das lösen könnte? Ich nutze blockly und node-red. Wenn ich temp ändere muss ich dann nur die benötigten Objekte (Power,temp, brightness) senden? Wie kann ich da vorgehen. Mir fehlen aktuell die Ideen.
Hintergrund: ich möchte die Lampe im iot Adapter nutzen mit Google Home. Also brauche ich ein paar Datenpunkte (Power,temp,color, brightness)
-
@kilian-z Wie gesagt ich habe keine Ahnung - ob der Shelly Adapter das kann -
Du könntest eventuell auf - trotz des Adapters -von mir aus als Rückmeldung
Aber klar kannst Du wenn es geht auch die Datenpunkte einzeln setzen. Wenn es keine Abhängigkeiten gibt musst Du die Werte halt in einer bestimmten Reihenfolge setzen. In Blockly werden die Änderungen doch sowieso sequentiell abgearbeitet oder?
Wenn das halt mit dem Adapter nicht geht, muss man halt schauen die Alternativen - wenn Du es nacheinander manuell schalten kannst, wie du es brauchst, dann gehts auch mit der Logikmaschine.
Die Doku sagt bei mqtt ja folgendes:
{ "mode": "color", /* "color" or "white" */ "red": 0, /* red brightness, 0..255, applies in mode="color" */ "green": 0, /* green brightness, 0..255, applies in mode="color" */ "blue": 255, /* blue brightness, 0..255, applies in mode="color" */ "gain": 100, /* gain for all channels, 0..100, applies in mode="color" */ "brightness": 100, /* brightness, 0..100, applies in mode="white" */ "white": 0, /* white brightness, 0..255, applies in mode="color" */ "temp": 4750, /* color temperature in K, 3000..6500, applies in mode="white" */ "effect": 0, /* applies an effect when set */ "turn": "on", /* "on", "off" or "toggle" */ "transition": 500 /* One-shot transition, `0..5000` [ms] */ }
-
@kilian-z sagte in Shelly Duo rgbw Mode:
@mickym Okay, danke. Hast du eine Idee wie ich das lösen könnte? Ich nutze blockly und node-red. Wenn ich temp ändere muss ich dann nur die benötigten Objekte (Power,temp, brightness) senden?
Nehmen wir mal an, Du willst ein Objekt senden mit immer bestimmten Eigenschaften die anderen lässt Du gleich, dann könntest Du das in NodeRed über ein Objekt realisieren und dieses dann auch automatisch an die verschiedenen Datenpunkte verteilen, in dem Du das topic dynamisch zusammen baust.
Wie gesagt das Problem ist dann eher der Adapter, da der einzelne Datenpunkte braucht.
Sprich Du musst doch nur in deinen datenpunkten checken, welches Du ändern möchtest:
Nehmen wir mal an Du setzt diese von Dir 4 erwähnten Datenpunkte:
Power,temp,color, brightness
Dann weisst Du doch dass Du bei temp und brightness den mode "white" einstellen musst und bei color den mode "color". Bei Power ist es egal - habe ich das richtig verstanden?
So könnte dann ein Flow aussehen, der je nachdem was getriggert wurde, den mode und den Datenpunkt automatisch setzt - du müsstest quasi nur die iobroker-OUT Node hinten dran setzen:
Den rgbw Datenpunkt habe ich einfach deinem Screenshot entnommen - ich denke mal dass das dann mit dem HEX String direkt funktioniert.
Wenn Du lieber Kodieren willst - dann halt der ganze Flow so:
-
@mickym Vielen Dank. Ich werde es Mal probieren.
Nehmen wir Mal an, aktuell ist Farbe rot und Mode steht auf "color". Jetzt möchte ich auf einen weißton. Dann müsste ja erst die temp geändert werden und dann der Mode auf "White" gestellt werden.
Trigger soll ja nur der DP temp sein, dadurch muss dann das Script den temp übernehmen und Mode auf White stellen. Ist das so? Ich hätte das jetzt so gedacht, dass ein Datenpunkt geändert wird aber nicht die beiden Mode und temp.
-
@kilian-z Ja so habe ich es in dem Flow gemacht. Wenn temp triggert - wird erst Mode auf white gestellt und dann der temp Datenpunkt beschrieben. Siehst Du ja im Screenshot an der Abfolge der Nachrichten und des Topics:
und getriggert wird nur über einen Datenpunkt temp (selbst angelegter datenpunkt - den Du dann mit iot beschreiben kannst) - ich habe jetzt halt eine Inject Node zum Triggern verwendet.
-
@mickym Stimmt, garnicht gesehen. Ich werde es Mal testen.