Hi,
kann man irgendwie (RegEx?) definieren, dass ein Dimmer/Slider nicht beliebige Werte z.B. zwischen 0 und 100 schickt, sondern nur bestimmte Werte wie z.B. 0, 6, 12, 18, 25, 31, 37, 43, 50, 56, 62, 68, 75, 81, 87, 93, 100? Und diese natürlich auch passend auf die Position des Sliders mapt?
Das sind nämlich genau die Werte, die ein FS20-Dimmer als Dimmstufen versteht, und zwar auschließlich diese.
Grüße
Martin
fix mal eingebaut ...
<div data-type="slider" data-device="dummy1" data-value="true" class="FS20"></div>
Vielen Dank fürs Kümmern! Ich habe noch ein Problem dabei. Mit:
<div data-type="dimmer"
data-device='Dimmer_01'
data-value="true"
data-set-on="dim$v%"
data-set-off="off"
class="FS20">
</div>
wird die Sliderposition perfekt auf die FS20-Werte gemapped, allerdings noch im falschen Format, nämlich ohne dim-Präfix und %-Suffix.
Nehme ich
data-set-value="dim$v%"
dazu, wird garnichts mehr gesendet.
Was mache ich falsch?
Grüße
Martin
Du hast Recht, da habe ich nicht mitgedacht. Jetzt sollte das klappen
Beim Slider habe ich jetzt auch das Tap Feature repariert.
Damit kann man jetzt wieder ordentlich zur Zielposition mit einem Klick springen:
<div data-type="slider" data-value="true" data-device="dummy1" class="FS20 tap"></div>
<div data-type="slider" data-value="true" data-device="dummy1" class="FS20 tap horizontal"></div>
Man muss dafür class="tap" hinzufügen. Default ist nur Bewegen per Knopf anfassen und schieben.
Super, vielen Dank. Jetzt klappt das Dimmen.
Was ich noch nicht geschafft habe ist dass ftui beim Start oder im laufenden Betrieb den aktuellen Dimm-Wert übernimmt, wenn man ihn außerhalb von ftui verändert hat.
In meinem Verständnis müsste es sich diesen ja mit data-get-value holen. Wobei das ja dann ein Wert im Format wie z.B. dim52% wäre.
Müsste man da eine Regexp formulieren, die den Zahlenwert (hier 52) aus dem Reading extrahiert, um den Slider an die richtige Position zu bringen oder mache ich das zu kompliziert?
... und noch ein zweites Problem. In meinem Verständnis sollte der Dimmer einschalten, sobald er irgendeinen dim##%-Befehl bekommt. So ist das ja auch, wenn man direkt im Standard-WebUI den Slider bewegt.
Zumindest mit meiner Definition des Dimmers werden, wenn man den Slider bewegt, erst gar keine dim##%-Befehle abgeschickt, wenn der Dimmer "off" ist. Daher bleibt er auch off. Nur wenn er "on" ist, sendet ftui die dim##%-Befehle.
Meine Definition:
<div data-type="dimmer"
data-device="Dimmer_02"
data-get="state"
data-get-on="on|dim([0-9].*)%"
data-value="true"
data-set-value="dim$v%"
data-set-on="dim$v%"
class="FS20"></div>
Und dann noch das oben beschrieben Problem, dass der Slider nicht auf den korrekten Dim-Status springt.
Muss ich da evtl. mit einer Regex "dim" und "%" rausschmeissen, so dass der reine Zahelnwert bleibt? So etwas wie (nicht lachen!)
data-get-value="~ s/dim//"
Ich frage natürlich, weil es damit nicht klappt ;)
Das reading, das den Dimmwert der FS20-Dimmer aktuell und "live" enthält, scheint BTW "state" zu sein, nicht "STATE":
Readings
state dim100% 2016-02-05 17:05:19
Der Dimmer hat zwei Modi: einmal passiv - da gibt man lokal einen dim wert vor und einmal aktiven Mode - dafür braucht es ein extra Reading für dim. Musste mal in der Readme lesen. Bin gerade nicht am Gerät.
Die readme.md ist mein ständiger Begleiter ;)
Du meinst data-dim? Damit habe ich ebenfalls herumexperimentiert, aber das Problem ist halt, dass die FS20-Dimmer außer state keinerlei readings haben. Was immer man für "data-dim" einsetzt - z.B. DIM, wird ja dann störend in den Befehl eingebaut, also z.B.
set Dimmer_01 DIM dim50%
Dass der Dimmer beim Dimmen nicht automatisch einschaltet, finde ich auch nicht so tragisch. Dass aber der aktuelle Dim-Status beim Start der UI dargestellt wird (vorheriger Post), ist eigentlich schon wichtig. Wahrscheinlich habe ich da irgendeinen Fehler in data-get-value?