Data Models

Devices

wyze_sdk.models.devices.base

class wyze_sdk.models.devices.base.Device(*, binding_ts: int | None = None, binding_user_nickname: str | None = None, conn_state: int | None = None, conn_state_ts: int | None = None, enr: str | None = None, event_master_switch: int | None = None, firmware_ver: str | None = None, first_activation_ts: int | None = None, first_binding_ts: int | None = None, hardware_ver: str | None = None, is_in_auto: int | None = None, mac: str | None = None, nickname: str | None = None, parent_device_mac: str | None = None, parent_device_enr: str | None = None, product_model: str | None = None, product_model_logo_url: str | None = None, product_type: str | None = None, push_switch: int | None = None, timezone_gmt_offset: float | None = None, timezone_name: str | None = None, user_role: int | None = None, type: str | None = None, **others: dict)
attributes = {'binding_ts', 'binding_user_nickname', 'conn_state', 'conn_state_ts', 'enr', 'event_master_switch', 'firmware_ver', 'first_activation_ts', 'first_binding_ts', 'hardware_ver', 'is_in_auto', 'mac', 'nickname', 'p2p_id', 'p2p_type', 'parent_device_enr', 'parent_device_mac', 'product_model', 'product_type', 'push_switch', 'timezone_gmt_offset', 'timezone_name', 'type', 'user_role'}
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property type: str
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.base.Product(*, type: str | None = None, model: str | None = None, logo_url: str | None = None)

The product information for a Wyze-branded device.

attributes = {'logo_url', 'model', 'type'}
property logo_url: str
property model: str
property type: str
class wyze_sdk.models.devices.base.Timezone(*, offset: str | None = None, name: str | None = None)

The timezone data associated with a device.

property name: str
property offset: float

wyze_sdk.models.devices.bulbs

class wyze_sdk.models.devices.bulbs.BaseBulb(*, type: str = <class 'type'>, **others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property away_mode: bool
property brightness: int
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | BaseBulb) BaseBulb | None
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property sun_match: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Light'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.bulbs.Bulb(*, type: str = <class 'type'>, **others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property away_mode: bool
property brightness: int
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | BaseBulb) BaseBulb | None
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property sun_match: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Light'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.bulbs.LightStrip(**others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property auto_color: bool
property away_mode: bool
property brightness: int
property color: str
property color_palette: str
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property effect_model: LightVisualEffectModel
property effect_run_type: LightVisualEffectRunType
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property music_aes_key: str
property music_mode: bool
property music_port: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | BaseBulb) BaseBulb | None
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property sensitivity: int
property speed: int
property ssid: str
property subsection: Sequence[str] | None
property sun_match: bool
property supports_music: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'LightStrip'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.bulbs.MeshBulb(**others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property away_mode: bool
property brightness: int
property color: str
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | BaseBulb) BaseBulb | None
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property sun_match: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'MeshLight'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.bulbs.WhiteBulb(**others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property away_mode: bool
property brightness: int
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | BaseBulb) BaseBulb | None
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property sun_match: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Light'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

wyze_sdk.models.devices.cameras

class wyze_sdk.models.devices.cameras.BaseStation(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'BaseStation'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.cameras.Camera(*, event_list: Sequence[dict] | None = None, **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_motion: bool
property humidity: float
property ip: str
property is_audio_alarm: bool
property is_co_alarm: bool
property is_motion_alarm: bool
property is_on: bool
property is_online: bool
property is_smoke_alarm: bool
property latest_events: Sequence[Event]
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property motion_state: bool
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property switch_state: DeviceProp
property temperature: float
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Camera'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int

wyze_sdk.models.devices.lights

class wyze_sdk.models.devices.lights.Light(*, type: str = 'Light', **others: dict)
property attributes: Set[str]

WLAP19 bulbs (non-mesh, non-color) use the switch_state property to indicate whethere they are on or off. Newer bulbs appear to use some of the same PIDs but also have open_close_state and power_switch.

property away_mode: bool
property brightness: int
property color_temp: int
property control_mode: LightControlMode | None
property delay_off: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_location: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property power_loss_recovery: bool
property power_loss_recovery_mode: LightPowerLossRecoveryMode | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property sun_match: bool
property supports_sun_match: bool
property supports_timer: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Light'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.lights.LightControlMode(value)

See: com.hualai.wyze.rgblight.device.h.B and com.hualai.wyze.lslight.device.f

COLOR = ('Color', 1)
FRAGMENTED = ('Fragmented', 3)
TEMPERATURE = ('Temperature', 2)
describe()
classmethod parse(code: int) LightControlMode | None
class wyze_sdk.models.devices.lights.LightPowerLossRecoveryMode(value)

An enumeration.

POWER_ON = ('Turn the light on', 0)
RESTORE_PREVIOUS_STATE = ('Maintain previous state', 1)
describe()
classmethod parse(code: int) LightPowerLossRecoveryMode | None
class wyze_sdk.models.devices.lights.LightVisualEffect(*, model: LightVisualEffectModel, rhythm: str = '0', music_mode: bool = False, sensitivity: int = 100, speed: int = 8, auto_color: bool = False, color_palette: str = '2961AF,B5267A,91FF6A', run_type: LightVisualEffectRunType | None = None)

A customizable visual/sound effect for lights.

Visual effects comprise the pre-defined scene model, optional scene run instructions, and additional configurable properties.

An example of this is the water effect, which has a fixed model, a single scene run type for the “direction” of the effect, and options like auto- color, music mode, etc.

attributes = {'auto_color', 'color_palette', 'mode', 'model', 'rhythm', 'run_type', 'sensitivity', 'speed'}
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

to_json()
to_plist() Sequence[DeviceProp]
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.lights.LightVisualEffectModel(value)

A preset light/sound effect model for lights.

See: com.wyze.commonlight.strip.model.DynamicModelBean

COLORFUL = ('5', 'Color Focus', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
GRADUAL_CHANGE = ('1', 'Shadow')
JUMP = ('2', 'Leap')
MARQUEE = ('4', 'Marquee', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
METEOR = ('8', 'Shooting Star', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
RUNNING_WATER = ('6', 'Water', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
SEA_WAVE = ('7', 'Sea Wave', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
STARSHINE = ('9', 'Starlight', [LightVisualEffectRunType.DIRECTION_LEFT, LightVisualEffectRunType.DIRECTION_DISPERSIVE, LightVisualEffectRunType.DIRECTION_GATHERED])
TWINKLE = ('3', 'Flicker')
describe()
classmethod parse(id: str) LightVisualEffectModel | None
to_json()
class wyze_sdk.models.devices.lights.LightVisualEffectRunType(value)

Additional visual effect run instructions for lights.

See: com.wyze.commonlight.strip.model.DynamicTypeBean

DIRECTION_DISPERSIVE = ('1', 'Dispersive [<-->]')
DIRECTION_GATHERED = ('2', 'Gathered [-><-]')
DIRECTION_LEFT = ('0', 'Left [ -> ]')
describe()
classmethod directions() Sequence[LightVisualEffectRunType]
classmethod parse(id: str) LightVisualEffectRunType | None
to_json()

wyze_sdk.models.devices.locks

class wyze_sdk.models.devices.locks.Lock(parent: str | None = None, door_sensor: int | bool | None = None, auto_lock_time: int | bool | LockLeftOpenTime | None = None, trash_mode: int | bool | None = None, auto_unlock: int | bool | None = None, keypad: LockKeypad | None = None, ajar_alarm: int | bool | None = None, left_open_time: int | bool | LockLeftOpenTime | None = None, open_volume: int | LockVolumeLevel | None = None, record_count: int | None = None, **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property is_locked: bool
property is_online: bool
property is_open: bool
property lock_state: DeviceProp
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property open_close_state: bool
property parent: str
property parent_device: dict
classmethod parse_uuid(mac: str) str
property product: Product
property push_switch: bool
property record_count: int
classmethod remove_model_prefix(text: str, model: str) str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Lock'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int
class wyze_sdk.models.devices.locks.LockEventSource(value)

See: ford_lock_history_source

AUTO = ('Auto', 8)
FINGERPRINT = ('Fingerprint', 3)
INSIDE_BUTTON = ('Inside button', 4)
INSIDE_HOLDER = ('Inside holder', 6)
KEYPAD = ('Keypad', [2, 102])
LOCAL = ('App', 1)
MANUAL = ('Manual', 5)
NFC = ('NFC', 7)
REMOTE = ('Remote', 9)
describe()
classmethod parse(code: int) LockEventSource | None
class wyze_sdk.models.devices.locks.LockEventType(value)

See: ford_lock_history_event_id

AUTO_CALIBRATED = ('Auto-calibrated', 2226)
CLOSED = ('Closed', 2215)
JAMMED = ('Jammed', 2221)
KEPT_OPEN = ('Kept open longer than 24 hours', 2224)
LOCKED = ('Locked', 2216)
OPENED = ('Opened', 2214)
OPEN_TOO_LONG = ('Open too long', 2218)
SWUNG_OPEN = ('Swung open', 2223)
TOTALLY_JAMMED = ('Totally jammed', 2222)
TRASH_MODE = ('Trash mode', 2225)
UNLOCKED = ('Unlocked', 2203)
describe()
classmethod parse(code: int) LockEventType | None
class wyze_sdk.models.devices.locks.LockGateway(*, rssi: int | None = None, ssid: str | None = None, locks: Sequence[dict] | None = None, **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_online: bool
property locks: Sequence[Lock]
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse_uuid(mac: str) str
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'GateWay'
property uuid: str
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockKey(*, id: int | None = None, type: LockKeyType | None = None, time: datetime | None = None, name: str | None = None, description: str | None = None, is_default: int | bool | None = None, notify: int | bool = False, userid: str | None = None, username: str | None = None, permission: dict | LockKeyPermission | None = None, periodicity: dict | LockKeyPeriodicity | None = None, operation: int | LockKeyOperation | None = None, operation_stage: int | LockKeyOperationStage | None = None, permission_state: int | LockKeyState | None = None, pwd_state: int | LockKeyState | None = None, **others: dict)
A lock key. This can be either:
  • a Bluetooth connection

  • a password (hash of a numeric code)

  • a fingerprint

BLE Actions:
  • freeze (1)
    • permission_state = 5

    • operation = 4

  • unfreeze (2)
    • permission_state = 2

    • operation = 5

  • update (3)
    • operation = 3

    • (set permission)

Password Actions:
  • freeze (1)
    • pwd_state = 5

    • operation = 4

    • operation_stage = 3

  • unfreeze (2)
    • pwd_state = 2

    • operation = 5

    • operation_stage = 3

  • update (3)
    • operation = 3

    • operation_stage = 3

    • (set permission)

Fingerprint Actions:
  • freeze (1)
    • fp_state = 5

    • operation = 4

    • operation_stage = 3

  • unfreeze (2)
    • fp_state = 2

    • operation = 5

    • operation_stage = 3

  • update (3)
    • operation = 3

    • operation_stage = 3

    • (set permission)

See: com.yunding.ydbleapi.bean.KeyInfo

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property is_default: bool
property notify: bool
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockKeyOperation(value)

See: com.yunding.ydbleapi.bean.LockPasswordInfo.operation

ADD = ('Add', 1)
DELETE = ('Delete', 2)
FROZEN = ('Freeze', 4)
UNFROZEN = ('Unfreeze', 5)
UPDATE = ('Update', 3)
describe()
classmethod parse(code: int) LockKeyOperation | None
class wyze_sdk.models.devices.locks.LockKeyOperationStage(value)

See: com.yunding.ydbleapi.bean.LockPasswordInfo.operation_stage

GOING = ('Pending', 1)
INVALID = ('Failure', 2)
SUCCESS = ('Success', 3)
describe()
classmethod parse(code: int) LockKeyOperationStage | None
class wyze_sdk.models.devices.locks.LockKeyPeriodicity(*, begin: str | int | time | None = None, end: str | int | time | None = None, valid_days: int | Sequence[int] | None = None, **others: dict)

A lock key periodicity describing recurring access rules.

See: com.yunding.ydbleapi.bean.PeriodicityInfo

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

to_json()
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockKeyPermission(*, type: LockKeyPermissionType | None = None, begin: int | datetime | None = None, end: int | datetime | None = None, **others: dict)

A lock key permission.

See: com.yunding.ydbleapi.bean.YDPermission

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

to_json()
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockKeyPermissionType(value)

See: com.yunding.ydbleapi.bean.YDPermission.status

ALWAYS = ('Always', 1)
DURATION = ('Temporary', 2)
ONCE = ('One-Time', 3)
RECURRING = ('Recurring', 4)
describe()
classmethod parse(code: int) LockKeyPermissionType | None
to_json()
class wyze_sdk.models.devices.locks.LockKeyState(value)

See: com.yunding.ydbleapi.bean.LockPasswordInfo.pwd_state

FROZENED = ('Frozen', 5)
INIT = ('Init', 1)
IN_USE = ('In use', 2)
OUT_OF_PERMISSION = ('Out of permission', 4)
WILL_USE = ('Will use', 3)
describe()
classmethod parse(code: int) LockKeyState | None
class wyze_sdk.models.devices.locks.LockKeyType(value)

See: com.yunding.ydbleapi.bean.KeyInfo.type

ACCESS_CODE = ('Access Code', 2)
BLUETOOTH = ('Bluetooth', 1)
FINGERPRINT = ('Fingerprint', 3)
describe()
classmethod parse(code: int) LockKeyType | None
class wyze_sdk.models.devices.locks.LockKeypad(is_enabled: bool = False, **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'LockKeypad'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int
class wyze_sdk.models.devices.locks.LockLeftOpenTime(value)

See: ford_open_alarm_time

IMMEDIATE = ('At once', 1)
MIN_1 = ('1 min', 2)
MIN_10 = ('10 min', 4)
MIN_30 = ('30 min', 5)
MIN_5 = ('5 min', 3)
MIN_60 = ('60 min', 6)
describe()
classmethod parse(code: int) LockLeftOpenTime | None
class wyze_sdk.models.devices.locks.LockRecord(*, type: int | LockEventType | None = None, details: dict | LockRecordDetail | None = None, priority: int | None = None, processed: int | None = None, time: datetime | None = None, user_id: str | None = None, uuid: str | None = None, **others: dict)

A lock record.

See: com.yunding.ford.entity.FamilyRecord

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property type: LockEventType
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockRecordDetail(*, id: int | None = None, avatar: str | None = None, email: str | None = None, left_open_time: int | LockLeftOpenTime | None = None, receiver_name: str | None = None, role: str | None = None, sender_name: str | None = None, source: int | LockEventSource | None = None, source_name: str | None = None, sourceid: int | None = None, time: datetime | None = None, audio_played: int | None = None, **others: dict)

A lock record’s details.

See: com.yunding.ford.entity.FamilyRecord.Detail

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.locks.LockStatusType(value)

See: com.yunding.ford.widget.LockStatusWidget

CONNECTING = ('Connecting', 0)
LOCKED = ('Locked', 1)
LOCKING = ('Locking', 2)
OFFLINE = ('Offline', -1)
UNCALIBRATED = ('Uncalibrated', 5)
UNLOCKED = ('Unlocked', 3)
UNLOCKING = ('Unlocking', 4)
describe()
classmethod parse(code: int) LockStatusType | None
class wyze_sdk.models.devices.locks.LockVolumeLevel(value)

See: ford_lock_setting_volume

HIGH = ('High', 100)
NORMAL = ('Normal', 50)
OFF = ('Off', 0)
describe()
classmethod parse(code: int) LockVolumeLevel | None

wyze_sdk.models.devices.plugs

class wyze_sdk.models.devices.plugs.OutdoorPlug(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property away_mode: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_on: bool
property is_online: bool
property is_photosensitive: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | Plug) Plug | None
property photosensitive_switch: bool
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property status_light: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'OutdoorPlug'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.plugs.Plug(type: str = 'Plug', **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property away_mode: bool
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
classmethod parse(device: dict | Plug) Plug | None
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property status_light: bool
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Plug'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.plugs.PlugElectricityConsumptionRecord(*, hourly_data: dict[datetime, int] | None = None, **others: dict)

A plug usage record that assumes data represents electricity consumption in watt-hours.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

logger = <Logger wyze_sdk.models.devices.plugs (WARNING)>
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property total_usage: float | None

Return the total usage, in kWh.

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.plugs.PlugUsageRecord(*, hourly_data: dict[datetime, int] | None = None, **others: dict)

A plug usage record that assumes data represents duration of usage.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

logger = <Logger wyze_sdk.models.devices.plugs (WARNING)>
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property total_usage: float | None

Return the total duration of usage, in minutes.

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

wyze_sdk.models.devices.scales

class wyze_sdk.models.devices.scales.Scale(unit: str | None = None, goal_weight: UserGoalWeight | None = None, latest_records: Sequence[ScaleRecord] | None = None, **others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property broadcast: bool
property device_members: Sequence[dict]
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property goal_weight: UserGoalWeight
property hardware_version: str
property ip: str
property is_online: bool
property latest_records: Sequence[ScaleRecord]
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'WyzeScale'
property unit: str
property user_profile: dict
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.scales.ScaleRecord(*, id: str | None = None, age: int | None = None, bmi: float | None = None, bmr: float | None = None, body_fat: float | None = None, body_type: int | None = None, body_vfr: float | None = None, body_water: float | None = None, bone_mineral: float | None = None, device_id: str | None = None, family_member_id: str | None = None, gender: int | None = None, height: float | None = None, impedance: Sequence[int] | None = None, mac: str | None = None, measure_ts: int | None = None, measure_type: int | None = None, metabolic_age: int | None = None, muscle: float | None = None, occupation: int | None = None, protein: float | None = None, timezone: str | None = None, user_id: int | None = None, weight: float | None = None, **others: dict)

A scale record.

See: com.wyze.ihealth.bean.GsonHs2sResults.DataBean

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property weight
class wyze_sdk.models.devices.scales.UserGoalWeight(*, id: str | None = None, created: datetime | None = None, current_weight: float | None = None, goal_weight: float | None = None, family_member_id: str | None = None, updated: datetime | None = None, user_id: int | None = None, **others: dict)

A user goal weight record.

See: com.wyze.ihealth.bean.GsonUserGoalWeight

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property current_weight
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property goal_weight
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

wyze_sdk.models.devices.sensors

class wyze_sdk.models.devices.sensors.ContactSensor(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_on: bool
property is_online: bool
property is_open: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property open_close_state: bool
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'ContactSensor'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int
class wyze_sdk.models.devices.sensors.MotionSensor(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property has_motion: bool
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property motion_state: bool
property nickname: str
property parent_device: dict
property product: Product
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'MotionSensor'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int

wyze_sdk.models.devices.switches

class wyze_sdk.models.devices.switches.Switch(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_on: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
classmethod props() dict[str, PropDef]
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
property ssid: str
property switch_state: DeviceProp
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Switch'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.switches.SwitchTimerAction(*, action: SwitchTimerActionType | str | None = None, time: int | datetime | None = None, **others: dict)

A timer action for a switch.

attributes = {'action', 'time'}
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

to_json()
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.switches.SwitchTimerActionType(value)

See: com.wyze.mercury.activity.home.MercuryNewMainActivity

TURN_OFF = ('Turn off', 'turn_off')
TURN_ON = ('Turn on', 'turn_on')
describe()
classmethod parse(code: str) SwitchTimerActionType | None
to_json()

wyze_sdk.models.devices.thermostats

class wyze_sdk.models.devices.thermostats.RoomSensor(*, did: str | None = None, name: str | None = None, model: str | None = None, temperature: float | None = None, humidity: int | None = None, battery: RoomSensorBatteryLevel | None = None, state: RoomSensorStateType | None = None, status: RoomSensorStatusType | None = None, auto_comfort_mode: ThermostatSensorTemplate | None = None, comfort_balance_weight: ThermostatSensorComfortBalanceMode | None = None, temperature_threshold: int | None = None, **others: dict)

A room sensor, which can report to a Thermostat.

property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

classmethod device_info_props() Sequence[PropDef]
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property humidity: float
property is_online: bool
logger = <Logger wyze_sdk.models.devices.thermostats (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
classmethod props() Sequence[PropDef]
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property temperature: float
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Room Sensor'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.thermostats.RoomSensorBatteryLevel(value)

See: com.wyze.sensor.activity.setting.SensorBaseDeviceInfoActivity.getBatterySourceId

LEVEL_0 = ('Empty battery (level 0)', 1)
LEVEL_1 = ('Low battery (level 1)', 2)
LEVEL_2 = ('Half battery (level 2)', 3)
LEVEL_3 = ('Full battery (level 3)', 4)
describe()
classmethod parse(code: int | str) RoomSensorBatteryLevel | None
class wyze_sdk.models.devices.thermostats.RoomSensorStateType(value)

See: com.wyze.earth.model.SensorEntity.connect

OFFLINE = ('Offline', '')
ONLINE = ('Online', 'connect')
describe()
classmethod parse(code: str) RoomSensorStateType | None
class wyze_sdk.models.devices.thermostats.RoomSensorStatusType(value)

See: com.wyze.earth.model.SensorEntity.up

AUTO_UP = ('Included in comfort control', 'auto_up')
MANUAL_DOWN = ('Manually excluded from comfort control', 'manual_down')
MANUAL_UP = ('Manually included in comfort control', 'manual_up')
describe()
classmethod parse(code: str) RoomSensorStatusType | None
class wyze_sdk.models.devices.thermostats.Thermostat(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property comfort_balance: ThermostatComfortBalanceMode | None
property cooling_setpoint: int
property current_scenario: ThermostatScenarioType | None
classmethod device_info_props() dict[str, PropDef]
property enr: str
property fan_mode: ThermostatFanMode
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property heating_setpoint: int
property humidity: float
property ip: str
property is_locked: bool
property is_online: bool
property lock_state: DeviceProp
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property nickname: str
property parent_device: dict
property product: Product
classmethod props() dict[str, PropDef]
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rssi: str
classmethod sensor_props() dict[str, PropDef]
property ssid: str
property system_mode: ThermostatSystemMode
property temperature: float
property temperature_unit: str
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Thermostat'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.thermostats.ThermostatCalibrationSettings(*, heating: float | None = None, cooling: float | None = None, **others: dict)

Adjustment model for calibrating temperature and/or humidity.

attributes = {'cooling', 'heating'}
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.thermostats.ThermostatComfortBalanceMode(value)

See: com.wyze.earth.activity.setup.personalization.fragment.PersonalizationPreferencesFragment

BALANCE = ('Balance comfort and savings', 3)
BETTER_COMFORT = ('Weighted comfort balance', 4)
MAX_COMFORT = ('Maximum comfort', 5)
MAX_SAVINGS = ('Maximum savings', 1)
SUSTAINABILITY = ('Sustainability', 2)
describe()
classmethod parse(code: int | str) ThermostatComfortBalanceMode | None
class wyze_sdk.models.devices.thermostats.ThermostatFanMode(value)

See: com.wyze.earth.common.widget.EarthHomeControls

AUTO = ('Auto', 'auto')
CYCLE = ('Cycle', 'circ')
ON = ('On', 'on')
describe()
classmethod parse(code: str) ThermostatFanMode | None
class wyze_sdk.models.devices.thermostats.ThermostatInstallationValue(value)

See: com.wyze.earth.common.enums.InstallationEnum

CWIRE = ('cwire', 1)
HVACSYSTEM = ('hvacsystem', 4)
MOUNTING = ('mounting', 2)
PERSONALIZATION = ('personalization', 5)
PREPARATION = ('preparation', 0)
SYSTEMTEST = ('systemtest', 6)
THERMOSTAT = ('thermostat', 3)
describe()
classmethod parse(code: str) ThermostatInstallationValue | None
class wyze_sdk.models.devices.thermostats.ThermostatScenarioType(value)

See: com.wyze.earth.activity.home.EarthMainActivity

AWAY = ('Away', 'away')
HOME = ('Home', 'home')
SLEEP = ('Sleep', 'sleep')
describe()
classmethod parse(code: str) ThermostatScenarioType | None
class wyze_sdk.models.devices.thermostats.ThermostatSensorComfortBalanceMode(value)

An enumeration.

BALANCE = ('Balance comfort and savings', 0)
MAX_COMFORT = ('Maximum comfort', 2)
MAX_SAVINGS = ('Maximum savings', 1)
describe()
classmethod parse(code: int | str) ThermostatSensorComfortBalanceMode | None
class wyze_sdk.models.devices.thermostats.ThermostatSensorTemplate(value)

An enumeration.

HOME = ('Triggers HOME events', True, False, 1)
HOME_SLEEP = ('Triggers HOME and SLEEP events', True, True, 3)
NONE = ('Does not trigger HOME or SLEEP events', False, False, 0)
SLEEP = ('Triggers SLEEP events', False, True, 2)
describe()
classmethod parse(code: int | str) ThermostatSensorTemplate | None
class wyze_sdk.models.devices.thermostats.ThermostatSetupItemStatus(value)

See: com.wyze.earth.common.enums.SetupItemStatusEnum

COMPLETE = ('Complete', 3)
DEFAULT = ('Default', 0)
ONGOING = ('Ongoing', 1)
READY = ('Ready', 2)
describe()
classmethod parse(code: str) ThermostatSetupItemStatus | None
class wyze_sdk.models.devices.thermostats.ThermostatSystemMode(value)

See: com.wyze.earth.common.widget.EarthHomeControls

AUTO = ('Auto', 'auto')
COOL = ('Cool', 'cool')
HEAT = ('Heat', 'heat')
OFF = ('Off', 'off')
describe()
classmethod parse(code: str) ThermostatSystemMode | None

wyze_sdk.models.devices.vacuums

class wyze_sdk.models.devices.vacuums.Vacuum(**others: dict)
property attributes: Set[str]

set() -> new empty set object set(iterable) -> new set object

Build an unordered collection of unique elements.

property clean_level: VacuumSuctionLevel
property current_map: VacuumMap
property current_position: VacuumMapPoint
classmethod device_info_props() dict[str, PropDef]
property enr: str
property firmware_version: str
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property hardware_version: str
property ip: str
property is_charging: bool
property is_online: bool
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac: str
property mode: VacuumMode
property nickname: str
property parent_device: dict
property product: Product
classmethod props() dict[str, PropDef]
property push_switch: bool
classmethod remove_model_prefix(text: str, model: str) str
property rooms: Sequence[VacuumMapRoom]
property rssi: str
property ssid: str
property supplies: VacuumSupplies
property timezone: Timezone
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

type = 'Vacuum'
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

property voltage: int
class wyze_sdk.models.devices.vacuums.VacuumBoxType(value)

See: com.wyze.sweeprobot.common.constant.VenusDeviceModeByAssembly.VenusBoxType

DUST_BOX = ('Dust', 1)
DUST_WATER_BOX = ('Dust+Water', 3)
WATER_BOX = ('Water', 2)
describe() str
classmethod parse(code: str | int) VacuumBoxType | None
class wyze_sdk.models.devices.vacuums.VacuumDeviceControlRequestType(value)

See: com.wyze.sweeprobot.common.entity.model.request.VenusDeviceControlRequest

AREA_CLEAN (known as spot cleaning, area cleaning, or virtual room cleaning) is only available in beta firmware (1.6.173) and requires the passing of x,y map points when issuing requests.

AREA_CLEAN = ('Area Clean', 6)
GLOBAL_SWEEPING = ('Clean', 0)
QUICK_MAPPING = ('Quick Mapping', 7)
RETURN_TO_CHARGING = ('Recharge', 3)
describe() str
classmethod parse(code: str | int) VacuumDeviceControlRequestType | None
class wyze_sdk.models.devices.vacuums.VacuumDeviceControlRequestValue(value)

See: com.wyze.sweeprobot.common.entity.model.request.VenusDeviceControlRequest

FALSE_PAUSE = ('False Pause', 3)
PAUSE = ('Pause', 2)
START = ('Start', 1)
STOP = ('Stop', 0)
describe() str
classmethod parse(code: str | int) VacuumDeviceControlRequestValue | None
class wyze_sdk.models.devices.vacuums.VacuumFaultCode(value)

See: com.wyze.sweeprobot.common.constant.VenusErrorCode

COLLISION_EXCEPTION = ('Vacuum stuck', 510)
DUST_BOX_NO_EXIST = ('Dustbin not installed', 503)
GET_OUT_OF_TROUBLE_FAILED = ('Wheels stuck', 514)
GO_CHARGE_FAILED = ('Failed to return to the charging station.', 511)
NAVIGATION_FAILED = ('Mapping failed.', 513)
RADAR_OUT_OF_TIME = ('Lidar sensor blocked', 500)
RELOCATE_FAILED = ('Relocation failed', 507)
ROBOT_IN_VIRTUALWALL = ('Vacuum stuck in no-go zone', 567)
ROBOT_NO_DUSTANDWATER_HURRI = ('2-in-1 dustbin with water tank and mop not installed', 530)
ROBOT_NO_DUSTANDWATER_MOP = ('Water tank and mop not installed', 529)
ROBOT_NO_MOP = ('Mop not installed', 522)
ROBOT_NO_WATER = ('Water tank not installed', 521)
ROBOT_NO_WATER_HURRI = ('2-in-1 dustbin with water tank not installed', 531)
SLOPE_START = ('Vacuum not on flat ground', 508)
STOP_POINT_GO_CHARGE_FAILED = ('Failed to return to the charging station.', 512)
WHEEL_LIFT_UP = ('Vacuum not on ground', 501)
describe() str
classmethod parse(code: str | int) VacuumFaultCode | None
class wyze_sdk.models.devices.vacuums.VacuumMap(*, id: int | None = None, name: str | None = None, created: datetime | None = None, updated: datetime | None = None, blob: dict | None = None, **others: dict)

The protobuf definition for a vacuum map.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property charge_station: VacuumMapPoint | None
property created: datetime
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property id: str
property name: str
property navigation_points: Sequence[VacuumMapNavigationPoint] | None
parse_blob(blob: str) dict
property rooms: Sequence[VacuumMapRoom] | None
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property updated: datetime
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumMapNavigationPoint(*, id: int | None = None, status: int | None = None, point_type: int | None = None, coordinates: VacuumMapPoint | None = None, **others: dict)
property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property coordinates: VacuumMapPoint
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property id: int
property point_type: int
property status: int
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumMapPoint(*, x: float | None = None, y: float | None = None, phi: float | None = None, **others: dict)
property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumMapRoom(*, id: str | None = None, name: str | None = None, clean_state: int | None = None, room_clean: int | None = None, name_position: VacuumMapPoint | None = None, **others: dict)
property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property clean_state: int | None
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property id: int
property name: str
property name_position: VacuumMapPoint | None
property room_clean: int | None
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumMapSummary(*, current_map: bool = False, img_url: str | None = None, map_id: int | None = None, user_map_name: str | None = None, **others: dict)

A vacuum map summary.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property id: int
property img_url: str
property is_current: bool
property latest_points: Sequence[VacuumMapPoint] | None
property name: int
property rooms: Sequence[VacuumMapRoom] | None
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumMode(value)

See: com.wyze.sweeprobot.activity.VenusHomeActivity and f0.c

BREAK_POINT = ('break point', 39)
CLEANING = ('Cleaning', [1, 30, 1101, 1201, 1301, 1401])
DOCKED_NOT_COMPLETE = ('Cleaning will resume after charging', [11, 33, 1104, 1204, 1304, 1404])
FINISHED_RETURNING_TO_CHARGE = ('Cleaning completed. Returning to charge', [10, 32, 1103, 1203, 1303, 1403])
FULL_FINISH_SWEEPING_ON_WAY_CHARGE = ('full finish sweeping on way charge', [12, 26, 38])
IDLE = ('idle', [0, 14, 29, 35, 40])
ON_WAY_CHARGE = ('Returning to charge', 5)
PAUSE = ('Paused', [9, 27, 37])
PAUSED = ('Paused', [4, 31, 1102, 1202, 1302, 1402])
QUICK_MAPPING_COMPLETED_RETURNING_TO_CHARGE = ('Mapping completed. Returning to charge', 47)
QUICK_MAPPING_DOCKED_NOT_COMPLETE = ('Mapping will resume after charging', 48)
QUICK_MAPPING_MAPPING = ('Mapping', 45)
QUICK_MAPPING_PAUSED = ('Mapping paused', 46)
RETURNING_TO_CHARGE = ('Returning to charge', 5)
SWEEPING = ('sweeping', [7, 25, 36])
describe() str
classmethod parse(code: int) VacuumMode | None
class wyze_sdk.models.devices.vacuums.VacuumStatus(value)

An enumeration.

CLEANING = ('Cleaning', 2)
DOCKED = ('Docked', 4)
ERROR = ('Error', 7)
MAPPING = ('Mapping', 5)
PAUSED = ('Paused', 6)
RETURNING_TO_CHARGE = ('Returning to charge', 3)
STANDBY = ('Standby', 1)
describe() str
classmethod parse(code: str | int) VacuumStatus | None
class wyze_sdk.models.devices.vacuums.VacuumSuctionLevel(value)

An enumeration.

QUIET = ('Quiet', 1)
STANDARD = ('Standard', 2)
STRONG = ('Strong', 3)
describe() str
classmethod parse(code: str | int) VacuumSuctionLevel | None
class wyze_sdk.models.devices.vacuums.VacuumSupplies(*, filter: int | None = None, main_brush: int | None = None, side_brush: int | None = None, **others: dict)

Vacuum supply levels.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property filter: VacuumSupplyLevel

The supply levels of the filter.

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property main_brush: VacuumSupplyLevel

The supply levels of the main brush.

property side_brush: VacuumSupplyLevel

The supply levels of the side brush.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumSupplyLevel(*, type: VacuumSupplyType | None = None, usage: int | None = None)

The usage information for vacuum supplies.

attributes = {'remaining', 'type', 'usage'}
property remaining: str
property type: VacuumSupplyType
property usage: str
class wyze_sdk.models.devices.vacuums.VacuumSupplyType(value)

An enumeration.

FILTER = ('Filter', 150)
MAIN_BRUSH = ('Main brush', 300)
SIDE_BRUSH = ('Side brush', 200)
describe() str
class wyze_sdk.models.devices.vacuums.VacuumSweepRecord(*, created: datetime | None = None, started: datetime | None = None, clean_type: int | None = None, clean_time: int | None = None, clean_size: int | None = None, model: str | None = None, **others: dict)

A vacuum sweep record.

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property clean_size: int

The area cleaned during this sweep record (in sq.ft.).

What comes from the API is some number related to m^2, but it’s been multiplied by 100, presumably to send across an integer that can be parsed to a single significant digit?

property clean_time: int

The cleaning time of this sweep record (in minutes).

property created: datetime
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property map_img_big_url: str
property map_img_small_url: str
property model: str
property started: datetime
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.devices.vacuums.VacuumWorkMode(value)

See: com.wyze.sweeprobot.common.constant.VenusDeviceModeByAssembly.VenusWorkModeModel

HURRICANE = ('Vacuum+Mop', 3)
MOP = ('Mop', 2)
VACUUM = ('Vacuum', 1)
describe() str
classmethod parse(code: str | int) VacuumWorkMode | None
class wyze_sdk.models.devices.vacuums.VenusDotArg1Message

See: com.wyze.sweeprobot.common.constant.VenusDotMessage.VenusDotArg1Message

Vacuum = 'Vacuum'
class wyze_sdk.models.devices.vacuums.VenusDotArg2Message

See: com.wyze.sweeprobot.common.constant.VenusDotMessage.VenusDotArg2Message

BreakCharging = 'BreakCharging'
BreakRecharge = 'BreakRecharge'
FinishRecharge = 'FinishRecharge'
ManualRecharge = 'ManualRecharge'
SelectRooms = 'SelectRooms'
Spot = 'Spot'
Whole = 'Whole'
class wyze_sdk.models.devices.vacuums.VenusDotArg3Message

See: com.wyze.sweeprobot.common.constant.VenusDotMessage.VenusDotArg3Message

FalsePause = 'FalsePause'
Pause = 'Pause'
Resume = 'Resume'
Start = 'Start'

Events

class wyze_sdk.models.events.AiEventType(value)
See: com.wyze.platformkit.config.AiConfig

com.wyze.event.faceai.WyzeCloudEventFaceAI

BARKING = ('Dog Barking', 800002)
CAR = ('Car', [])
CAT = ('Cat', [])
CRYING = ('Baby Crying', 800001)
DELIVERY_TRUCK = ('Delivery Truck', [])
DOG = ('Dog', [])
FACE = ('Face', 101001)
MEOWING = ('Cat Meowing', 800003)
NOTHING = ('Nothing', 0)
PACKAGE = ('Package', 104)
PERSON = ('Person', 101)
PET = ('Pet', 103)
SCHOOL_BUS = ('School Bus', [])
VEHICLE = ('Vehicle', 102)
describe()
classmethod parse(code: int) AiEventType | None
class wyze_sdk.models.events.Event(*, device_mac: str | None = None, event_id: int | None = None, event_ts: datetime | None = None, event_category: int | None = None, event_params: dict | None = None, event_value: str | None = None, file_list: Sequence[dict] | None = None, tag_list: Sequence[int] | None = None, read_state: int | None = None, **others: dict)

A Wyze event.

See: com.wyze.platformkit.model.WpkEventData

property alarm_type: Sequence[EventFile]
property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

property files: Sequence[EventFile]
get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

property tags: Sequence[AiEventType]
to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.events.EventAlarmType(value)

See: com.HLApi.Obj.EventItem

CO = ('Carbon Monoxide', 5)
DOORBELL_RANG = ('Doorbell rang', 10)
FACE = ('Face appeared', 12)
MOTION = ('Motion', [1, 6, 7, 13])
OTHER = ('Other', 3)
SCENE = ('Scene action', 11)
SMOKE = ('Smoke', 4)
SOUND = ('Sound', 2)
TRIGGERED = ('Triggered', 8)
describe()
classmethod parse(code: int) EventAlarmType | None
class wyze_sdk.models.events.EventFile(*, file_id: str | None = None, type: int | None = None, status: int | None = None, url: str | None = None, **others: dict)

A file (photo, video) associated with a Wyze event.

See: com.wyze.platformkit.model.WpkEventData

property attributes: Set[str]

Provide a set of attributes of this object that will make up its JSON structure

get_non_null_attributes() dict

Construct a dictionary out of non-null keys (from attributes property) present on this object.

to_dict(*args) dict

Extract this object as a JSON-compatible, Wyze-API-valid dictionary.

Parameters:

args – Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError – if the object was not valid

property type: EventFileType
validate_json() None
Raises:

WyzeObjectFormationError – if the object was not valid

class wyze_sdk.models.events.EventFileType(value)

See: com.wyze.event.utils.WyzeEventPlayerHelper

IMAGE = ('Image', 1)
VIDEO = ('Video', 2)
describe()
classmethod parse(code: int) EventFileType | None