Skip to content

Commit

Permalink
Issue #116
Browse files Browse the repository at this point in the history
  • Loading branch information
schmupu committed Feb 20, 2025
1 parent 8fa8a96 commit a2dedd7
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 86 deletions.
88 changes: 52 additions & 36 deletions build/lib/lupusec.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions build/lib/lupusec.js.map

Large diffs are not rendered by default.

94 changes: 47 additions & 47 deletions src/lib/lupusec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1716,7 +1716,7 @@ export class Lupus {
* @param state state
*/
private async onStateChangeDevices(id: string, state: states.ifState): Promise<void> {
const execdelay = 0; // in milliseconds
const execdelay = 250; // in milliseconds
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const icchannelabs = id.split('.').slice(0, 4).join('.'); // lupusec.0.devices.ZS:a61d01
const idchannel = id.split('.').slice(2, 4).join('.'); // devices.ZS:a61d01
Expand Down Expand Up @@ -1895,58 +1895,58 @@ export class Lupus {
await this.deviceEditPost(iddevice, form);
} else if (name === 'hue') {
// Type 74
// this.adapter.clearTimeout(this.timerhandle[iddevice]);
// this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const valuesat = Tools.satPercentToLupusec(
Number((await this.states.getStateAsync(`${idchannel}.sat`))?.val || 0),
);
const valuehue = Tools.hueDegreeToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=${valuehue},${valuesat},-1,-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
//}, execdelay);
this.adapter.clearTimeout(this.timerhandle[iddevice]);
this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const valuesat = Tools.satPercentToLupusec(
Number((await this.states.getStateAsync(`${idchannel}.sat`))?.val || 0),
);
const valuehue = Tools.hueDegreeToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=${valuehue},${valuesat},-1,-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
}, execdelay);
} else if (name === 'sat') {
// Type 74
// this.adapter.clearTimeout(this.timerhandle[iddevice]);
// this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const valuehue = Tools.hueDegreeToLupusec(
Number((await this.states.getStateAsync(`${idchannel}.hue`))?.val || 0),
);
const valuesat = Tools.satPercentToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=${valuehue},${valuesat},-1,-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
// }, execdelay);
this.adapter.clearTimeout(this.timerhandle[iddevice]);
this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const valuehue = Tools.hueDegreeToLupusec(
Number((await this.states.getStateAsync(`${idchannel}.hue`))?.val || 0),
);
const valuesat = Tools.satPercentToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=${valuehue},${valuesat},-1,-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
}, execdelay);
} else if (name === 'ctemp') {
// Type 74
// this.adapter.clearTimeout(this.timerhandle[iddevice]);
// this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const ctemp = state.val || 0;
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=-1,-1,${ctemp},-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
// }, execdelay);
this.adapter.clearTimeout(this.timerhandle[iddevice]);
this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const ctemp = state.val || 0;
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=-1,-1,${ctemp},-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
}, execdelay);
} else if (name === 'ctempk') {
// Type 74
// this.adapter.clearTimeout(this.timerhandle[iddevice]);
// this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const ctemp = Tools.tempKelvinToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=-1,-1,${ctemp},-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
// }, execdelay);
this.adapter.clearTimeout(this.timerhandle[iddevice]);
this.timerhandle[iddevice] = this.adapter.setTimeout(async () => {
const ctemp = Tools.tempKelvinToLupusec(state.val || 0);
const valuepd = Number((await this.states.getStateAsync(`${idchannel}.pd`))?.val || 0) * 60 || 0;
const valuepdtxt = !valuepd ? '' : `:${valuepd}`;
const exec = `a=${area}&z=${zone}&dimmer=on&hue=-1,-1,${ctemp},-1,-1&pd=${valuepdtxt}`;
await this.haExecutePost(iddevice, {
exec: exec,
});
}, execdelay);
} else {
this.adapter.log.error(`Found no function to set state to ${state.val} for Id ${iddevice}`);
this.dummyDevicePost(iddevice);
Expand Down

0 comments on commit a2dedd7

Please # to comment.