wyze_sdk.models.devices package

Submodules

wyze_sdk.models.devices.base module

class wyze_sdk.models.devices.base.AbstractNetworkedDevice(*, type: str, ip: Optional[str] = None, **others: dict)

Bases: wyze_sdk.models.devices.base.Device

property attributes

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

Build an unordered collection of unique elements.

property ip
class wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice(*, type: str, rssi: Optional[int] = None, ssid: Optional[str] = None, **others: dict)

Bases: wyze_sdk.models.devices.base.AbstractNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property rssi
property ssid
class wyze_sdk.models.devices.base.ClimateMixin

Bases: object

A mixin for devices that track temperature and humidity.

property humidity
property temperature
class wyze_sdk.models.devices.base.ContactMixin

Bases: object

A mixin for devices that sense contact.

property is_open
property open_close_state
class wyze_sdk.models.devices.base.Device(*, binding_ts: Optional[int] = None, binding_user_nickname: Optional[str] = None, conn_state: Optional[int] = None, conn_state_ts: Optional[int] = None, enr: Optional[str] = None, event_master_switch: Optional[int] = None, firmware_ver: Optional[str] = None, first_activation_ts: Optional[int] = None, first_binding_ts: Optional[int] = None, hardware_ver: Optional[str] = None, is_in_auto: Optional[int] = None, mac: Optional[str] = None, nickname: Optional[str] = None, parent_device_mac: Optional[str] = None, parent_device_enr: Optional[str] = None, product_model: Optional[str] = None, product_model_logo_url: Optional[str] = None, product_type: Optional[str] = None, push_switch: Optional[int] = None, timezone_gmt_offset: Optional[float] = None, timezone_name: Optional[str] = None, user_role: Optional[int] = None, type: Optional[str] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

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
property firmware_version
property hardware_version
property is_online
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac
property nickname
property parent_device
property product
property push_switch
classmethod remove_model_prefix(text: str, model: str)str
property timezone
property type
class wyze_sdk.models.devices.base.DeviceModels

Bases: object

Defines the model-to-device type mapping for the Wyze service provider.

See: com.wyze.platformkit.component.service.camplus.utils.WpkModelConfig

com.HLApi.Obj.BindableDevice

BAND = ['RY.HP1']
BULB = ['WLPA19', 'WLPA19C']
CAMERA = ['WYZEC1', 'WYZEC1-JZ', 'WYZE_CAKP2JFUS']
CAMERA_V1 = ['WYZEC1']
CAMERA_V2 = ['WYZEC1-JZ']
CAMERA_V3 = ['WYZE_CAKP2JFUS']
CONTACT_SENSOR = ['DWS3U']
LOCK = ['YD.LO1']
LOCK_GATEWAY = ['YD.GW1']
MESH_BULB = ['WLPA19C']
MOTION_SENSOR = ['PIR3U']
OUTDOOR_PLUG = ['WLPPO-SUB']
PLUG = ['WLPP1', 'WLPP1CFH', 'WLPPO-SUB']
SCALE = ['JA.SC', 'JA.SC2']
THERMOSTAT = ['CO_EA1']
VACUUM = ['JA_RO2']
WATCH = ['RA.WP1', 'RY.WA1']
class wyze_sdk.models.devices.base.DeviceProp(*, definition: wyze_sdk.models.PropDef, ts: Optional[int] = None, value: Optional[Any] = None, **kwargs)

Bases: object

A wrapper for any type of singular device attribute and its definition.

property api_value
property definition
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property ts
property value
class wyze_sdk.models.devices.base.DeviceProps

Bases: object

classmethod online_state()wyze_sdk.models.PropDef
classmethod power_state()wyze_sdk.models.PropDef
classmethod push_notifications_enabled()wyze_sdk.models.PropDef
class wyze_sdk.models.devices.base.LockableMixin

Bases: object

A mixin for devices that can be locked.

property is_locked
property lock_state
class wyze_sdk.models.devices.base.MotionMixin

Bases: object

A mixin for devices that sense motion.

property has_motion
property motion_state
class wyze_sdk.models.devices.base.Product(*, type: Optional[str] = None, model: Optional[str] = None, logo_url: Optional[str] = None)

Bases: object

The product information for a Wyze-branded device.

attributes = {'logo_url', 'model', 'type'}
property logo_url
property model
property type
class wyze_sdk.models.devices.base.SwitchableMixin

Bases: object

A mixin for devices that can be switched.

property is_on
property switch_state
class wyze_sdk.models.devices.base.Timezone(*, offset: Optional[str] = None, name: Optional[str] = None)

Bases: object

The timezone data associated with a device.

property name
property offset
class wyze_sdk.models.devices.base.VoltageMixin

Bases: object

A mixin for devices that measure voltage.

property voltage

wyze_sdk.models.devices.bulbs module

class wyze_sdk.models.devices.bulbs.Bulb(*, type: str = 'Light', **others: dict)

Bases: wyze_sdk.models.devices.base.SwitchableMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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
property brightness
property color
property color_temp
property enr
property firmware_version
get_non_null_attributes()dict

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

property hardware_version
property ip
property is_on
property is_online
logger = <Logger wyze_sdk.models.devices.base (WARNING)>
property mac
property nickname
property parent_device
classmethod parse(device: Union[dict, Bulb])Optional[Bulb]
property power_loss_recovery
property product
property push_switch
classmethod remove_model_prefix(text: str, model: str)str
property rssi
property ssid
property switch_state
property timezone
to_dict(*args)dict

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

Args:

*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.BulbProps

Bases: object

P1503, P1505 are not used

classmethod away_mode()wyze_sdk.models.PropDef
classmethod brightness()wyze_sdk.models.PropDef
classmethod color()wyze_sdk.models.PropDef
classmethod color_temp()wyze_sdk.models.PropDef
classmethod control_light()wyze_sdk.models.PropDef
classmethod delay_off()wyze_sdk.models.PropDef
classmethod power_loss_recovery()wyze_sdk.models.PropDef
classmethod remaining_time()wyze_sdk.models.PropDef
class wyze_sdk.models.devices.bulbs.MeshBulb(**others: dict)

Bases: wyze_sdk.models.devices.bulbs.Bulb

property attributes

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
property brightness
property color
property color_temp
property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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

wyze_sdk.models.devices.cameras module

class wyze_sdk.models.devices.cameras.Camera(*, event_list: Optional[Sequence[dict]] = None, **others: dict)

Bases: wyze_sdk.models.devices.base.ClimateMixin, wyze_sdk.models.devices.base.MotionMixin, wyze_sdk.models.devices.base.VoltageMixin, wyze_sdk.models.devices.base.SwitchableMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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
class wyze_sdk.models.devices.cameras.CameraProps

Bases: object

private String P1 = “P1”; private String P1001 = “P1001”; # not used private String P1002 = “P1002”; # not used private String P1003 = “P1003”; # not used private String P1004 = “P1004”; # not used private String P1005 = “P1005”; # not used private String P1006 = “P1006”; # not used private String P1007 = “P1007”; # not used private String P1008 = “P1008”; # not used private String P1009 = “P1009”; # not used private String P1011 = “P1011”; # not used private String P1012 = “P1012”; # not used private String P1018 = “P1018”; # not used private String P1019 = “P1019”; # not used private String P1020 = “P1020”; # not used private String P1021 = “P1021”; private String P1035 = “P1035”; # not used private String P1047 = “P1047”; # event recording motion record enabled private String P1048 = “P1048”; # event recording sound record enabled private String P13 = “P13”; # not used private String P1301 = “P1301”; # not used private String P1302 = “P1302”; # not used private String P1303 = “P1303”; # not used private String P1304 = “P1304”; # not used private String P1306 = “P1306”; # not used private String P1307 = “P1307”; # not used private String P1308 = “P1308”; # not used private String P1309 = “P1309”; # not used private String P1310 = “P1310”; # not used private String P1311 = “P1311”; # not used private String P1312 = “P1312”; # not used private String P1314 = “P1314”; # not used private String P1315 = “P1315”; # not used private String P1316 = “P1316”; # not used private String P1317 = “P1317”; # not used private String P1318 = “P1318”; # not used private String P1319 = “P1319”; # not used private String P1320 = “P1320”; # not used private String P1321 = “P1321”; # not used private String P1322 = “P1322”; # not used private String P1323 = “P1323”; # not used private String P1324 = “P1324”; # not used private String P1325 = “P1325”; # not used private String P1326 = “P1326”; # not used private String P1327 = “P1327”; # not used private String P1328 = “P1328”; # not used private String P1329 = “P1329”; # not used private String P1501 = “P1501”; # not used private String P1502 = “P1502”; # not used private String P1503 = “P1503”; # not used private String P1504 = “P1504”; # not used private String P1505 = “P1505”; # not used private String P1506 = “P1506”; # not used private String P1601 = “P1601”; # not used private String P1611 = “P1611”; # not used private String P1612 = “P1612”; # not used private String P1613 = “P1613”; # not used private String P1614 = “P1614”; # not used private String P2 = “P2”; # not used private String P3 = “P3”; on/off private String P4 = “P4”; private String P5 = “P5”; online

See: com.hualai.plugin.camera.activity.WyzeDeviceProperty

com.hualai.plugin.camera_v3.activity.WyzeDeviceProperty

classmethod battery_charging()wyze_sdk.models.PropDef
classmethod comfort_standard_level()wyze_sdk.models.PropDef
classmethod dongle_light_switch()wyze_sdk.models.PropDef
classmethod event_switch()wyze_sdk.models.PropDef
classmethod humidity()wyze_sdk.models.PropDef
classmethod motion_alarm_enable()wyze_sdk.models.PropDef
classmethod power_switch()wyze_sdk.models.PropDef
classmethod room_type()wyze_sdk.models.PropDef
classmethod sound_alarm_enable()wyze_sdk.models.PropDef
classmethod supports_continuous_record()wyze_sdk.models.PropDef
classmethod suppprts_audio_alarm()wyze_sdk.models.PropDef
classmethod suppprts_co_alarm()wyze_sdk.models.PropDef
classmethod suppprts_motion_alarm()wyze_sdk.models.PropDef
classmethod suppprts_smoke_alarm()wyze_sdk.models.PropDef
classmethod suppprts_temperature_humidity()wyze_sdk.models.PropDef
classmethod temperature()wyze_sdk.models.PropDef
classmethod voltage()wyze_sdk.models.PropDef

wyze_sdk.models.devices.locks module

class wyze_sdk.models.devices.locks.Lock(parent: Optional[str] = None, record_count: Optional[int] = None, **others: dict)

Bases: wyze_sdk.models.devices.base.LockableMixin, wyze_sdk.models.devices.base.ContactMixin, wyze_sdk.models.devices.base.Device

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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

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

Bases: enum.Enum

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 = ('Local', 1)
MANUAL = ('Manual', 5)
NFC = ('NFC', 7)
REMOTE = ('Remote', 9)
describe()
classmethod parse(code: int)Optional[LockEventSource]
class wyze_sdk.models.devices.locks.LockEventType(value)

Bases: enum.Enum

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)Optional[LockEventType]
class wyze_sdk.models.devices.locks.LockGateway(*, rssi: Optional[int] = None, ssid: Optional[str] = None, locks: Optional[Sequence[dict]] = None, **others: dict)

Bases: wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*args: Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError if the object was not valid

type = 'gateway'
property uuid
validate_json()None
Raises:

WyzeObjectFormationError if the object was not valid

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

Bases: enum.Enum

See: ford_open_alarm_time

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)Optional[LockLeftOpenTime]
class wyze_sdk.models.devices.locks.LockProps

Bases: object

classmethod lock_state()wyze_sdk.models.PropDef
classmethod open_close_state()wyze_sdk.models.PropDef
class wyze_sdk.models.devices.locks.LockRecord(*, type: Optional[Union[int, wyze_sdk.models.devices.locks.LockEventType]] = None, details: Optional[Union[dict, wyze_sdk.models.devices.locks.LockRecordDetail]] = None, priority: Optional[int] = None, processed: Optional[int] = None, time: Optional[datetime.datetime] = None, user_id: Optional[str] = None, uuid: Optional[str] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

A lock record.

See: com.yunding.ford.entity.FamilyRecord

property attributes

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.

Args:

*args: Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError if the object was not valid

property type
validate_json()None
Raises:

WyzeObjectFormationError if the object was not valid

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

Bases: wyze_sdk.models.JsonObject

A lock record’s details.

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

property attributes

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.

Args:

*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.plugs module

class wyze_sdk.models.devices.plugs.OutdoorPlug(**others: dict)

Bases: wyze_sdk.models.devices.plugs.Plug

property attributes

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

Build an unordered collection of unique elements.

property away_mode
property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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)

Bases: wyze_sdk.models.devices.base.SwitchableMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property away_mode
property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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.PlugProps

Bases: object

classmethod away_mode()wyze_sdk.models.PropDef
classmethod photosensitive_switch()wyze_sdk.models.PropDef
classmethod rssi()wyze_sdk.models.PropDef
classmethod status_light()wyze_sdk.models.PropDef

wyze_sdk.models.devices.scales module

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

Bases: wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property broadcast
property device_members
property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*args: Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError if the object was not valid

type = 'Scale'
property unit
validate_json()None
Raises:

WyzeObjectFormationError if the object was not valid

class wyze_sdk.models.devices.scales.ScaleProps

Bases: object

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

Bases: wyze_sdk.models.JsonObject

A scale record.

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

property attributes

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.

Args:

*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.scales.UserGoalWeight(*, id: Optional[str] = None, created: Optional[datetime.datetime] = None, current_weight: Optional[float] = None, goal_weight: Optional[float] = None, family_member_id: Optional[str] = None, updated: Optional[datetime.datetime] = None, user_id: Optional[int] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

A user goal weight record.

See: com.wyze.ihealth.bean.GsonUserGoalWeight

property attributes

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.

Args:

*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 module

class wyze_sdk.models.devices.sensors.ContactSensor(**others: dict)

Bases: wyze_sdk.models.devices.base.ContactMixin, wyze_sdk.models.devices.sensors.Sensor

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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
class wyze_sdk.models.devices.sensors.MotionSensor(**others: dict)

Bases: wyze_sdk.models.devices.base.MotionMixin, wyze_sdk.models.devices.sensors.Sensor

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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
class wyze_sdk.models.devices.sensors.Sensor(*, type: str, **others: dict)

Bases: wyze_sdk.models.devices.base.VoltageMixin, wyze_sdk.models.devices.base.SwitchableMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property enr
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*args: Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError if the object was not valid

property type
validate_json()None
Raises:

WyzeObjectFormationError if the object was not valid

property voltage
class wyze_sdk.models.devices.sensors.SensorProps

Bases: object

P6, P1303 not used

contact

See: com.hualai.dws3u.device.WyzeEventSettingPage return {**Sensor.props(), **{

“power_state”: DeviceProps.power_state(), # “is low battery” “open_close_state”: SensorProps.open_close_state(), “open_notification”: PropDef(“P1306”, bool), # “opens” “close_notification”: PropDef(“P1307”, bool), # “closes” “open_notification_delay”: PropDef(“P1308”, “”), # “left open” “close_notification_delay”: PropDef(“P1309”, “”), # “left closed” “open_notification_time”: PropDef(“P1310”, “”), “close_notification_time”: PropDef(“P1311”, “”), # “”: PropDef(“P1312”, “”), # not used # “”: PropDef(“P1321”, “”), # not used # “”: PropDef(“P1322”, “”), # not used # “”: PropDef(“P1323”, “”), # not used # “”: PropDef(“P1324”, “”), # not used

}}

motion

See: com.hualai.pir3u.device.WyzeEventSettingPage return {**Sensor.props(), **{

# “”: PropDef(“P2”, “”), # not used # “”: PropDef(“P4”, “”), # not used # “”: PropDef(“P1300”, “”) # not used # “”: PropDef(“P1316”, “”), # not used # “”: PropDef(“P1317”, “”), # not used # “”: PropDef(“P1318”, “”), # not used # “”: PropDef(“P1319”, “”), # not used # “”: PropDef(“P1320”, “”), # not used # “”: PropDef(“P1325”, “”), # not used # “”: PropDef(“P1326”, “”), # not used # “”: PropDef(“P1327”, “”), # not used # “”: PropDef(“P1328”, “”), # not used

}}

classmethod motion_state()wyze_sdk.models.PropDef
classmethod notification()wyze_sdk.models.PropDef
classmethod open_close_state()wyze_sdk.models.PropDef
classmethod rssi()wyze_sdk.models.PropDef
classmethod voltage()wyze_sdk.models.PropDef

wyze_sdk.models.devices.thermostats module

class wyze_sdk.models.devices.thermostats.Thermostat(**others: dict)

Bases: wyze_sdk.models.devices.base.ClimateMixin, wyze_sdk.models.devices.base.LockableMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

property cooling_setpoint
property current_scenario
classmethod device_info_props()dict[str, PropDef]
property enr
property fan_mode
property firmware_version
get_non_null_attributes()dict

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

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

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

Args:

*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.ThermostatFanMode(value)

Bases: enum.Enum

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

AUTO = ('Auto', 'auto')
CYCLE = ('Cycle', 'circ')
ON = ('On', 'on')
describe()
classmethod parse(code: str)Optional[ThermostatFanMode]
class wyze_sdk.models.devices.thermostats.ThermostatProps

Bases: object

classmethod auto_switch()wyze_sdk.models.PropDef
classmethod cooling_setpoint()wyze_sdk.models.PropDef
classmethod current_scenario()wyze_sdk.models.PropDef
classmethod fan_mode()wyze_sdk.models.PropDef
classmethod heating_setpoint()wyze_sdk.models.PropDef
classmethod humidity()wyze_sdk.models.PropDef
classmethod locked()wyze_sdk.models.PropDef
classmethod system_mode()wyze_sdk.models.PropDef
classmethod temperature()wyze_sdk.models.PropDef
classmethod temperature_unit()wyze_sdk.models.PropDef
classmethod time_to_temp()wyze_sdk.models.PropDef
classmethod working_state()wyze_sdk.models.PropDef
class wyze_sdk.models.devices.thermostats.ThermostatScenarioType(value)

Bases: enum.Enum

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

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

Bases: enum.Enum

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

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

wyze_sdk.models.devices.vacuums module

class wyze_sdk.models.devices.vacuums.Vacuum(**others: dict)

Bases: wyze_sdk.models.devices.base.VoltageMixin, wyze_sdk.models.devices.base.AbstractWirelessNetworkedDevice

property attributes

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

Build an unordered collection of unique elements.

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

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

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

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

Args:

*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
class wyze_sdk.models.devices.vacuums.VacuumMap(*, id: Optional[int] = None, name: Optional[str] = None, created: Optional[datetime.datetime] = None, updated: Optional[datetime.datetime] = None, blob: Optional[dict] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

The protobuf definition for a vacuum map.

property attributes

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

property charge_station
property created
get_non_null_attributes()dict

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

property id
property name
property navigation_points
parse_blob(blob: str)dict
property rooms
to_dict(*args)dict

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

Args:

*args: Any specific formatting args (rare; generally not required)

Raises:

WyzeObjectFormationError if the object was not valid

property updated
validate_json()None
Raises:

WyzeObjectFormationError if the object was not valid

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

Bases: wyze_sdk.models.JsonObject

property attributes

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

property coordinates
get_non_null_attributes()dict

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

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

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

Args:

*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: Optional[float] = None, y: Optional[float] = None, phi: Optional[float] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

property attributes

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.

Args:

*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: Optional[str] = None, name: Optional[str] = None, clean_state: Optional[int] = None, room_clean: Optional[int] = None, name_position: Optional[wyze_sdk.models.devices.vacuums.VacuumMapPoint] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

property attributes

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

property clean_state
get_non_null_attributes()dict

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

property id
property name
property name_position
property room_clean
to_dict(*args)dict

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

Args:

*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)

Bases: enum.Enum

An enumeration.

BREAK_POINT = ('break point', [11, 33, 39])
FULL_FINISH_SWEEPING_ON_WAY_CHARGE = ('full finish sweeping on way charge', [10, 12, 26, 32, 38])
IDLE = ('idle', [0, 14, 29, 35, 40])
ON_WAY_CHARGE = ('on way charge', 5)
PAUSE = ('pause', [4, 9, 27, 31, 37])
SWEEPING = ('sweeping', [1, 7, 25, 30, 36])
describe()str
classmethod parse(code: int)Optional[VacuumMode]
class wyze_sdk.models.devices.vacuums.VacuumProps

Bases: object

classmethod battery()wyze_sdk.models.PropDef
classmethod clean_level()wyze_sdk.models.PropDef
classmethod mode()wyze_sdk.models.PropDef
classmethod sweep_record_clean_size()wyze_sdk.models.PropDef
classmethod sweep_record_clean_time()wyze_sdk.models.PropDef
class wyze_sdk.models.devices.vacuums.VacuumSuctionLevel(value)

Bases: enum.Enum

An enumeration.

QUIET = ('Quiet', 1)
STANDARD = ('Standard', 2)
STRONG = ('Strong', 3)
describe()str
classmethod parse(code: Union[str, int])Optional[VacuumSuctionLevel]
class wyze_sdk.models.devices.vacuums.VacuumSweepRecord(*, created: Optional[datetime.datetime] = None, started: Optional[datetime.datetime] = None, clean_type: Optional[int] = None, clean_time: Optional[int] = None, clean_size: Optional[int] = None, model: Optional[str] = None, **others: dict)

Bases: wyze_sdk.models.JsonObject

A vacuum sweep record.

property attributes

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

property clean_size

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

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

property created
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
property map_img_small_url
property model
property started
to_dict(*args)dict

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

Args:

*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

Module contents

Classes for constructing Wyze-specific data strtucture

class wyze_sdk.models.devices.DeviceParser

Bases: object

Optional = typing.Optional
Union = typing.Union
logging = <module 'logging' from '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py'>
classmethod parse(device: Union[dict, Device])Optional[Device]