Hallo zusammen,
meine Suche war bislang leider erfolglos, daher hier meine Frage:
Ich habe einen Fibaro Dimmer im Einsatz und möchte diesen über die TabletUI steuern. Das steuern ansich geht auch, ich kann ihn ein/ausschalten und Werte setzen. Aber das auslesen des aktuellen Wertes geht nicht.
Leider übermittelt der Dimmer den Wert im state folgendermaßen: "dim 80" z.b. für 80%. Daher war mein Versuch aus dem Reading via Regex nur die Zahlen auszulesen, aber das führt leider nicht zum Erfolg. Ggf ist auch mein Regex einfach nur kaputt?
<div data-type="dimmer" data-device="FL.Licht" data-get-on="on|dim ([0-9].*)" data-set="dim" data-get-value="([0-9],{2})" data-get-off="off" class="cell"></div>
Die Erkennung von on/off sowie das setzen eines Dimmerwertes geht einwandfrei. Vielleicht hat ja jemand von euch eine Idee, was in "data-get-value" rein muss, damit der Dimmer-Wert angezeigt wird?
Danke!
Mach doch ein extra Userreading für den Wert:
dim {ReadingsVal("FL.Licht","state","") =~"dim"? ReadingsNum("FL.Licht","state",""):ReadingsVal("FL.Licht","dim","")}
und dann den Wert mit
data-dim="dim"
holen.
... Guter Punkt. Hab ich irgendwie weg-ignoriert. Vielen Dank - läuft 1a!
"dim 80" mit Leerzeichen?
und sowas??
data-get-value="dim\s([0-9]{1,3})"
Ich empfehle, immer hier zu testen: https://regex101.com/
Zitat von: setstate am 20 Juli 2016, 21:22:16
"dim 80" mit Leerzeichen?
und sowas??
data-get-value="dim\s([0-9]{1,3})"
Der Regex ist korrekt (meiner von oben hat auch funktioniert im Test), aber funktioniert im TUI leider trotzdem nicht :(
Im widget Label gibt es "data-part=" wobei der Value beim Leerzeichen zerlegt wird.
Bei "dim 80" wäre das also
data-part="2"
@setsate, könnte man doch im dimmer auch einbauen....
alternativ mit dem Userreading:
anstatt
dim {ReadingsVal("FL.Licht","state","") =~"dim"? ReadingsNum("FL.Licht","state",""):ReadingsVal("FL.Licht","dim","")}
lieber (ungetestet)
dim {ReadingsVal("FL.Licht","state","") =~ s/dim\ //}
Hallo, ich habe auch meine Probleme mit der Anzeige des Dimmer-Wertes.
Mit dem userreading
dim {ReadingsVal("ZWave_SWITCH_MULTILEVEL_33","state","") =~ s/\D+//r}
und
<div
data-type="dimmer"
data-device="ZWave_SWITCH_MULTILEVEL_33"
data-get-on="dim|on"
data-get-off="off"
data-set-on="on"
data-set-off="off"
data-dim="dim" class="big" ></div>
funktioniert es, aber lässt sich die Definitoin des data-type dimmers nicht ohne zusätzliches userreading schreiben?
Meine Versuche über data-get-value sind sämtlichst fehlgeschlagen. Aber vielleicht hat ja noch jemand einen Tip für mich auf Lager.
hast du mittlerweile eine Lösung ohne userreading gefunden? Ich habe durch das zusätzliche userreading Probleme mit einem Notify.
Welcher Art denn? Normal sollte ein weiteres Reading ja nicht stören, ist eher die Frage ob am Notify dann was nicht stimmt.
Ich habe meinen ZWave Dimmern allen ein UserReading "dimVal" verpasst, welches "off" und "dim xx" entsprechend in ein rein numerisches Reading mapped.
Sowas ist allgemein ja nicht verkehrt, und mache ich auch bei ähnlichen Zwave Eigenheiten wegen denen man für einen eigentlich numerischen Wert irgendwelche Texte oder Textanteile bekommt.
Das stört ja nicht nur in TabletUI, sondern auch z.B. bei Plots.
Außerdem kann man so über mehrere Systeme die Readings normalisieren.
In Fhem machen das verschiedene Module ja oft sehr unterschiedlich.
Meine Hue Stripes haben z.B. auch ein dimVal UserReading, obwohl es hier nur einen 1:1 Kopie vom pct Reading ist.
Aber so kann ich mir eben sicher sein, dass alle dimmbaren Lampen in meinem System eine einheitliche Möglichkeit der Helligkeitsabfrage bieten.
Das erleichtert z.B. auch die Nutzung von Templates in TabletUI, da man eben nicht nach Hardware unterscheiden muss.