NEWS
Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen
-
Hallo zusammen,
ich versuche meine Musiccast-Systeme mit dem Opple 6-fach Button und deconz zu steuern. Das klappt soweit wunderbar.
Insbesondere bei der Lautstärkesteuerung hab ich jedoch ein Problem.
Ich habe eine einfaches Script geschrieben, mit dem ich die Lautstärke Tastenklick für Tastenklick eine Stufe lauter oder leiser schalten kann. Hierbei ist jedoch der WAF gleich null. Meine Erwartung ist, dass ich den Taster halte und so lange ich ihn halte wird es lauter bzw. leiser. Praktischerweis liefert der deconz-Adapter ja auch nicht nur Touch-Events, sondern auch, dass der Button gehalten wird.
Hier dachte ich, so lange ich die taste halte "hold" wird mit je 250ms die Lautstärke ein Stufe erhöht. Das klappt aber leider nicht, sondern es geht nur um eine Stufe.
Dann hatte ich mir eine Schleife ausgedacht, die dann abbrechen soll, wenn "hold" nicht mehr "true" ist. Leider landet das aber bei mir in einer Endlosschleife und mein Java-Adapter verabschiedet sich, so dass ich ihn neu starten muss.
Kann mir jemand vielleicht helfen und mir mit dem Blockly-Script so helfen, dass die Lautstärke ansteigt, so lange ich die Taste halte. Danke.
(Use-Case: Der Player hängt im Bad an der Wand und ist zur Bedienung nicht erreichbar, daher Opple als Fernbedienung)
-
@RayJayVaughan sagte:
wenn "hold" nicht mehr "true" ist.
Geht "hold" auf false, wenn die Taste losgelassen wird ?
Wenn ja, dann triggere auf "wurde geändert", starte mit * falls Wert mache* ein Intervall und stoppe das Intervall im sonst-Zweig.Sollte "hold" true bleiben (was bei Button üblich ist), muss auf wahr getriggert werden und das Intervall muss mit "Release after press" bzw. "Release after hold" gestoppt werden:
-
Klasse, vielen Dank. Ich habe es umgesetzt und zur Sicherheit noch eine Volumenobergrenze eingeführt, weil ich bei meinen Experimenten ein paar Male den Stecker ziehen musste, um Volume nicht auf Unendlich zu pumpen
Folgendes Script habe ich jetzt im Einsatz und es funktioniert wunderbar:
Danke. Da hab ich echt wieder was dazugelernt.
-
@paul53 ich habe diesen Script von dir gesehen, verstehe ihn aber nicht. Kannst du mir sagen was du in den einzelnen Feldern eingesetzt hast, ich abe ja nur je einen Button für + und einen für -
-
@robert-0 sagte: ich abe ja nur je einen Button für + und einen für -
Wie verhalten sich die Datenpunkte beim Drücken und Loslassen?
-
@paul53 solange ich auf der Taste bleibe passiert nichts, erst beim loslassen der Taste. Manuell kann man den Wert 1 setzen, macht das Gleiche.
-
@robert-0 sagte: passiert nichts, erst beim loslassen der Taste.
Beim Drücken der Taste (zu Anfang) passiert auch nichts?
-
@robert-0 ja das ist so
-
@paul53 ja das ist korrekt.
-
@robert-0 sagte: ja das ist so
Dann kann man keine lange Tastenbetätigung auswerten.
-
@paul53 das sehe ich auch so, wäre aber super man könnte damit trotzdem eine stufenlose LS Regelung realisieren. Ich habe das mal mit einem Blockly versucht mit eher kläglichem Erfolg
-
-
@paul53 das ganze funktioniert ja via Harmony Hub und APP auch.
-
@robert-0 sagte: das ganze funktioniert ja via Harmony Hub und APP auch.
Kenne ich nicht.
Wie soll die kontinuierliche Lautstärke-Regelung erfolgen (Vis, Hardware-Taster, ...)?
Gibt es überhaut einen Datenpunkt, der die Lautstärke als Zahlenwert enthält?
Hat diese Lösung mit Steuerung über Vis nicht funktioniert? -
@paul53 hab es versucht, vielleicht habe ich eine Fehler gemacht, hat aber nicht richtig funktioniert. Ich versuche mal via Sennheiser einen besseren Datenpunkt zu erhalten via Netzwerksteuerung. Danke für deine Bemühungen.
-
@robert-0 sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
@paul53 solange ich auf der Taste bleibe passiert nichts, erst beim loslassen der Taste.
Dann sind es aber keine aqara opple Tasten, wie in diesem Thread hier beschrieben.
Die gibt es mit 2, 4 oder 6 Tasten.
Und die Tasten können jeweils click, doubleclick, tripleclick und longpress.
Und mit longpress kann man bei denen eine kontinuierliche Verstellung durchführen. Mache ich z.B. für Helligkeit und Weißton. Nicht gerade super-responiv, geht aber.
Alternativen wären Drehgeber. Hier gäbe es- ikea synfonisk. Die geben Ticks aus, und ein Stilstandssignal
- Terncy Smart Dial. Die geben während des Dregens gar nichts aus, sondern erst nach dem Stillstand die Ticks
-
@rayjayvaughan sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
Opple 6-fach Button
Also, ich steuere mit einem Ikea Symfonisk die Echo-Lautsprecher bei mir im Erdgeschoss. Nach vielen probieren bin ich dabei zu einer Lösung gekommen. Eventuell kannst du ja vom Funktionsprinzip was für deinen opple Taster abschauen (oder falls du den Symfonisk nimmst, den fand ich intuitiver):
Zuerst muss man einmal "klicken", also Taste A drücken. Dann geht er in den "ich will die Lautstärke verstellen" Modus.
Erst dann reagiert er auch die Drehbewegung. Feedback erhalte ich indem auf einem Tablett im Sichtbereich ein Popup aufgeht:
Das könnte man eventuell auch mit etwas machen das piept ... oder eine LED Anzeige.Gleichzeitig startet ein Globaler Timer. Das ist ein Datenpunkt in den ich True schreibe. Darauf reagiert ein weiterer Trigger.
Dieser startet einen Timeout in einer Variablen (10 Sekunden) und prüft in einer Endlosschleife die aktueller zeit zur Zeitdifferenz. Ist die höher 10 wird der Dialog geschlossen.
Dann drehe ich auf Wunschlautstärke, jeder dreh macht einen Tick der einen Datenpunkt um einen nach oben zählt.
Dabei wird jedesmal auch wieder der Timeout-Wert zurückgesetzt so das die 10 Sekunden von neuen beginnen:
Ginge auch mit Schleife die- reagiert wenn die Richtung/der Button gedrückt wird
- Lautstärke um einen erhöht
- kurz wartet, z.B. 100ms
- prüft ob er Button noch gedrückt ist
- von vorne anfängt
Wenn der Button nun noch mal gedrückt wird, wird die Lautstärke gesetzt, als Feedback wird die Schrift im Popup rot. Passiert 10 Sekunden nichts wird das Popup einfach so wieder geschlossen (und alle Variablen im Skript wieder zurück gesetzt.
Mein Konzept lebt von der Anzeige der Lautstärke in der VIS als Popup.
Aber das könnte man ja eventuell durch etwas anderes ersetzten. WLED-Streifen zum Beispiel (wechselt auf bestimmte Farbe für den Setzen Modus, Drehen lässt mehr oder weniger LED aufleuchten, blinken für setzen).
Oder eine farbige Lampe. Oder etwas das einmal piept für das setzen und dann lauter oder leiser.Nachtrag: Ich sehe gerade das ich den Timer in einen Datenpunkt schreibe und zurücksetze. Naja, war eines meiner allerersten Blockly-Skripte. In eine Variable wäre besser vermute ich. Aber es funktioniert.
-
@bananajoe sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
@rayjayvaughan sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
Zuerst muss man einmal "klicken", also Taste A drücken.Warum? der überträgt die Drehbewegungen auch ohne das.
Wenn der Button nun noch mal gedrückt wird, wird die Lautstärke gesetzt, als Feedback wird die Schrift im Popup rot.
Synfonisk hat doch einen Datenpunkt, daß NICHT mehr gedreht wird "rotate_stop".
Mein Konzept lebt von der Anzeige der Lautstärke in der VIS als Popup.
Warum nicht direkt die Lautstärke als Rückmeldung nutzen?
-
@klassisch sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
@bananajoe sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
@rayjayvaughan sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
Zuerst muss man einmal "klicken", also Taste A drücken.Warum? der überträgt die Drehbewegungen auch ohne das.
Das stimmt. Der liegt aber bei mir auf der Fensterbank da wir die Lautstärke in der Regel am Tisch sitzen verstellen.
Und beim "aufheben und näher zu mir holen" kann es schon mal versehentlich einen Dreher geben.
Ja, ginge auch ohne.Wenn der Button nun noch mal gedrückt wird, wird die Lautstärke gesetzt, als Feedback wird die Schrift im Popup rot.
Synfonisk hat doch einen Datenpunkt, daß NICHT mehr gedreht wird "rotate_stop".
Und dann müsste ich warten bis er (mein Skript) das erkennt und die Laustärke setzten. So kann ich noch abbrechen oder direkt die Laustärke setzen. Siehe auch Antwort zur nächsten Frage:
Mein Konzept lebt von der Anzeige der Lautstärke in der VIS als Popup.
Warum nicht direkt die Lautstärke als Rückmeldung nutzen?
Weil ich eine ganze Gruppe von Amazon-Lautsprechern steuere. Ja, ich könnte die Lautsprecher-Gruppe direkt steuern. Aber es sind verschiedene Geräte an verschiedenen Positionen. Und da braucht jeder seine eigene, auf die anderen Geräte abgestimmte Lautstärke. Also steuere ich die Küche an und WoZi ist dann Küche + 10
Mhh, man könnte natürlich trotzdem direkt die Lautstärke setzen. Hab ich am Anfang auch. Klang aber nicht flüssig bzw. ich hatte mit Rückkopplungen im Skript zu Kämpfen - Ich drehe den Echo z.B. von 20 auf 40. Jedes Mal wird der Datenpunkt geändert / um 1 erhöht. Der Echo hat aber bei 33 gerade übernommen und meldet den Wert zurück, zack ist er wieder bei 33 statt 40. Müsste man sonst beim drehen in einer Variablen puffen und am Ende noch mal setzten.
Klang aber halt nicht "flüssig". Und da das Tablett da eh steht ... -
@bananajoe sagte in Opple-Taster Halten / hold "stufenlos" Lautstärke erhöhen:
Müsste man sonst beim drehen in einer Variablen puffen und am Ende noch mal setzten.
Ja, genau, so mache ich es. Die Variable muß man halt bei allen Inputs mitführen.
Ich nutze das in zweierlei Ausführung:
- Farbtemperatur: Hier mache ich alles SW-mäßig. Wie gesagt, nicht gerade blitzschnell, aber es geht. Und die Puffervariable hat dann immer den richtigen Wert.
- Helligkeit. Hier kann man synfonisk direkt mit der ikea Leuchte (Floalt) koppeln (binding). Das geht dann sehr flüssig, sehr angenehm. Aber dann weiß ich erst mal nicht, was eingestellt wurde. Dazu nutze ich dann das rotate_stop Signal. ca. 10 Sekunden nach diesem wird dann der Zustand der Leuchte ausgelesen und in die Puffervariable eingespeichert. Über die Opple Taste kann ich die Helligkeit natürlich auch verstellen. Das dann allerdings rein per Script. Programmtechnisch ist dieser Pfad einfacher, aber natürlich nicht so angenehm zu bedienen.