Set the light property before the any_on/all_on check on the group
This commit is contained in:
parent
3bbb6cf053
commit
f281411b2e
1 changed files with 11 additions and 10 deletions
|
@ -25,7 +25,7 @@ Vue.component('light-hue', {
|
|||
}
|
||||
|
||||
this.groups[groupId].scenes = {};
|
||||
var lights = {};
|
||||
let lights = {};
|
||||
|
||||
for (const lightId of this.groups[groupId].lights) {
|
||||
lights[lightId] = this.lights[lightId];
|
||||
|
@ -146,7 +146,8 @@ Vue.component('light-hue', {
|
|||
}
|
||||
}
|
||||
|
||||
groups[groupId].lights.push(lightId)
|
||||
groups[groupId].lights.push(lightId);
|
||||
|
||||
if (groups[groupId].lights.length == Object.values(group.lights).length) {
|
||||
groups[groupId].all_on = true;
|
||||
}
|
||||
|
@ -178,7 +179,13 @@ Vue.component('light-hue', {
|
|||
},
|
||||
|
||||
onUnitInput: function(event) {
|
||||
var groups = this.lights[event.id].groups;
|
||||
for (let attr of ['on', 'hue', 'sat', 'bri', 'xy', 'ct']) {
|
||||
if (attr in event) {
|
||||
this.lights[event.id].state[attr] = event[attr];
|
||||
}
|
||||
}
|
||||
|
||||
let groups = this.lights[event.id].groups;
|
||||
for (const [groupId, group] of Object.entries(groups)) {
|
||||
if (event.on === true) {
|
||||
this.groups[groupId].state.any_on = true;
|
||||
|
@ -188,12 +195,6 @@ Vue.component('light-hue', {
|
|||
this.groups[groupId].state.any_on = Object.values(group.lights).filter((l) => l.state.on).length > 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (var attr of ['on', 'hue', 'sat', 'bri', 'xy', 'ct']) {
|
||||
if (attr in event) {
|
||||
this.lights[event.id].state[attr] = event[attr];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
eventHandler: function(event) {
|
||||
|
@ -203,7 +204,7 @@ Vue.component('light-hue', {
|
|||
id: event.light_id,
|
||||
});
|
||||
} else if ('group_id' in event) {
|
||||
var args = {
|
||||
let args = {
|
||||
id: event.group_id,
|
||||
state: {
|
||||
...event,
|
||||
|
|
Loading…
Reference in a new issue