Slider auf "langsamen" Variablen

Moin!

Ich sitze grade an einer neuen Visu und stehe dabei mal wieder vor einem alten Problem, was ich in der Vergangenheit einfach weg-ignoriert habe, aber nun doch lösen möchte.

Es geht um das Einstellen von Werten über Slider aus IPSView. Dabei möchte ich eine möglichst „flüssige“ Bedienung erreichen, das bedeutet Aktualisierungsintervalle von idealerweise 10 ms. Nun sind aber die Variablen, die ich damit schalten möchte, bzw. deren Aktionen, einfach zu langsam - z.B. HomeMatic oder SONOS Volume Control. Die Slider fangen an zu „springen“, da sie nicht so schnell aktualisiert werden können.

Dabei geht es mir gar nicht darum, dass die Aktualisierung so rasend schnell nachkommt, sonders es dreht sich nur um die Darstellung: In der Visu soll der Slider ja auch einen Wert anzeigen, damit bei der Bedienung abgelesen werden kann, wo die Reise hin geht. Dieser Wert soll sich also nun in ca. 10 ms Abständen aktualisieren, die tatsächliche Action dahinter kann gerne langsam nachfolgen. Ich habe mir nun ein Hilfskonstrukt gebastelt, was mir aber so kompliziert erscheint, dass ich das nun nicht dutzende male für alle möglichen Slider adaptieren möchte und daher hier die Frage, ob jemand dazu eine bessere Idee hat.

Folgendermaßen habe ich es gelöst:

  1. Eine zusätzliche Varianble erstellt, die an den Slider gebunden wird. Diese Variable ist nicht direkt mit dem zu schaltenden Gerät verbunden, sie kann also extrem schnell mit dem Slider mitziehen.
  2. Eine Synchronisation zwischen dieser Hilfsvariable und der originären des Gerätes gebaut. Hier habe ich einen Ablaufplan verwendet, da dieser so schön das Abbrechen eines bereits laufenden Plans und das Warten implementiert hat.

Hier die Details:

CleanShot 2022-10-03 at 13.05.58

Wenn es nix besseres gibt, mache ich mir nochmal Gedanken, wie ich das selbe Prinzip mit etwas Scripting schöner, hin bekommt. Aber das Prinzip ist hoffentlich klar geworden und obwohl ich ja vermutlich nicht der einzige mit einer solchen Herausforderung bin, habe ich im Forum nur einen Eintrag zu „springenden Slidern“ gefunden, der nicht passte.

Habt ihr gute Ideen, wie es besser gelöst werden könnte?

Danke Euch
Golo

Gibt es denn in der Instanz den Punkt „Schalten simulieren“ nicht mehr ?
Der machte doch genau sowas.
Hab aber kein HM mehr hier kann ich jetzt nicht schauen wie der genau heißt.

Ansonsten ja, mit ein wenig Script geht das sicher eleganter.
gruß
bb

Hallo bb,

danke für den Hinweis mit dem Schalter „Status emulieren“! Der ist bei mir auch schon gesetzt und dennoch "springt " der Slider, da im Hintergrund ja die Schaltbefehle ausgeführt werden und dann einen Wert zurück melden, der schon veraltet ist. Hilft daher leider nicht :frowning:

CU
Golo

Ich kenne das Problem mit der langsamen Reaktion von HM. Nicht immer, aber dieses tritt anscheinend auf wenn der Aktor weiter weg von der CCU sitzt und/oder über zB Repeater kommuniziert.

Ich finde die Lösung von Dir mit der Hilfsvariablen eigentlich recht elegant gelöst oder gibt es da immer noch Probleme? Denn egal was passiert, ob die Aktion richtig ausgeführt wird oder nicht, der reale Status kommt am Ende doch immer zurück (vom Aktor selbst) oder ?

Hi alk1 - keine Probleme. Die Lösung funktioniert einwandfrei und du hast Recht, der Status kommt auch immer vom Aktor wieder zurück. Ist also durchaus „robust“ . Nur ganz schön Aufwand. Cool wäre es, wenn im IPSView die Slider etwas in der Art einer Eigenschaft hätten wie „zeige zugeordneten Wert als Text an“, so dass dann die Darstellung des „gelideten“ Wertes in der UI gegeben ist. Wenn es das gäbe, könnte das Sendeintervall einfach auch 1000-2000 ms gestellt werden.

Aber das geht doch mit der Live - Anzeige.
Wenn ich meine Slider bewege bzw verändere, dann wird der Wert aktualisiert (Temperatur oder Helligkeit) Oder meinst Du etwas anderes?

Hmm. Vielleicht kenne ich das Feature „Live - Anzeige“ nicht, wo finde ich das? Wenn ich einen Slider erstelle, hat der nirgends eine Option um einen Wert anzuzeigen. Oder anders gefragt: Wenn du im Screenshot z.B. die Lux bei der Helligkeit anzeigst, was sind das für Steuerelemente? Ich verwende „VariableLabel“ für die Anzeige des Wertes. Sowas wie ein „SliderLabel“ oder ähnliches habe ich nicht gefunden.

Ja, das ist Variabel Label von der Variablen, die ich über den Slider verstelle. Dieser Wert wird aber live angezeigt also ändert sich sobald man den Wert über den Slider verändert

Ok, dann habe ich es so auch. Nur wenn ich die echte Variable nehmen, dann klappte es halt nicht sauber, daher die Hilfsvariable, damit der Wert sich „smooth“ mit ändert. Damit werde ich dann erst einmal bei meinem Konstrukt bleiben, mir fällt nichts besseres ein. Vielleicht irgendwann noch einmal über ein generisches Script…

Danke für deinen Input!