Hallo zusammen,
ich habe in FHEM einen Taster definiert, der zur Steuerung meines Garagentores dient und dazu immer für 1 Sekunde im Zustand geschlossen ist. Über FHEMWEB lässt sich das Garagentor wunderbar steuern.
In TabletUI funktioniert der Taster nicht sauber. Wenn ich ihn anklicke, bleibt er immer geschlossen, bis ich ihn erneut anklicke.
Es würde mich freuen, wenn mir jemand sagen könnte, was ich falsch mache bzw. was ich machen muss, damit der Taster auch in TabletUI für 1 Sekunde gedrückt wird.
Vielen Dank.
Grüße Mave
Wie sieht den dein Code aus im UI?
<header>GARAGE</header>
<div class="sheet">
<div class="row">
<div class="cell">
<div data-type="switch" data-device="ga_Taster"></div>
<div data-type="label">Taster</div>
</div>
<div class="cell">
<div class="big" data-type="symbol" data-device="ga_Garagentor"></div>
<div class="top-narrow">Garagentor</div>
</div>
</div>
</div>
Auch Gruß aus L.E.
Ich steuere natürlich diverse Aktoren auch mit Schaltern.
Aber diese Schalter tauchen UI bei mir nicht auf, wozu auch?
Definiere doch den Aktor als Schalter im UI (weiß jetzt nicht ob das so die korrekte Formulierung ist).
z.B.:<div class="inline">
<div class="medium" data-type="switch" data-device="Aktor" data-states='["off","on"]' data-fhem-cmd="set Aktor toggle" data-colors='["green","Red"]' data-icon="oa-light_pendant_light_round"></div>
<div data-type="label" class="medium inline ">Terasse</div>
</div>
So oder so ähnlich könnte es funktionieren.
Switch ist mehr ein bistabiler Schalter: einmal drücken > an , nochmal drücken > aus
Push ist ein monostabiler Schalter (Taster): nicht gedrückt > aus , gedrückt an
Folgender Code realisiert den Taster
<div data-type="push" data-device="ftuitest" data-set-on="1" data-set-off="0"></div>
In https://wiki.fhem.de/wiki/FTUI_Beispiel_Zeitschaltung (https://wiki.fhem.de/wiki/FTUI_Beispiel_Zeitschaltung) ist beschrieben, wie man mit switch und push verschiedene Zeitschaltungen realisieren kann. Eine der Varianten sollte hier anwendbar sein. Bitte an "useSetExtensions 1" denken.
(Ungetestete) Varianten:
<div data-type="switch"
data-device="Zeitschalter"
data-set-on="on-for-timer 1"
class="cell">
</div>
oder
<div data-type="switch"
data-device="Zeitschalter"
class="cell"
data-fhem-cmd='IF ([Zeitschalter:state] eq "off") (set Zeitschalter on-for-timer 1)'>
</div>
Zitat von: setstate am 03 Juli 2017, 21:35:11
Switch ist mehr ein bistabiler Schalter: einmal drücken > an , nochmal drücken > aus
Push ist ein monostabiler Schalter (Taster): nicht gedrückt > aus , gedrückt an
Folgender Code realisiert den Taster
<div data-type="push" data-device="ftuitest" data-set-on="1" data-set-off="0"></div>
Perfekt! Das war die Lösung.
Jetzt funktioniert es wie gewünscht.
Vielen Dank an setstate und alle Anderen, die mir geholfen haben.
Grüße Mave
Perfekt!
Noch ein kleiner Hinweis:
Mit der Push Lösung (#4) bestimmt man die An-Zeit mit dem Gedrücktlassen. Bleibt der Finger 3 Sekunden drauf, ist das Device im Fhem 3 Sekunden an.
Mit der Lösung #5 bestimmt man die Dauer durch die feste Vorgabe mit dem Timer.
... falls das relevant für die Funktion des Gerätes sein sollte.
Zitat von: setstate am 04 Juli 2017, 07:28:45
Perfekt!
Noch ein kleiner Hinweis:
Mit der Push Lösung (#4) bestimmt man die An-Zeit mit dem Gedrücktlassen. Bleibt der Finger 3 Sekunden drauf, ist das Device im Fhem 3 Sekunden an.
Mit der Lösung #5 bestimmt man die Dauer durch die feste Vorgabe mit dem Timer.
... falls das relevant für die Funktion des Gerätes sein sollte.
Okay, danke für den zusätzlichen Hinweis.
Das Lastenheft aus #1 wird nur von #5 abgedeckt. Oder war das nicht so wichtig? Ich ging davon aus, dass mit der definierten Einschaltdauer Schmutzeffekten wie Prellen entgegengewirkt werden soll.
Beste Grüße
Ulm32b