Hey,
meiner Meinung nach muss der Block so aussehen:
handler.push(function () {
if (cmd_id !== 'nothing_selected') {
/*var cmd = picker.xy[0] + ',' + picker.xy[1]; (EDIT BEITRAG: Diese Zeile kann noch weg!)*/
vis.setValue(xy_id, picker.xy[0] + ',' + picker.xy[1]);
vis.setValue(level_id, Math.round(picker.xy[2] * 254));
}
});
var onChange = function () {
var xy = vis.states[xy_id + '.val'].toString();
var level = vis.states[level_id + '.val'] || 0;
xy = xy.split(',');
if (xy.length === 2) {
picker.fromXY(parseFloat(xy[0]), parseFloat(xy[1]), parseInt(level) / 254);
}
};
vis.states.bind(xy_id + '.val', onChange);
vis.states.bind(level_id + '.val', onChange);
onChange();
Scheinbar bekommt er bei der Abfrage des IST-Wertes aus Deconz nicht immer einen String sondern irgendetwas undefiniertes zurück und setzt deshalb zwischenzeitlich immer wieder auf "0.5,0.5" zurück. Wenn man das zwangscasted, gehts (zumindest bei mir springt er nun nicht mehr hin und her).
Grüße
Stephan