Weil das mein erster Thread ist möchte ich zuerst allen Hallo sagen und mich für die vielen Hilfreichen Themen im Forum bedanken, die ich bisher zur Fhem Umsetzung nutzen durfte :)
Leider bin ich noch nicht so ganz fix mit dem Fhem, somit benötige ich Hilfe bei der Umsetzung eines TV-Timers mittels eines Select:
<div data-type="select" data-device="tv_schlafzimmer" data-items='["00:30:00","01:00:00","01:30:00","02:00:00"]' ata-alias='["30 Minuten","60 Minuten","90 Minuten","120 Minuten"]'></div>
Beim Auswählen eines Eintrages soll der Wert z.b. 00:30:00 in folgenden Befehle ausgeführt werden:
define aktionTimer at +00:30:00 set SamsungSchlafzimmer POWEROFF;;delete aktionTimer
Bei der Select Option "data-set" kann ja nur direkt was gesendet werden, die Frage ist wie kann ich über den data-set ein Fhem Befehl senden oder das select so nutzen um die timer Funktion zu erstellen.
mfg,
Seek
Das Select macht bei Änderung ein "set" auf dem "device" ...
Zu Beginn musst du das "at" erstellen:
define aktionTimer at +00:00:00 set SamsungSchlafzimmer POWEROFF
Das "at" bleibt dann bestehen. Kein Grund es zu löschen.
In der Tablet-UI muss das Widget auf das at zeigen, weil dass willst du ja ändern. Also "aktionTimer" und nicht "tv_schlafzimmer".
Ausserdem musst du sagen was du setzten willst. In diesem Fall "modifyTimeSpec" (siehe auch https://fhem.de/commandref_DE.html#at)
Und die data-items müssen ein "+" bekommen. Du willst ja immer EINMALIG IN X Minuten ausführen lassen.
<div data-type="select" data-device="aktionTimer" data-items='["+00:30:00","+01:00:00","+01:30:00","+02:00:00"]' data-alias='["30 Minuten","60 Minuten","90 Minuten","120 Minuten"]' data-set="modifyTimeSpec" ></div>
Damit ist der resultierende Befehl bei Änderung:
set aktionTimer modifyTimeSpec +00:30:00
Ist ungetestet, ich hoffe ich habe keinen Mist erzählt.
Gruss Farion
Hello,
danke für die idee aber ich hab grad gemerkt das der
define aktionTimer at +00:01:00 set SamsungSchlafzimmer POWEROFF
sich automatisch nach dem ausführen selber löscht -> ein manueller delete ist somit nicht notwendig, aber die Idee dadurch leider auch nicht Zielführend.
Werds wohl mit nem input feld und einem button lösen, wo der button das inputfeld per JS abfragt und sich die Zeit hollt.
Falls noch mehr ideen bestehen bitte gerne ;)
mfg,
Seek
Wie wäre es mit:
data-cmd="define aktionTimer at"
und den Rest dann in den data-items unterbringen?
Damit wird das per default vorgegebene set übergangen.
Statt define für den timer könnte man auch defmod nehmen, dann kann man den auch noch ändern.
Super danke Sinus du bist der beste ;D... wusste nicht das data-cmd überall einsetzbar ist, bin noch relativ neu und versuche nach und nach Sachen zu integrieren...
Die Idee war falls man am Abend ein Film anschaut, dass man die Zeiten dem Film anpasst und auch wenn man mal einschläft, schaltet sich der TV aus. Die Standard Konfig des TVs ist ja sehr fix eingestellt und kann nicht auf Standard Filmlängen definiert werden. Fine Tuning der Zeiten folgt noch ;)
Anbei der Code, falls auch wer ein Offtime für den TV (Modul STV) benötigt:
<div data-type="select"
data-items='["","define timerSZ at +00:30:00 set SamsungSchlafzimmer POWEROFF","define timerSZ at +00:50:00 set SamsungSchlafzimmer POWEROFF","define timerSZ at +01:45:00 set SamsungSchlafzimmer POWEROFF","define timerSZ at +02:05:00 set SamsungSchlafzimmer POWEROFF"]'
data-alias='["TimmerOFF","30 Minuten","50 Minuten","105 Minuten","125 Minuten"]'
data-cmd="delete timerSZ;"></div>
Durch das "delete timerSZ;" lösche ich immer zuerst den Timer, falls man danach oder zwischen durch auch mal die Settings umstellen möchte bzw. beim Aktivieren des ersten Eintrages ist er komplett weg.
mfg,
Seek