Dimmer Widget und KNX. Wie geht das?

Begonnen von NoMercy, 03 November 2016, 06:19:17

Vorheriges Thema - Nächstes Thema

NoMercy

Hi,

ich versuche gerade das Dimmer Widget mit einem KNX-Dimmer zum laufen zu bekommen. Hierzu nutze ich die Gruppenadresse für das absolute Dimmen (0-100%) des Dimmers.

Mit dem Widget kann ich den Dimmer einschalten (100%), ausschalten (0%) und auch über den Schieberegler einen bestimmten Wert vorgeben. Leider funktioniert die Anzeige des aktuellen Dimmwertes im Widget nicht, wenn der Wert über den KNX-Bus und nicht über das Widget geändert wird. Problem ist, daß bei KNX der Wert für das Setzen des Dimmwertes und das Auslesen des Dimmwertes  aus unterschiedlichen Readings stammen.

Ich hatte ein ähnliches Problem schon einmal mit dem Slider. Das konnte ich mit Hilfe von Euch aber über class="value" lösen. Diese Class kennt allerdings das Dimmer-Widget nicht.

Hat jemand eine Idee, wie ich es hinbekomme, daß mein Dimmerwidget immer den aktuellen Dimmwert anzeigt? Eine ideale Variante wäre:
- Über den Button des Widget läßt sich der Dimmer einschalten (100%) oder ausschalten (0 %)
- Über den Schieberegler kann ich den absoluten Dimmwert direkt einstellen (0% - 100%)
- Dimmer-Widget zeigt immer den aktuellen Dimmwert, auch wenn dieser z.B. über den KNX-Bus geändert wird
- bei Werten größer 0% ist der Button des Widget auf "ein"

Mein KNX-Dimmer-Device hat folgende Readings:
- setG1: Wert des Dimmers über den KNX-Bus setzen (DPT 5.001 = 0% - 100%)
- getG2: Rückmeldeobjekt des Dimmers über den aktuell gesetzten Dimmwert (DPT 5.001 = 0% - 100%)
- state

Meine derzeitige Definition des Widgets sieht so aus:

<div data-type="dimmer"
data-device="WZ_Deckenlicht_Tisch_DimAbs"
data-get="getG2"
        data-get-value="1"
data-set="value"
        data-dim="value"
data-min="0"
        data-max="100"
data-step="10"
data-get-off="0"
data-get-on="[1-9][0-9]*"
data-set-on="100"
data-set-off="0">
</div>
   

Ich bin für jeden Hinweis dankbar. Natürlich könnte ich für das ganze auch einen Slider und einen Button nutzen, aber ich finde das Dimmer-Widget richtig cool und es paßt optisch auch perfekt zu meiner Hue-Steuerung.

Gruß,
Michael

setstate

data-dim auf das Reading für die Helligkeit. data-get und data-set auf die an/aus Readings


<div data-type="dimmer" data-device="HUEDevice1"
     data-get="onoff"
     data-get-on="1" data-get-off="0"
     data-set=""
     data-set-on="on" data-set-off="off"
     data-dim="pct">
</div

NoMercy

Hi Setstate,

danke für die Antwort. Allerdings stehe ich ein wenig auf dem Schlauch....

Zitatdata-get und data-set auf die an/aus Readings
???

Es gibt kein Reading für An/Aus. Das wird über das Reading für den Dimwert gesteuert,also "An" ist alles > 0% und aus ist 0%.

Dummerweise müssen die Werte bei KNX leider über "value" gesetzt werden, also zum Beispiel set WZ_Deckenlicht_Tisch_DimAbs value 20. Das Auslesen der Werte erfolgt aber über get WZ_Deckenlicht_Tisch_DimAbs g2... Und das bekomme ich "mental" gerade nicht in das Dimmer-Widget :'(

setstate

Was bedeutet g2 ?
Sieht wie ein ReadingName aus, da es knx ist, bestimmt aber der Datentype, oder?

Beim Schalten soll da von 0 auf 100 und 100 auf 0 geschaltet werden, oder statt 100 immer der zuletzt gedimmte Wert?

NoMercy

Die Definition des KNX-Devices sieht so aus:

define WZ_Deckenlicht_Tisch_DimAbs KNX 1/1/10:dpt5.001 4/1/8:dpt5.001

wobei:
- die Gruppenadresse 1/1/10 für das Setzen des Wertes im Aktor (in Prozent = dpt 5.001) zuständig ist.
- die Gruppenadresse 4/1/8 den Rückmeldewert des Aktors (in Prozent = dpt 5.001) über die derzeit eingestellte Helligkeit ist

Daraus ergeben sich automatisch beim Anlegen des Devices die folgenden Readings:
- setG1 (zum setzen des Helligkeitswertes über die Gruppenadresse 1/1/10, kann nicht gelesen werden nur beschrieben)
- getG2 (Rückmeldewert des aktuellen Helligkeitswertes aus dem Aktor über die Gruppenadresse 4/1/8, kann nicht geschrieben sondern nur gelesen werden)
- state
- lastSender (KNX-Hardwareadresse des KNX-Devices, daß zuletzt einen geänderten Wert gemeldet hat)

Mit dpt5.001 kommt das Ergebnis immer als Wert mit Prozentzeichen, also z.B. steht im Reading getG2 "100 %".

Beim Schalten soll immer auf 0% oder 100% geschaltet werden. Wenn allerdings über den Zimmerschalter an der Wand sich der Wert ändert (z.B. wird das Licht angeschaltet und auf 50% gedimmt), sollte das Button im Widget auf "ON" gehen und der Slider in diesem Fall auf 50, damit man den aktuellen Status im Widget hat.

Ich hoffe das Du mit dieser Antwort etwas anfangen kannst.

Aber unabhängig davon: die TabletUI ist genial und Deine Unterstützung noch genialer!!! 1000 Dank

setstate

Dann mein erster Versuch


  <div data-type="dimmer" data-device="WZ_Deckenlicht_Tisch_DimAbs"
       data-get="getG2"
       data-get-on="!off" data-get-off="0 %"
       data-set="value"
       data-set-on="100" data-set-off="0"
       data-dim="getG2"
       data-get-value="1">
  </div>

NoMercy

Hi,

also:

ZitatBeim Schalten soll immer auf 0% oder 100% geschaltet werden. Wenn allerdings über den Zimmerschalter an der Wand sich der Wert ändert (z.B. wird das Licht angeschaltet und auf 50% gedimmt), sollte das Button im Widget auf "ON" gehen und der Slider in diesem Fall auf 50, damit man den aktuellen Status im Widget hat.

Das funzt alles :)

Leider kann ich jetzt über das Widget nicht mehr dimmen, was auch irgendwie verständlich ist, da das Reading "getG2" nur Daten vom KNX-Bus empfangen, aber nicht schreiben kann:

Der Aufruf beim Dimmen ist jetzt (z.B. bei sliden auf 50%)
set WZ_Deckenlicht_Tisch_DimAbs getG2 50
müsste aber
set WZ_Deckenlicht_Tisch_DimAbs value 50 sein.

Gruß

setstate

Wie verändert sich STATE des Devices, wenn man einmal von Schalter aus dimmt und zum anderen per Set Befehl von Fhem aus den Wert setzt? Hat man dort immer den aktuellen Wert?

NoMercy

Jep. STATE scheint immer den aktuellen Wert zu haben.

setstate

Dann würde ich glatt mal data-dim auf STATE setzten.

NoMercy

dann passiert nix.... Dimmen am Widget hat keine Auswirkungen auf STATE.

Aber ich habe nochmal eine andere Frage zum gleichen Thema:

ein ähnliches Problem hatte ich auch schon mit einem Rollladenaktor den ich über %-Werte an eine bestimmte Position fahren wollte. Und auch hier ist es ein KNX-Aktor mit verschiedenen Readings für Setzen des Wertes und Lesen vom Bus. Das hatte ich mit einem Slider gelöst bekommen. Der Slider sieht so aus (und funzt):
<div data-type="slider"
          data-device="EG_Wohnzimmer_Rollladen_Fenster_Position"
          data-get="getG2"
          data-get-value="1"
          data-min="0"
          data-max="100"
          data-set="value"
          data-value=true
          class="negated value">
</div>

Der Slides kennt halt class="value" und data-value="true". Sind der Slides und der Dimmer irgendwie "technisch verwandt"?