iobroker-community-adapters / ioBroker.iqontrol

Fast Web-App for Visualization.
MIT License
65 stars 24 forks source link

Level-Steuerung entprellen, zB bei Rolladen #79

Closed meia24 closed 5 years ago

meia24 commented 5 years ago

Summary Beim Verschieben von Level-Reglern (Rolladen, Licht etc) sollte der Level-Wert erst beim Loslassen bzw. beim nicht weiterverschieben des Reglers als State gesendet werden.

To Reproduce Ich habe als Gerätetyp "Jalousie" gewählt und beim Datenpunkt "Level" den entsprechenden State der Rolladensteuerung verknüpft. Dadurch wird in iqontrol beim Klick auf die Kachel ein Schieberegler zum Verstellen des Levels angezeigt. Wenn ich diesen verschiebe, dann werden auch alle Zwischenpositionen des Reglers beim Verschieben als State an das Objekt gesendet und nicht nur das gewünschte finale Level beim Loslassen des Reglers.

Expected behavior Erst wenn der Regler losgelassen wird (oder Alternativ: erst wenn der Regler nicht weiter verschoben wird und der Wert für eine Zeit x konstant bleibt) wird das Level als State an das Objekt gesendet > Entprellen

sbormann commented 5 years ago

Hallo, das ist ein guter Einwand. Bei Lichtern macht es ja Sinn, dass der Wert recht schnell aktualisiert wird. Bei Jalousien aber tatsächlich nicht. Welches ist die beste Lösung?

meia24 commented 5 years ago

Ich persönliche würde "beim Loslassen" bevorzugen. Dann dauert es ja i.d.R. etwas, bis die Rollade die Position erreicht hat, zum Nachregeln dann nochmal verschieben und loslassen.

Falls das nicht zu realisieren ist, dann eher: "wenn keine Änderung in den letzten 1 oder 2 Sekunde, dann verstellen. Wenn eine Änderung, dann nichts senden und warten bis keine weitere Änderung in 1 oder 2 Sek", aber NICHT: "alle 2 Sekunden senden". Denke der Rolladenmotor sollte hier so wenig wie möglich strapaziert werden ;-).

iqontrol ist übrigens echt super. Hatte vorher das alte "Mobile" genutzt, was aber extrem limitiert ist. Und VIS ist echt umständlich. Besten Dank für die Entwicklung!

sbormann commented 5 years ago

Hi, habe zwischenzeitlich 5 Sekunden als Aktualisierungsintervall gesetzt. Schau mal bitte, ob es so OK ist. Klar, logischer wäre es zu senden, wenn für Zeitraum X keine Änderung mehr erfolgt ist - das erfordert aber mehr Code-Umbau. Wenn es mit den 5 Sekunden so OK ist, würde ich es so lassen. LG! PS: Schließe den Issue, wenn es nicht OK ist, einfach erneut öffnen.