Hallo,
ich habe eben versucht auf die Schnelle eine Lautstärkeregelung für einen Homematic 4-fach Taster zu realisieren und bin nicht sicher, ob mein Ansatz schlau ist (er funktioniert zwar, aber so richtig glücklich bin ich damit „noch“ nicht) :rolleyes:.
Die Anforderung ist simpel. Ich halte den Taster links-oben gedrückt und die Lautstärke regelt sich so lange langsam hoch bis ich loslasse.
Hier mein aktueller Ansatz:
<?
Include_once "TM_Funktionen.php";
$Current = GetValue(54768 /*[Haus\1. Obergeschoss\Bad\Musik\Media Player\Lautstärke]*/);
$tmp1 = IPS_GetVariable(18570 /*[Haus\1. Obergeschoss\Bad\4-fach Wandtaster\Links oben\INSTALL_TEST]*/);
$LastUpdateInstallTest = $tmp1['VariableUpdated'];
$CurrentTimestamp = time();
$EventIDVolumeUp = 46870 /*[Haus\1. Obergeschoss\Bad\Musik\Lautstärke hoch\Lautstärke im Sekundentakt erhöhen]*/;
if($LastUpdateInstallTest <= $CurrentTimestamp - 3)
{
// Ereignis deaktivieren und Script beenden
IPS_SetEventActive($EventIDVolumeUp,False);
TM_Sprich('Bad','Lautstärke ' . $Current . '%',0);
return;
}
$Level = 2;
$New = $Current + $Level;
WAC_SetVolume(29857 /*[Haus\1. Obergeschoss\Bad\Musik\Media Player]*/,$New);
IPS_SetEventActive($EventIDVolumeUp,True);
?>
Das eine Ereignis reagiert beim Press-Long des Tasters und erhöht die Lautstärke um 2%. Dann wird ein zweites Ereignis für dieses Script alle Sekunde aktiviert. Ist das letzte Update der Variable Install_Test länger als 2 Sekunden her, dann wurde der Taster losgelassen und ich deaktiviere das Ereignis.
Das funktioniert zwar, aber natürlich kann es bis zu 3 Sekunden dauern, bis die Lautstärke nicht mehr hochgestellt wird, nachdem ich den Taster losgelassen habe.
Wie habt ihr das denn gelöst, bzw. habt ihr für Ideen?
Gruß
Thorsten