diff --git a/app.json b/app.json index df2ddf6b..a8e402f7 100644 --- a/app.json +++ b/app.json @@ -678,6 +678,34 @@ "step": 0.1, "units": "%" }, + { + "id": "led_type_1", + "type": "dropdown", + "label": { + "en": "Lamp Type 1" + }, + "value": "led", + "values": [ + { + "id": "led", + "label": { + "en": "LED" + } + }, + { + "id": "incandescent", + "label": { + "en": "Incandescent" + } + }, + { + "id": "halogen", + "label": { + "en": "Halogen" + } + } + ] + }, { "id": "brightness_min_2", "type": "number", @@ -701,6 +729,34 @@ "max": 100, "step": 0.1, "units": "%" + }, + { + "id": "led_type_2", + "type": "dropdown", + "label": { + "en": "Lamp Type 2" + }, + "value": "led", + "values": [ + { + "id": "led", + "label": { + "en": "LED" + } + }, + { + "id": "incandescent", + "label": { + "en": "Incandescent" + } + }, + { + "id": "halogen", + "label": { + "en": "Halogen" + } + } + ] } ] } diff --git a/drivers/dimmer/device.js b/drivers/dimmer/device.js index 64a243fe..7f4cd34e 100644 --- a/drivers/dimmer/device.js +++ b/drivers/dimmer/device.js @@ -46,11 +46,13 @@ class TuyaOAuth2DeviceDimmer extends TuyaOAuth2Device { const tuyaBrightnessCapability = `bright_value_${switch_i}`; const tuyaBrightnessMin = `brightness_min_${switch_i}`; const tuyaBrightnessMax = `brightness_max_${switch_i}`; + const tuyaLampType = `led_type_${switch_i}`; const switchStatus = status[tuyaSwitchCapability]; const brightnessStatus = status[tuyaBrightnessCapability]; const brightnessMin = status[tuyaBrightnessMin]; const brightnessMax = status[tuyaBrightnessMax]; + const lampType = status[tuyaLampType]; if (typeof switchStatus === "boolean") { anySwitchOn = anySwitchOn || switchStatus; @@ -80,6 +82,12 @@ class TuyaOAuth2DeviceDimmer extends TuyaOAuth2Device { }); } + if (lampType !== undefined) { + await this.setSettings({ + [tuyaLampType]: lampType, + }); + } + if (typeof brightnessStatus === "number") { const scaleMin = this.getSetting(tuyaBrightnessMin) * 10; const scaleMax = this.getSetting(tuyaBrightnessMax) * 10; @@ -119,7 +127,7 @@ class TuyaOAuth2DeviceDimmer extends TuyaOAuth2Device { const newValue = newSettings[changedKey]; await this.sendCommand({ code: changedKey, - value: newValue * 10, + value: typeof newValue === "number" ? newValue * 10 : newValue, // Convert numeric values from (0,100) to (0,1000) }).catch((err) => { if (err.tuyaCode === 2008) { unsupportedSettings.push(changedKey); diff --git a/drivers/dimmer/driver.js b/drivers/dimmer/driver.js index ae9ae2a7..47a03ab3 100644 --- a/drivers/dimmer/driver.js +++ b/drivers/dimmer/driver.js @@ -45,6 +45,8 @@ class TuyaOAuth2DriverDimmer extends TuyaOAuth2Driver { brightness_max_1: "Maximum Brightness 1", brightness_min_2: "Minimum Brightness 2", brightness_max_2: "Maximum Brightness 2", + led_type_1: "Lamp Type 1", + led_type_2: "Lamp Type 2", }; static SIMPLE_DIMMER_CAPABILITIES = { @@ -60,6 +62,8 @@ class TuyaOAuth2DriverDimmer extends TuyaOAuth2Driver { "brightness_max_1", "brightness_min_2", "brightness_max_2", + "led_type_1", + "led_type_2", ], }; diff --git a/drivers/dimmer/driver.settings.compose.json b/drivers/dimmer/driver.settings.compose.json index af61cfc4..47c860ff 100644 --- a/drivers/dimmer/driver.settings.compose.json +++ b/drivers/dimmer/driver.settings.compose.json @@ -29,6 +29,34 @@ "step": 0.1, "units": "%" }, + { + "id": "led_type_1", + "type": "dropdown", + "label": { + "en": "Lamp Type 1" + }, + "value": "led", + "values": [ + { + "id": "led", + "label": { + "en": "LED" + } + }, + { + "id": "incandescent", + "label": { + "en": "Incandescent" + } + }, + { + "id": "halogen", + "label": { + "en": "Halogen" + } + } + ] + }, { "id": "brightness_min_2", "type": "number", @@ -52,6 +80,34 @@ "max": 100, "step": 0.1, "units": "%" + }, + { + "id": "led_type_2", + "type": "dropdown", + "label": { + "en": "Lamp Type 2" + }, + "value": "led", + "values": [ + { + "id": "led", + "label": { + "en": "LED" + } + }, + { + "id": "incandescent", + "label": { + "en": "Incandescent" + } + }, + { + "id": "halogen", + "label": { + "en": "Halogen" + } + } + ] } ] }