Hallo,
bräuchte Eure Hilfe bei meinem Fibaro Dimmer. Leider bekomme ich keine aktualisierten Werte im Dimmer in Tablet UI angezeigt. Habe im Device in FHEM ein UserReading, welches mir einen reinen Zahlenwert liefert (state_01).
Habe folgenden Code:
<div data-type="dimmer"
data-device='Spots_Esszimmer'
data-get="state_01"
data-get-on="([0-9].*)"
data-get-off="0"
data-set-value="dim $v"
data-set-on="dim 99"
data-set-off="dim 0"
class="bigger cell">
</div>
Habt Ihr eine Idee?
Danke.
LG
Matthias
Moin.
attr Spots_Esszimmer event-on-change-reading state_01
Hat mir immer bei userReadings und Dummy's geholfen ;)
Grüße^^
Hat leider nichts gebracht, aber Danke.
LG
Matthias
Ok.
Dann schauen wir jetzt mal auf dein RegEX.
1-99 vom Dimmer-Device sind Werte wenn die Lampe an/gedimmt ist.... und 0 wenn sie aus ist. Sehe ich das richtig?
dann ist dein data-get-off="0" schon mal richtig.
Aber dein data-get-on="[0-9].*" heißt: "0 oder 1 oder 2 oder 3 oder 4 .... oder 9 und egal was danach kommt"
Versuch mal ....
data-get-on="[1-9]{1}|[0-9]{2}"
Das heißt übersetzt: ({1}=einstellig, {2}=zweistellig):
1 oder 2 oder 3 ... oder 9 ODER 00 oder 01 oder 02 ... oder 10 oder 11 ... oder 99 (wenn ich jetzt nicht auf dem ganz flaschen Weg bin ::) )
00, 01 usw. wird/sollte niemals vorkommen .. also egal und von uns ignoriert... und in deinem UserReading hast du einen reinen Zahlenwert... heißt: Hinter der Zahl wird/sollte nichts mehr kommen... somit kannst du .* weg lassen.
Bin auf deine Antwort gespannt ;D ;D
Grüße^^
Hallo Roman,
Dein Vorschlag hat leider nicht funktioniert. Habe jetzt folgenden Code für data-get-on verwendet:
"!off"
Bekomme damit aber keinen aktuellen Wert.
Hast Du noch eine andere Idee???
LG
Matthias
Schau dir das hier nochmal GANZ genau an:
https://github.com/knowthelist/fhem-tablet-ui#dimmer-widgets (https://github.com/knowthelist/fhem-tablet-ui#dimmer-widgets)
speziell data-dim.
Dann weiß ich aber auch nicht weiter... Schon gar nicht weil ich nicht weiß was für ein device du hast. Und z.B. FS20 habe ich selber nicht... deswegen könnte ih dazu erst recht nichts sagen.
Grüße^^
Hi Matthias,
ich habe ein ähnliches Problem mit meinen FS20-Dimmern (deren Status ist kein Zahlenwert, sondern Werte wie "dim50%"). Ich habe auch den reinen Zahlenwert in ein Userreading extrahiert, aber es ist auch mir nicht gelungen, dass das Dimmer-Widget diesen Wert ausliest. Habe in einem anderen Thread gefragt (http://forum.fhem.de/index.php/topic,49733.msg415166.html#msg415166), warte noch auf Antwort.
Grüße
Martin
Ist das eine Möglichkeit?
<div data-type="dimmer" data-device='myFS20Dimmer'
data-set-on="dim$v%"
data-set-off="dim0%"
data-set-value="dim$v%"
data-get-on="dim([1-9]\d?)?%"
data-get-off="dim0%"
class="FS20"></div>
Das ist im Simple Mode -> Aus und On mit einem lokal festgelegten Dim-Wert. Alle Werte werden STATE geholt und aus dem 'dim' und '%' Salat raus interpretiert. Senden auch gegen STATE.
Wenn du den Dimmwert dynamisch von FHEM willst, muss man data-dim angeben und einen Parameter für an/aus -> data-get. Weiß aber jetzt nicht aus der Kalten, wie das bei dir heißen könnte:
<div data-type="dimmer" data-device='myFS20Dimmer'
data-get="myOnOffReading"
data-get-on="1" data-get-off="0"
data-set=""
data-set-on="on" data-set-off="off"
data-dim="myDimReading"
class="FS20"></div>
Hallo setstate,
Danke für deine Vorschläge. Komme erst die Woche über dazu es auszuprobieren, gebe dann direkt Rückmeldung.
LG
Matthias
Zitat von: setstate am 26 Februar 2016, 07:54:38
Ist das eine Möglichkeit?
Danke setstate, damit werde ich es mal versuchen.
Zitat von: setstate am 26 Februar 2016, 07:54:38
Wenn du den Dimmwert dynamisch von FHEM willst, muss man data-dim angeben und einen Parameter für an/aus -> data-get. Weiß aber jetzt nicht aus der Kalten, wie das bei dir heißen könnte:
<div data-type="dimmer" data-device='myFS20Dimmer'
data-get="myOnOffReading"
data-get-on="1" data-get-off="0"
data-set=""
data-set-on="on" data-set-off="off"
data-dim="myDimReading"
class="FS20"></div>
Ich haben noch "data-set-value="dim$v%"" eingefügt und zwei User-Readings für den Dimmer angelegt, eines für an/aus, eines für den aktuellen Dimmwert ohne "dim" und "%". Damit aktualisiert sich die Anzeige zwar in ftui, aber das Problem bleibt, dass beim Dimmen aus ftui der Inhalt von data-dim in den Befehl gepfriemelt wird, also
set Dimmer_07 myDimReading dim68%
statt
set Dimmer_07 dim68%
Krieg ich das irgendwie raus?
Aber genau über data-set-value kommt bei dir dieses "dim" rein. Das musst du weglassen, damit der default wirkt, oder data-set-value="$v" angeben. Dann wird nur der Zahlenwert gesendet
Zitat von: setstate am 29 Februar 2016, 17:09:39
Dann wird nur der Zahlenwert gesendet
Möglicherweise stehe ich ja auf der Leitung, aber der FS20-Dimmer braucht doch von Natur aus einen Befehl wie
set dimmer dim61%
und eben nicht den reinen Zahlenwert. Sonst müsste man ja noch einbauen, dass sich der Dimmer den Dimmwert aus dem Userreading wieder selbst zusammenbastelt (stateFormat?)
Das Reading für dim muss set und get übernehmen. Nur Wert holen , aber Set nur auf den Status ist nicht möglich.
Da könnte ich nur wieder für FS20 eine Sonderbehandlung einbauen.
ok, mit stateFormat ({"dim".ReadingsVal("Dimmer_07","dimstate",0)."%"}) bastelt sich der Dimmer jetzt aus dem reinen Zahlenwert sein dimxx%-Befehl.
Aber wie kann ich aus ftui den Dimmwert in das User-Reading "dimstate" schreiben?
Zitatset Dimmer_07 dimstate 68
funktioniert jedenfalls nicht: Und setreading würde zwar den Wert setzen, ihn aber nicht an den Dimmer senden.
Daher die Frage, auf die ich keine Antwort finden konnte: Wie setzt man den Wert eines Userreadings?
edit: war wohl doch Blödsinn nach der Anwort von setstate zu schließen.
Zitat von: setstate am 29 Februar 2016, 17:42:27
Da könnte ich nur wieder für FS20 eine Sonderbehandlung einbauen.
Das wäre ganz wunderbar. Der Dank von Millionen FS20-Dimmern wäre Dir gewiss ;)
Wenn ich irgendwas helfen kann, lass wissen.
Grüße
Martin
Hallo setstate,
habe Deine dynamische Variante ausprobiert, hat aber nichts gebracht. Der Dimmer ist von Fibaro (ZWAVE), state gibt z.B. den Wert dim 99 aus.
Hast Du noch eine Idee?
LG
Matthias
Ich hab meinen Fibaro Dimmer nicht als Dimmer Widget, sondern als Switch + Slider konfiguriert.
Aber evtl. kannst du für deine Lösung daraus ja auch was ableiten:
<header>Schlafzimmer</header>
<div data-type="switch"
data-device="RGBWController01"
data-get="dimmerVal"
data-cmd="set"
data-get-off="0"
data-get-on="[1-9][0-9]*"
data-set-on="on"
data-set-off="off">
</div>
<div data-type="slider"
data-device="RGBWController01"
data-get="dimmerVal"
data-set-value="dim $v"
data-min="0"
data-max="99">
</div>
Das Reading dimmerVal ist ein UserReading, welches den HexWert aus dem Reading basicReport als eine Dezimalzahl zur Verfügung stellt:
dimmerVal: { hex(ReadingsVal($name,"basicReport",0)) }
So funktioniert das Ganze jedenfalls einwandfrei.
Der Switch schaltet mit der zuletzt verwendeten Dimmerstufe ein/aus.
Wird über den Switch geschaltet aktualisiert sich der Slider und umgekehrt.
Auch wenn ich z.B. über FHEM oder Bewegungsmelder das Licht aktiviere wird die Änderung in FTUI entsprechend angezeigt.
Der "Schlafzimmer" Part aus diesem Screenshot zeigt wie das dann aussieht:
(https://www.dropbox.com/s/m5k9dvcwmzis408/TabletUI3.PNG?dl=1)
Danke, konnte ich verwenden.
LG