Introduced 1_2_3 Commands set for covers

This commit is contained in:
rospogrigio
2020-10-20 12:51:51 +02:00
committed by rospogrigio
parent a217b2553c
commit 3bc16739d9
4 changed files with 21 additions and 15 deletions

View File

@@ -20,7 +20,8 @@ localtuya:
- platform: cover - platform: cover
friendly_name: Device Cover friendly_name: Device Cover
id: 2 id: 2
open_close_cmds: ["on_off","open_close"] # Optional, default: "on_off" open_close_stop_cmds: # Optional, default: "on_off_stop"
["on_off_stop","open_close_stop","fz_zz_stop","1_2_3"]
positioning_mode: ["none","position","fake"] # Optional, default: "none" positioning_mode: ["none","position","fake"] # Optional, default: "none"
currpos_dp: 3 # Optional, required only for "position" mode currpos_dp: 3 # Optional, required only for "position" mode
setpos_dp: 4 # Optional, required only for "position" mode setpos_dp: 4 # Optional, required only for "position" mode

View File

@@ -18,7 +18,7 @@ CONF_CURRENT_CONSUMPTION = "current_consumption"
CONF_VOLTAGE = "voltage" CONF_VOLTAGE = "voltage"
# cover # cover
CONF_OPENCLOSE_CMDS = "open_close_cmds" CONF_COMMANDS_SET = "commands_set"
CONF_POSITIONING_MODE = "positioning_mode" CONF_POSITIONING_MODE = "positioning_mode"
CONF_CURRENT_POSITION_DP = "current_position_dp" CONF_CURRENT_POSITION_DP = "current_position_dp"
CONF_SET_POSITION_DP = "set_position_dp" CONF_SET_POSITION_DP = "set_position_dp"

View File

@@ -16,7 +16,7 @@ from homeassistant.components.cover import (
) )
from .const import ( from .const import (
CONF_OPENCLOSE_CMDS, CONF_COMMANDS_SET,
CONF_CURRENT_POSITION_DP, CONF_CURRENT_POSITION_DP,
CONF_SET_POSITION_DP, CONF_SET_POSITION_DP,
CONF_POSITIONING_MODE, CONF_POSITIONING_MODE,
@@ -26,14 +26,15 @@ from .common import LocalTuyaEntity, async_setup_entry
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
COVER_ONOFF_CMDS = "on_off" COVER_ONOFF_CMDS = "on_off_stop"
COVER_OPENCLOSE_CMDS = "open_close" COVER_OPENCLOSE_CMDS = "open_close_stop"
COVER_STOP_CMD = "stop" COVER_FZZZ_CMDS = "fz_zz_stop"
COVER_12_CMDS = "1_2_3"
COVER_MODE_NONE = "none" COVER_MODE_NONE = "none"
COVER_MODE_POSITION = "position" COVER_MODE_POSITION = "position"
COVER_MODE_FAKE = "fake" COVER_MODE_FAKE = "fake"
DEFAULT_OPENCLOSE_CMDS = COVER_ONOFF_CMDS DEFAULT_COMMANDS_SET = COVER_ONOFF_CMDS
DEFAULT_POSITIONING_MODE = COVER_MODE_NONE DEFAULT_POSITIONING_MODE = COVER_MODE_NONE
DEFAULT_SPAN_TIME = 25.0 DEFAULT_SPAN_TIME = 25.0
@@ -41,8 +42,8 @@ DEFAULT_SPAN_TIME = 25.0
def flow_schema(dps): def flow_schema(dps):
"""Return schema used in config flow.""" """Return schema used in config flow."""
return { return {
vol.Optional(CONF_OPENCLOSE_CMDS, default=DEFAULT_OPENCLOSE_CMDS): vol.In( vol.Optional(CONF_COMMANDS_SET): vol.In(
[COVER_ONOFF_CMDS, COVER_OPENCLOSE_CMDS] [COVER_ONOFF_CMDS, COVER_OPENCLOSE_CMDS, COVER_FZZZ_CMDS, COVER_12_CMDS]
), ),
vol.Optional(CONF_POSITIONING_MODE, default=DEFAULT_POSITIONING_MODE): vol.In( vol.Optional(CONF_POSITIONING_MODE, default=DEFAULT_POSITIONING_MODE): vol.In(
[COVER_MODE_NONE, COVER_MODE_POSITION, COVER_MODE_FAKE] [COVER_MODE_NONE, COVER_MODE_POSITION, COVER_MODE_FAKE]
@@ -69,8 +70,12 @@ class LocaltuyaCover(LocalTuyaEntity, CoverEntity):
super().__init__(device, config_entry, switchid, **kwargs) super().__init__(device, config_entry, switchid, **kwargs)
self._state = None self._state = None
self._current_cover_position = None self._current_cover_position = None
self._open_cmd = self._config[CONF_OPENCLOSE_CMDS].split("_")[0] command_set = DEFAULT_COMMANDS_SET
self._close_cmd = self._config[CONF_OPENCLOSE_CMDS].split("_")[1] if self.has_config(CONF_COMMANDS_SET):
command_set = self._config[CONF_COMMANDS_SET]
self._open_cmd = command_set.split("_")[0]
self._close_cmd = command_set.split("_")[1]
self._stop_cmd = command_set.split("_")[2]
print("Initialized cover [{}]".format(self.name)) print("Initialized cover [{}]".format(self.name))
@property @property
@@ -151,8 +156,8 @@ class LocaltuyaCover(LocalTuyaEntity, CoverEntity):
async def async_stop_cover(self, **kwargs): async def async_stop_cover(self, **kwargs):
"""Stop the cover.""" """Stop the cover."""
_LOGGER.debug("Launching command %s to cover ", COVER_STOP_CMD) _LOGGER.debug("Launching command %s to cover ", self._stop_cmd)
await self._device.set_dp(COVER_STOP_CMD, self._dp_id) await self._device.set_dp(self._stop_cmd, self._dp_id)
def status_updated(self): def status_updated(self):
"""Device status was updated.""" """Device status was updated."""

View File

@@ -46,7 +46,7 @@
"current": "Current", "current": "Current",
"current_consumption": "Current Consumption", "current_consumption": "Current Consumption",
"voltage": "Voltage", "voltage": "Voltage",
"open_close_cmds": "Open/Close Commands", "commands_set": "Open_Close_Stop Commands Set",
"positioning_mode": "Positioning mode", "positioning_mode": "Positioning mode",
"current_position_dp": "Current Position (when Position mode is *position*)", "current_position_dp": "Current Position (when Position mode is *position*)",
"set_position_dp": "Set Position (when Position Mode is *position*)", "set_position_dp": "Set Position (when Position Mode is *position*)",
@@ -85,7 +85,7 @@
"current": "Current", "current": "Current",
"current_consumption": "Current Consumption", "current_consumption": "Current Consumption",
"voltage": "Voltage", "voltage": "Voltage",
"open_close_cmds": "Open/Close Commands", "commands_set": "Open_Close_Stop Commands Set",
"positioning_mode": "Positioning mode", "positioning_mode": "Positioning mode",
"current_position_dp": "Current Position (for *position* mode only)", "current_position_dp": "Current Position (for *position* mode only)",
"set_position_dp": "Set Position (for *position* mode only)", "set_position_dp": "Set Position (for *position* mode only)",