mirror of
https://github.com/python-kasa/python-kasa.git
synced 2024-12-22 11:13:34 +00:00
Fix lens mask required component and state (#1386)
Some checks are pending
CI / Perform linting checks (3.13) (push) Waiting to run
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.13) (push) Blocked by required conditions
CodeQL checks / Analyze (python) (push) Waiting to run
Some checks are pending
CI / Perform linting checks (3.13) (push) Waiting to run
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.13) (push) Blocked by required conditions
CodeQL checks / Analyze (python) (push) Waiting to run
Fixes a few issues with the lens mask since migrating it into its own module: - The module didn't provide itself as the container and hence the feature was accessing the same properties on the device. - `enabled` getter on the module incorrect but not picked up due to the previous issue. - No `REQUIRED_COMPONENT` set to ensure the module only created if available. Also changes attribute names to `enabled` from `state` to avoid confusion with device states.
This commit is contained in:
parent
b78e09caa0
commit
b5f49a3c8a
@ -39,6 +39,7 @@ class Camera(SmartCamModule):
|
|||||||
self._device,
|
self._device,
|
||||||
id="state",
|
id="state",
|
||||||
name="State",
|
name="State",
|
||||||
|
container=self,
|
||||||
attribute_getter="is_on",
|
attribute_getter="is_on",
|
||||||
attribute_setter="set_state",
|
attribute_setter="set_state",
|
||||||
type=Feature.Type.Switch,
|
type=Feature.Type.Switch,
|
||||||
@ -50,7 +51,7 @@ class Camera(SmartCamModule):
|
|||||||
def is_on(self) -> bool:
|
def is_on(self) -> bool:
|
||||||
"""Return the device on state."""
|
"""Return the device on state."""
|
||||||
if lens_mask := self._device.modules.get(Module.LensMask):
|
if lens_mask := self._device.modules.get(Module.LensMask):
|
||||||
return lens_mask.state
|
return not lens_mask.enabled
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def set_state(self, on: bool) -> Annotated[dict, FeatureAttribute()]:
|
async def set_state(self, on: bool) -> Annotated[dict, FeatureAttribute()]:
|
||||||
@ -60,7 +61,7 @@ class Camera(SmartCamModule):
|
|||||||
"""
|
"""
|
||||||
if lens_mask := self._device.modules.get(Module.LensMask):
|
if lens_mask := self._device.modules.get(Module.LensMask):
|
||||||
# Turning off enables the privacy mask which is why value is reversed.
|
# Turning off enables the privacy mask which is why value is reversed.
|
||||||
return await lens_mask.set_state(not on)
|
return await lens_mask.set_enabled(not on)
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
def _get_credentials(self) -> Credentials | None:
|
def _get_credentials(self) -> Credentials | None:
|
||||||
|
@ -12,18 +12,20 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
class LensMask(SmartCamModule):
|
class LensMask(SmartCamModule):
|
||||||
"""Implementation of lens mask module."""
|
"""Implementation of lens mask module."""
|
||||||
|
|
||||||
|
REQUIRED_COMPONENT = "lensMask"
|
||||||
|
|
||||||
QUERY_GETTER_NAME = "getLensMaskConfig"
|
QUERY_GETTER_NAME = "getLensMaskConfig"
|
||||||
QUERY_MODULE_NAME = "lens_mask"
|
QUERY_MODULE_NAME = "lens_mask"
|
||||||
QUERY_SECTION_NAMES = "lens_mask_info"
|
QUERY_SECTION_NAMES = "lens_mask_info"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def state(self) -> bool:
|
def enabled(self) -> bool:
|
||||||
"""Return the lens mask state."""
|
"""Return the lens mask state."""
|
||||||
return self.data["lens_mask_info"]["enabled"] == "off"
|
return self.data["lens_mask_info"]["enabled"] == "on"
|
||||||
|
|
||||||
async def set_state(self, state: bool) -> dict:
|
async def set_enabled(self, enable: bool) -> dict:
|
||||||
"""Set the lens mask state."""
|
"""Set the lens mask state."""
|
||||||
params = {"enabled": "on" if state else "off"}
|
params = {"enabled": "on" if enable else "off"}
|
||||||
return await self._device._query_setter_helper(
|
return await self._device._query_setter_helper(
|
||||||
"setLensMaskConfig", self.QUERY_MODULE_NAME, "lens_mask_info", params
|
"setLensMaskConfig", self.QUERY_MODULE_NAME, "lens_mask_info", params
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user