diff --git a/hatasmota/const.py b/hatasmota/const.py index 027464d..1133e66 100644 --- a/hatasmota/const.py +++ b/hatasmota/const.py @@ -56,6 +56,7 @@ OPTION_HASS_LIGHT = "30" # Enforce Home Assistant auto-discovery as light OPTION_PWM_MULTI_CHANNELS = "68" # Multi-channel PWM instead of a single light OPTION_MQTT_BUTTONS = "73" # Enable Buttons decoupling and send multi-press and hold MQTT messages +OPTION_SHUTTER_MODE = "80" # Blinds and shutters support; removed in Tasmota 9.0.0.4 OPTION_REDUCED_CT_RANGE = "82" # Reduce the CT range from 153..500 to 200.380 OPTION_MQTT_SWITCHES = "114" # Enable sending switch MQTT messages # fmt: on diff --git a/hatasmota/discovery.py b/hatasmota/discovery.py index b63a64a..5bbc3a8 100644 --- a/hatasmota/discovery.py +++ b/hatasmota/discovery.py @@ -43,6 +43,7 @@ OPTION_NOT_POWER_LINKED, OPTION_PWM_MULTI_CHANNELS, OPTION_REDUCED_CT_RANGE, + OPTION_SHUTTER_MODE, RL_LIGHT, RL_RELAY, ) @@ -60,7 +61,9 @@ TASMOTA_OPTIONS_SCHEMA = vol.Schema( { - OPTION_MQTT_RESPONSE: cv.bit, + vol.Optional( + OPTION_MQTT_RESPONSE, default=0 + ): cv.bit, # Added in Tasmota 9.0.0.4 OPTION_BUTTON_SWAP: cv.bit, OPTION_BUTTON_SINGLE: cv.bit, OPTION_DECIMAL_TEXT: cv.bit, @@ -68,8 +71,13 @@ OPTION_HASS_LIGHT: cv.bit, OPTION_PWM_MULTI_CHANNELS: cv.bit, OPTION_MQTT_BUTTONS: cv.bit, + vol.Optional( + OPTION_SHUTTER_MODE, default=0 + ): cv.bit, # Removed in Tasmota 9.0.0.3 OPTION_REDUCED_CT_RANGE: cv.bit, - OPTION_MQTT_SWITCHES: cv.bit, + vol.Optional( + OPTION_MQTT_SWITCHES, default=0 + ): cv.bit, # Added in Tasmota 9.0.0.4 }, required=True, ) @@ -81,7 +89,7 @@ CONF_FRIENDLYNAME: vol.All(cv.ensure_list, [cv.optional_string]), CONF_FULLTOPIC: cv.string, CONF_HOSTNAME: cv.string, - CONF_IFAN: cv.bit, + vol.Optional(CONF_IFAN, default=0): cv.bit, # Added in Tasmota 9.0.0.4 CONF_IP: cv.string, CONF_LIGHT_SUBTYPE: cv.positive_int, CONF_LINK_RGB_CT: cv.bit, @@ -94,7 +102,9 @@ CONF_STATE: vol.All(cv.ensure_list, [cv.string]), CONF_SW_VERSION: cv.string, CONF_SWITCH: vol.All(cv.ensure_list, [int]), - CONF_SWITCHNAME: vol.All(cv.ensure_list, [cv.optional_string]), + vol.Optional(CONF_SWITCHNAME, default=[]): vol.All( + cv.ensure_list, [cv.optional_string] + ), # Added in Tasmota 9.0.0.4 CONF_RELAY: vol.All(cv.ensure_list, [cv.positive_int]), CONF_TOPIC: cv.string, CONF_TUYA: cv.bit,