diff --git a/src/lib/tuya.ts b/src/lib/tuya.ts index 1618f9b9ffa4d..80e562dcd8635 100644 --- a/src/lib/tuya.ts +++ b/src/lib/tuya.ts @@ -3315,19 +3315,25 @@ const tuyaTz = { return await tz.on_off.convertSet(entity, key, value, meta); } if (message.brightness != null) { - // set brightness - if (state.state === "OFF") { + // If state includes state_l1 assume we need to use a custom lookup + const stateKey = Object.keys(state).find((k) => k.startsWith("state_l1")) ? `state_l${entity.ID}` : "state"; + // turn on + if (state[stateKey] === "OFF") { await entity.command("genOnOff", "on", {}, utils.getOptions(meta.mapped, entity)); } const brightness = utils.toNumber(message.brightness, "brightness"); + const level = utils.mapNumberRange(brightness, 0, 254, 0, 1000); + + // set brightness await entity.command<"genLevelCtrl", "moveToLevelTuya", TuyaGenLevelCtrl>( "genLevelCtrl", "moveToLevelTuya", {level, transtime: 100}, utils.getOptions(meta.mapped, entity), ); + return {state: {state: "ON", brightness}}; } },