Hallo,
ich habe ein Problem mit dem Volume Widget und dem dazugehörigen Werte setzen. Das war meiner Meinung nach nicht immer so. Ich kann nicht sagen wie lang das schon so ist und warum. vielleicht kann jemand helfen.
Ich habe einen dummy, in dem ich einen Wert zwischen 0 und 480 schreibe um eine Funktion der Heizung damit zu steuern.
Hier mal der dummy:
Internals:
FUUID 5c51c5c4-f33f-6467-8b37-e73ab086c23e9ff4
NAME FanSelector_Unsched.1
NR 110
STATE 300
TYPE dummy
READINGS:
2020-09-06 16:28:38 state 300
Attributes:
group THZ
room Heizung
setList state:slider,0,1,480
webCmd state
Dazu habe ich ein Volume Widget im FTUI:
<div data-type="volume" data-device='FanSelector_Unsched.1' data-get="STATE" data-min="0" data-max="480" class="small dim-back"></div>
<div data-type="label" class="darker bottom-space">Stufe1 in Min</div>
Setze ich den dummy per FTUI auf 300, schreibt er mir in FHEM 400 in den dummy.
Warum?
Ich würde data-get="state" und auch data-set="state" definieren.
Kann ich probieren....aber er setzt und bekommt ja standartmäßig state...oder?
Zitat von: Stonemuc am 07 September 2020, 09:17:40
Kann ich probieren....aber er setzt und bekommt ja standartmäßig state...oder?
Laut Doku im Wiki nicht. Bei data-get ist STATE der Standardwert und bei data-set nix.
state oder STATE macht keinen Unterschied, solange Du kein stateFormat definierst, aber bei data-set würde ich auf jeden Fall was setzen.
Kein Unterschied....woran liegt es dann? Kann ja nur ein Fehler vom Widget sein...
Hmm.. hab ein bischen Zeit gefunden, um das zu reproduzieren. Es scheint irgendwelche Skalierung 0-480 -> 0-360 zu machen.
Hallo,
hab mich rein aus Interesse auch kurz mit beschäftigt,
Bis data-max ="360" klappt das problemlos, erst darüber nicht mehr.
Ja, er macht die Skalierung so:
var maxval = elem.isValidData('max') ? elem.data('max') : 70;
elem.data('origmax', maxval);
elem.data('max', (maxval > 360) ? 360 : maxval);
...
val = (val * (elem.data('max') / elem.data('origmax')));
Heisst: im Widget wird immer nur bis 360 angezeigt, aber er macht eine Skalierung: wenn man 360 im Widget setzt (über 360 kann man nicht), sendet er "set ... 480". EDIT: der Rest dann proportional
Mit dem Widget Knob hat man diesen Effekt nicht
Wenn ich das in der js ändere, geht es dann? Ich finde das Aussehen vom Volume Widget klasse...mit Knob wird der Balken leider anders...
Zitat von: Stonemuc am 07 September 2020, 20:54:32
Wenn ich das in der js ändere, geht es dann? Ich finde das Aussehen vom Volume Widget klasse...mit Knob wird der Balken leider anders...
Dann musst Du aber alle Stellen, wo "max" benutzt wird prüfen, und entspr. die Kalkulationen ändern (z.B. ticks, variance, usw).
Und TabletUI von dem automatischen Update bei "save" entfernen, falls Du es hast.
Oh...das wird zu viel. Ich schreib mal den Entwickler an.