roborock

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: Apache-2.0 Imports: 23 Imported by: 1

Documentation

Overview

Package roborock provides a stateless cloud client and explicit typed device sessions. Account credentials belong to requests; each device session owns its connection and closes when its opening context ends, the transport fails, or Close is called.

Index

Constants

View Source
const Degrees = mapmodel.Degrees

Degrees is a map protocol value.

View Source
const MapAreaKindCurrent = mapmodel.MapAreaKindCurrent

MapAreaKindCurrent is a map protocol value.

View Source
const MapAreaKindErase = mapmodel.MapAreaKindErase

MapAreaKindErase is a map protocol value.

View Source
const MapAreaKindNoCarpet = mapmodel.MapAreaKindNoCarpet

MapAreaKindNoCarpet is a map protocol value.

View Source
const MapAreaKindNoGo = mapmodel.MapAreaKindNoGo

MapAreaKindNoGo is a map protocol value.

View Source
const MapAreaKindNoMop = mapmodel.MapAreaKindNoMop

MapAreaKindNoMop is a map protocol value.

View Source
const MapAreaKindUnknown = mapmodel.MapAreaKindUnknown

MapAreaKindUnknown is a map protocol value.

View Source
const MapAreaKindWall = mapmodel.MapAreaKindWall

MapAreaKindWall is a map protocol value.

View Source
const MapFormatQ10 = mapmodel.MapFormatQ10

MapFormatQ10 is a map protocol value.

View Source
const MapFormatQ7 = mapmodel.MapFormatQ7

MapFormatQ7 is a map protocol value.

View Source
const MapFormatV1 = mapmodel.MapFormatV1

MapFormatV1 is a map protocol value.

View Source
const MapFrameQ10Array = mapmodel.MapFrameQ10Array

MapFrameQ10Array is a map protocol value.

View Source
const MapFrameQ10Trace = mapmodel.MapFrameQ10Trace

MapFrameQ10Trace is a map protocol value.

View Source
const MapFrameQ10World = mapmodel.MapFrameQ10World

MapFrameQ10World is a map protocol value.

View Source
const MapFrameQ7World = mapmodel.MapFrameQ7World

MapFrameQ7World is a map protocol value.

View Source
const MapFrameV1World = mapmodel.MapFrameV1World

MapFrameV1World is a map protocol value.

View Source
const MapPathKindClean = mapmodel.MapPathKindClean

MapPathKindClean is a map protocol value.

View Source
const MapPathKindGoto = mapmodel.MapPathKindGoto

MapPathKindGoto is a map protocol value.

View Source
const MapPathKindPredicted = mapmodel.MapPathKindPredicted

MapPathKindPredicted is a map protocol value.

View Source
const MapPathKindTrace = mapmodel.MapPathKindTrace

MapPathKindTrace is a map protocol value.

View Source
const MapUnitMeters = mapmodel.MapUnitMeters

MapUnitMeters is a map protocol value.

View Source
const MapUnitMillimeters = mapmodel.MapUnitMillimeters

MapUnitMillimeters is a map protocol value.

View Source
const MapUnitPixels = mapmodel.MapUnitPixels

MapUnitPixels is a map protocol value.

View Source
const Minus1 = mapmodel.Minus1

Minus1 is a map protocol value.

View Source
const N1 = mapmodel.N1

N1 is a map protocol value.

View Source
const Radians = mapmodel.Radians

Radians is a map protocol value.

Variables

This section is empty.

Functions

This section is empty.

Types

type A01Operations

type A01Operations interface {
	GetDyadState(ctx context.Context, request GetDyadStateRequest) (DyadState, error)
	GetZeoState(ctx context.Context, request GetZeoStateRequest) (ZeoState, error)
	SetDyadSettings(ctx context.Context, request SetDyadSettingsRequest) error
	SetZeoSettings(ctx context.Context, request SetZeoSettingsRequest) error
	StartZeo(ctx context.Context, request StartZeoRequest) error
}

A01Operations lists typed controls for A01 wet cleaners and washing machines. Select query properties supported by the appliance's discovered product schema. A successful write reports MQTT publication, not device acceptance or cycle completion.

type AccountRequest

type AccountRequest struct{ Auth AuthContext }

AccountRequest binds an account operation to the supplied credentials.

type AuthContext

type AuthContext struct {
	// BaseURL Regional IoT HTTPS origin.
	BaseURL string `json:"baseUrl"`

	// ClientID Login identity that produced these credentials.
	ClientID string   `json:"clientId"`
	Mqtt     MQTTAuth `json:"mqtt"`

	// Token Current account token; caller owns storage and replacement.
	Token string `json:"token"`
}

AuthContext defines model for AuthContext.

type CameraDescription

type CameraDescription struct {
	SdpAnswer  string     `json:"sdp_answer"`
	TurnServer TURNServer `json:"turn_server"`
}

CameraDescription defines model for CameraDescription.

type CameraQuality

type CameraQuality string

CameraQuality Open camera quality selector. Known values hd and sd. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	CameraQualityHD CameraQuality = "hd"
	CameraQualitySD CameraQuality = "sd"
)

Defines values for CameraQuality.

type CameraSession

type CameraSession struct {
	// contains filtered or unexported fields
}

CameraSession owns preview signaling and its lifetime. The caller owns the WebRTC peer connection, rendering, and adding the returned SDP and ICE.

func (*CameraSession) Close

func (c *CameraSession) Close() error

Close cancels pending signaling and stops preview once with bounded cleanup.

func (*CameraSession) Description

func (c *CameraSession) Description() CameraDescription

Description returns the negotiated SDP answer and TURN credentials. Keep the TURN credential private and pass it only to the caller's WebRTC stack.

func (*CameraSession) Done

func (c *CameraSession) Done() <-chan struct{}

Done is closed when camera signaling terminates or its owning device closes.

func (*CameraSession) GetICE

GetICE reads and decodes the device's next ICE candidate.

func (*CameraSession) SendICE

SendICE sends one caller-provided plain ICE candidate without retries.

type ChargeStatus

type ChargeStatus int64

ChargeStatus Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	ChargeStatusChargeWaiting ChargeStatus = 0
	ChargeStatusCharging      ChargeStatus = 1
	ChargeStatusUnknown       ChargeStatus = -1
)

Defines values for ChargeStatus.

type CleanFinishReason

type CleanFinishReason int64

CleanFinishReason Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	CleanFinishReasonAreaUnreachable      CleanFinishReason = 61
	CleanFinishReasonAreaUnreachable2     CleanFinishReason = 62
	CleanFinishReasonBackToWashFailure    CleanFinishReason = 68
	CleanFinishReasonBreakpoint           CleanFinishReason = 32
	CleanFinishReasonBreakpoint2          CleanFinishReason = 33
	CleanFinishReasonBreakpoint4          CleanFinishReason = 102
	CleanFinishReasonCleanupInterrupted   CleanFinishReason = 24
	CleanFinishReasonCleanupInterrupted10 CleanFinishReason = 109
	CleanFinishReasonCleanupInterrupted11 CleanFinishReason = 110
	CleanFinishReasonCleanupInterrupted2  CleanFinishReason = 34
	CleanFinishReasonCleanupInterrupted3  CleanFinishReason = 64
	CleanFinishReasonCleanupInterrupted4  CleanFinishReason = 51
	CleanFinishReasonCleanupInterrupted5  CleanFinishReason = 101
	CleanFinishReasonCleanupInterrupted6  CleanFinishReason = 104
	CleanFinishReasonCleanupInterrupted7  CleanFinishReason = 105
	CleanFinishReasonCleanupInterrupted8  CleanFinishReason = 106
	CleanFinishReasonCleanupInterrupted9  CleanFinishReason = 107
	CleanFinishReasonFinishedCleaning     CleanFinishReason = 52
	CleanFinishReasonFinishedCleaning2    CleanFinishReason = 54
	CleanFinishReasonFinishedCleaning3    CleanFinishReason = 55
	CleanFinishReasonFinishedCleaning4    CleanFinishReason = 56
	CleanFinishReasonFinishedClenaing5    CleanFinishReason = 57
	CleanFinishReasonLocateFail           CleanFinishReason = 45
	CleanFinishReasonLocateFail2          CleanFinishReason = 65
	CleanFinishReasonManualInterrupt      CleanFinishReason = 21
	CleanFinishReasonManualInterrupt10    CleanFinishReason = 60
	CleanFinishReasonManualInterrupt11    CleanFinishReason = 103
	CleanFinishReasonManualInterrupt12    CleanFinishReason = 29
	CleanFinishReasonManualInterrupt2     CleanFinishReason = 21
	CleanFinishReasonManualInterrupt3     CleanFinishReason = 35
	CleanFinishReasonManualInterrupt4     CleanFinishReason = 36
	CleanFinishReasonManualInterrupt5     CleanFinishReason = 37
	CleanFinishReasonManualInterrupt6     CleanFinishReason = 43
	CleanFinishReasonManualInterrupt7     CleanFinishReason = 48
	CleanFinishReasonManualInterrupt8     CleanFinishReason = 49
	CleanFinishReasonManualInterrupt9     CleanFinishReason = 50
	CleanFinishReasonPatrolFail           CleanFinishReason = 115
	CleanFinishReasonPatrolSuccess        CleanFinishReason = 114
	CleanFinishReasonPetPatrolFail        CleanFinishReason = 117
	CleanFinishReasonPetPatrolSuccess     CleanFinishReason = 116
	CleanFinishReasonWashingError         CleanFinishReason = 67
)

Defines values for CleanFinishReason.

type CleanRecord

type CleanRecord struct {
	Area       *int64 `json:"area,omitempty"`
	AvoidCount *int64 `json:"avoid_count,omitempty"`
	Begin      *int64 `json:"begin,omitempty"`

	// CleanType Open CleanType value; future firmware values are accepted.
	CleanType            *CleanType `json:"clean_type,omitempty"`
	Complete             *int64     `json:"complete,omitempty"`
	Duration             *int64     `json:"duration,omitempty"`
	DustCollectionStatus *int64     `json:"dust_collection_status,omitempty"`
	End                  *int64     `json:"end,omitempty"`
	Error                *int64     `json:"error,omitempty"`

	// FinishReason Open CleanFinishReason value; future firmware values are accepted.
	FinishReason *CleanFinishReason `json:"finish_reason,omitempty"`
	MapFlag      *int64             `json:"map_flag,omitempty"`

	// StartType Open CleanStartType value; future firmware values are accepted.
	StartType            *CleanStartType            `json:"start_type,omitempty"`
	WashCount            *int64                     `json:"wash_count,omitempty"`
	AdditionalProperties map[string]json.RawMessage `json:"-"`
}

CleanRecord Presence-aware CleanRecord inventory from pinned Python V1 containers; absent fields stay absent. Cleaning area is square millimeters and durations are seconds.

func (CleanRecord) Get

func (a CleanRecord) Get(fieldName string) (value json.RawMessage, found bool)

Getter for additional properties for CleanRecord. Returns the specified element and whether it was found

func (CleanRecord) MarshalJSON

func (a CleanRecord) MarshalJSON() ([]byte, error)

Override default JSON handling for CleanRecord to handle AdditionalProperties

func (*CleanRecord) Set

func (a *CleanRecord) Set(fieldName string, value json.RawMessage)

Setter for additional properties for CleanRecord

func (*CleanRecord) UnmarshalJSON

func (a *CleanRecord) UnmarshalJSON(b []byte) error

Override default JSON handling for CleanRecord to handle AdditionalProperties

type CleanRecordRequest

type CleanRecordRequest struct {
	RecordId int64 `json:"record_id"`
}

CleanRecordRequest defines model for CleanRecordRequest.

type CleanRecordResult

type CleanRecordResult struct {
	Records []CleanRecord `json:"records"`
}

CleanRecordResult defines model for CleanRecordResult.

type CleanSegmentsRequest

type CleanSegmentsRequest struct {
	Repeats  int     `json:"repeats"`
	Segments []int64 `json:"segments"`
}

CleanSegmentsRequest defines model for CleanSegmentsRequest.

type CleanStartType

type CleanStartType int64

CleanStartType Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	CleanStartTypeAlexa        CleanStartType = 801
	CleanStartTypeAlipay       CleanStartType = 902
	CleanStartTypeApp          CleanStartType = 2
	CleanStartTypeAqara        CleanStartType = 903
	CleanStartTypeButton       CleanStartType = 1
	CleanStartTypeClova        CleanStartType = 811
	CleanStartTypeDingdong     CleanStartType = 809
	CleanStartTypeDuer         CleanStartType = 808
	CleanStartTypeGoogle       CleanStartType = 802
	CleanStartTypeHisense      CleanStartType = 904
	CleanStartTypeHomekit      CleanStartType = 805
	CleanStartTypeHuawei       CleanStartType = 905
	CleanStartTypeIfttt        CleanStartType = 803
	CleanStartTypeMiHome       CleanStartType = 4
	CleanStartTypeQuickStart   CleanStartType = 5
	CleanStartTypeRoutines     CleanStartType = 101
	CleanStartTypeSchedule     CleanStartType = 3
	CleanStartTypeSiri         CleanStartType = 810
	CleanStartTypeSmartWatch   CleanStartType = 821
	CleanStartTypeTmallGenie   CleanStartType = 807
	CleanStartTypeVoiceControl CleanStartType = 13
	CleanStartTypeWechat       CleanStartType = 901
	CleanStartTypeWidgetLaunch CleanStartType = 820
	CleanStartTypeXiaoai       CleanStartType = 806
	CleanStartTypeYandex       CleanStartType = 804
)

Defines values for CleanStartType.

type CleanType

type CleanType int64

CleanType Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	CleanTypeAllZone     CleanType = 1
	CleanTypeDrawZone    CleanType = 2
	CleanTypePetPatrol   CleanType = 6
	CleanTypeQuickBuild  CleanType = 4
	CleanTypeSelectZone  CleanType = 3
	CleanTypeVideoPatrol CleanType = 5
)

Defines values for CleanType.

type CleanZonesRequest

type CleanZonesRequest struct {
	Zones []Zone `json:"zones"`
}

CleanZonesRequest defines model for CleanZonesRequest.

type CleaningState

type CleaningState int64

CleaningState Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	CleaningStateComplete                CleaningState = 0
	CleaningStateGlobalCleanNotComplete  CleaningState = 1
	CleaningStateSegmentCleanNotComplete CleaningState = 3
	CleaningStateZoneCleanNotComplete    CleaningState = 2
)

Defines values for CleaningState.

type CleaningSummary

type CleaningSummary struct {
	CleanArea            *int64                     `json:"clean_area,omitempty"`
	CleanCount           *int64                     `json:"clean_count,omitempty"`
	CleanTime            *int64                     `json:"clean_time,omitempty"`
	DustCollectionCount  *int64                     `json:"dust_collection_count,omitempty"`
	LastCleanT           *int64                     `json:"last_clean_t,omitempty"`
	Records              *[]int64                   `json:"records,omitempty"`
	AdditionalProperties map[string]json.RawMessage `json:"-"`
}

CleaningSummary Presence-aware CleaningSummary inventory from pinned Python V1 containers; absent fields stay absent. Cleaning area is square millimeters and durations are seconds.

func (CleaningSummary) Get

func (a CleaningSummary) Get(fieldName string) (value json.RawMessage, found bool)

Getter for additional properties for CleaningSummary. Returns the specified element and whether it was found

func (CleaningSummary) MarshalJSON

func (a CleaningSummary) MarshalJSON() ([]byte, error)

Override default JSON handling for CleaningSummary to handle AdditionalProperties

func (*CleaningSummary) Set

func (a *CleaningSummary) Set(fieldName string, value json.RawMessage)

Setter for additional properties for CleaningSummary

func (*CleaningSummary) UnmarshalJSON

func (a *CleaningSummary) UnmarshalJSON(b []byte) error

Override default JSON handling for CleaningSummary to handle AdditionalProperties

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client owns immutable configuration. It retains no account tokens or connections.

func NewClient

func NewClient(options ...Option) (*Client, error)

NewClient validates functional options without accessing the network.

func (*Client) GetHome

func (c *Client) GetHome(ctx context.Context, request AccountRequest) (Home, error)

GetHome returns the Roborock home identifier required by inventory requests.

func (*Client) GetHomeData

func (c *Client) GetHomeData(ctx context.Context, request HomeDataRequest) (HomeData, error)

GetHomeData joins device and product identity and includes shared devices. Unknown protocols are preserved; opening an unsupported version returns a typed error.

func (*Client) GetHomeRooms added in v0.2.0

func (c *Client) GetHomeRooms(ctx context.Context, request HomeRoomsRequest) (RoomsResult, error)

GetHomeRooms refreshes the home room list without fetching device inventory.

func (*Client) GetSharedDeviceRooms added in v0.2.0

func (c *Client) GetSharedDeviceRooms(ctx context.Context, request SharedDeviceRoomsRequest) (RoomsResult, error)

GetSharedDeviceRooms refreshes rooms belonging to a received device.

func (*Client) ListDevices

func (c *Client) ListDevices(ctx context.Context, request AccountRequest) (ListDevicesResult, error)

ListDevices performs home lookup followed by v1 inventory discovery.

func (*Client) LoginWithCode

func (c *Client) LoginWithCode(ctx context.Context, request LoginWithCodeRequest) (LoginResult, error)

LoginWithCode obtains a fresh mercy signature and current agreement before exchanging the code. Returned credentials replace caller-owned storage; the client retains no token.

func (*Client) LoginWithPassword

func (c *Client) LoginWithPassword(ctx context.Context, request LoginWithPasswordRequest) (LoginResult, error)

LoginWithPassword explicitly selects the legacy password endpoint.

func (*Client) OpenDevice

func (c *Client) OpenDevice(ctx context.Context, request OpenDeviceRequest) (*DeviceSession, error)

OpenDevice opens a fresh connection; it never reuses another account's session.

func (*Client) RequestLoginCode

func (c *Client) RequestLoginCode(ctx context.Context, request LoginCodeRequest) (LoginCodeResult, error)

RequestLoginCode reports acknowledgement of the code email request.

func (*Client) ResolveLogin

func (c *Client) ResolveLogin(ctx context.Context, request ResolveLoginRequest) (LoginContext, error)

ResolveLogin resolves an email at the explicitly configured regional origin. It returns country settings and origin without saving account state.

type ClientAPI

type ClientAPI interface {
	ResolveLogin(ctx context.Context, request ResolveLoginRequest) (LoginContext, error)
	RequestLoginCode(ctx context.Context, request LoginCodeRequest) (LoginCodeResult, error)
	LoginWithCode(ctx context.Context, request LoginWithCodeRequest) (LoginResult, error)
	LoginWithPassword(ctx context.Context, request LoginWithPasswordRequest) (LoginResult, error)
	GetHome(ctx context.Context, request AccountRequest) (Home, error)
	GetHomeData(ctx context.Context, request HomeDataRequest) (HomeData, error)
	GetHomeRooms(ctx context.Context, request HomeRoomsRequest) (RoomsResult, error)
	GetSharedDeviceRooms(ctx context.Context, request SharedDeviceRoomsRequest) (RoomsResult, error)
	ListDevices(ctx context.Context, request AccountRequest) (ListDevicesResult, error)
	OpenDevice(ctx context.Context, request OpenDeviceRequest) (*DeviceSession, error)
}

ClientAPI lists account operations together. Credentials always belong to requests.

type CloudRoom added in v0.2.0

type CloudRoom struct {
	ID int64 `json:"id"`

	// Name Absent when the cloud does not report a room name.
	Name *string `json:"name,omitempty"`
}

CloudRoom defines model for CloudRoom.

type CommandAcknowledgement

type CommandAcknowledgement struct {
	// Acknowledged The RPC accepted the command. It does not establish completion of physical action.
	Acknowledged bool `json:"acknowledged"`

	// Sent The command was successfully published. Q10 publication does not establish device acceptance.
	Sent bool `json:"sent"`
}

CommandAcknowledgement defines model for CommandAcknowledgement.

type Consumables

type Consumables struct {
	CleaningBrushWorkTimes  *int64                     `json:"cleaning_brush_work_times,omitempty"`
	DustCollectionWorkTimes *int64                     `json:"dust_collection_work_times,omitempty"`
	FilterElementWorkTime   *int64                     `json:"filter_element_work_time,omitempty"`
	FilterWorkTime          *int64                     `json:"filter_work_time,omitempty"`
	MainBrushWorkTime       *int64                     `json:"main_brush_work_time,omitempty"`
	MoprollerWorkTime       *int64                     `json:"moproller_work_time,omitempty"`
	SensorDirtyTime         *int64                     `json:"sensor_dirty_time,omitempty"`
	SideBrushWorkTime       *int64                     `json:"side_brush_work_time,omitempty"`
	StrainerWorkTimes       *int64                     `json:"strainer_work_times,omitempty"`
	AdditionalProperties    map[string]json.RawMessage `json:"-"`
}

Consumables Presence-aware Consumables inventory from pinned Python V1 containers; absent fields stay absent. Cleaning area is square millimeters and durations are seconds.

func (Consumables) Get

func (a Consumables) Get(fieldName string) (value json.RawMessage, found bool)

Getter for additional properties for Consumables. Returns the specified element and whether it was found

func (Consumables) MarshalJSON

func (a Consumables) MarshalJSON() ([]byte, error)

Override default JSON handling for Consumables to handle AdditionalProperties

func (*Consumables) Set

func (a *Consumables) Set(fieldName string, value json.RawMessage)

Setter for additional properties for Consumables

func (*Consumables) UnmarshalJSON

func (a *Consumables) UnmarshalJSON(b []byte) error

Override default JSON handling for Consumables to handle AdditionalProperties

type DND

type DND struct {
	Enabled              *int64                     `json:"enabled,omitempty"`
	EndHour              *int64                     `json:"end_hour,omitempty"`
	EndMinute            *int64                     `json:"end_minute,omitempty"`
	StartHour            *int64                     `json:"start_hour,omitempty"`
	StartMinute          *int64                     `json:"start_minute,omitempty"`
	AdditionalProperties map[string]json.RawMessage `json:"-"`
}

DND defines model for DND.

func (DND) Get

func (a DND) Get(fieldName string) (value json.RawMessage, found bool)

Getter for additional properties for DND. Returns the specified element and whether it was found

func (DND) MarshalJSON

func (a DND) MarshalJSON() ([]byte, error)

Override default JSON handling for DND to handle AdditionalProperties

func (*DND) Set

func (a *DND) Set(fieldName string, value json.RawMessage)

Setter for additional properties for DND

func (*DND) UnmarshalJSON

func (a *DND) UnmarshalJSON(b []byte) error

Override default JSON handling for DND to handle AdditionalProperties

type Device

type Device struct {
	// Capability Vendor capability flags when present.
	Capability *int64 `json:"capability,omitempty"`

	// Category Open product category independent of capabilities.
	Category *string `json:"category,omitempty"`

	// Family Open implementation family derived from protocol, model and category. Unknown devices remain discoverable.
	Family   *DeviceFamily `json:"family,omitempty"`
	Firmware *string       `json:"firmware,omitempty"`
	ID       string        `json:"id"`

	// LocalKey Device encryption secret; do not log it.
	LocalKey  string `json:"localKey"`
	Model     string `json:"model"`
	Name      string `json:"name"`
	Online    *bool  `json:"online,omitempty"`
	ProductID string `json:"productId"`

	// Protocol Open device protocol value. Unsupported future versions remain visible to callers.
	Protocol ProtocolVersion `json:"protocol"`
	RoomID   *int64          `json:"roomId,omitempty"`

	// Shared True when discovered through the vendor shared-device list.
	Shared bool `json:"shared"`

	// SupportedProperties Advertised numeric datapoint IDs; select typed A01 query properties from this inventory.
	SupportedProperties []int `json:"supportedProperties"`
}

Device defines model for Device.

type DeviceCapabilities added in v0.2.0

type DeviceCapabilities struct {
	MapContent   bool `json:"mapContent"`
	MapList      bool `json:"mapList"`
	MapRooms     bool `json:"mapRooms"`
	MapSelection bool `json:"mapSelection"`

	// MapTrace Separate trace stream requests; map and trace need not form one coherent snapshot.
	MapTrace     bool `json:"mapTrace"`
	RoomCleaning bool `json:"roomCleaning"`
	ZoneCleaning bool `json:"zoneCleaning"`
}

DeviceCapabilities defines model for DeviceCapabilities.

type DeviceErrorCode

type DeviceErrorCode int64

DeviceErrorCode Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	DeviceErrorCodeAudioError             DeviceErrorCode = 56
	DeviceErrorCodeBatteryError           DeviceErrorCode = 14
	DeviceErrorCodeBumperStuck            DeviceErrorCode = 2
	DeviceErrorCodeCannotCrossCarpet      DeviceErrorCode = 31
	DeviceErrorCodeChargingError          DeviceErrorCode = 13
	DeviceErrorCodeCheckCleanCarouse      DeviceErrorCode = 55
	DeviceErrorCodeCleanCarouselException DeviceErrorCode = 52
	DeviceErrorCodeCleanCarouselWaterFull DeviceErrorCode = 53
	DeviceErrorCodeClearBrushException    DeviceErrorCode = 42
	DeviceErrorCodeClearBrushException2   DeviceErrorCode = 43
	DeviceErrorCodeClearWaterBoxException DeviceErrorCode = 41
	DeviceErrorCodeClearWaterBoxHoare     DeviceErrorCode = 38
	DeviceErrorCodeCliffSensorError       DeviceErrorCode = 4
	DeviceErrorCodeCollectDustError3      DeviceErrorCode = 34
	DeviceErrorCodeCollectDustError4      DeviceErrorCode = 35
	DeviceErrorCodeCompassError           DeviceErrorCode = 11
	DeviceErrorCodeDirtyWaterBoxHoare     DeviceErrorCode = 39
	DeviceErrorCodeDock                   DeviceErrorCode = 19
	DeviceErrorCodeDockLocatorError       DeviceErrorCode = 22
	DeviceErrorCodeDrainWaterException    DeviceErrorCode = 49
	DeviceErrorCodeFanError               DeviceErrorCode = 18
	DeviceErrorCodeFilterBlocked          DeviceErrorCode = 29
	DeviceErrorCodeFilterScreenException  DeviceErrorCode = 44
	DeviceErrorCodeInternalError          DeviceErrorCode = 32
	DeviceErrorCodeInvisibleWallDetected  DeviceErrorCode = 30
	DeviceErrorCodeLidarBlocked           DeviceErrorCode = 1
	DeviceErrorCodeLightTouch             DeviceErrorCode = 26
	DeviceErrorCodeLowBattery             DeviceErrorCode = 12
	DeviceErrorCodeMainBrushJammed        DeviceErrorCode = 5
	DeviceErrorCodeMoppingRoller1         DeviceErrorCode = 36
	DeviceErrorCodeMoppingRoller2         DeviceErrorCode = 45
	DeviceErrorCodeMoppingRollerError2    DeviceErrorCode = 37
	DeviceErrorCodeNoDustbin              DeviceErrorCode = 9
	DeviceErrorCodeNogoZoneDetected       DeviceErrorCode = 24
	DeviceErrorCodeNone                   DeviceErrorCode = 0
	DeviceErrorCodeOpticalFlowSensorDirt  DeviceErrorCode = 20
	DeviceErrorCodeReturnToDockFail       DeviceErrorCode = 23
	DeviceErrorCodeRobotOnCarpet          DeviceErrorCode = 28
	DeviceErrorCodeRobotTilted            DeviceErrorCode = 16
	DeviceErrorCodeRobotTrapped           DeviceErrorCode = 8
	DeviceErrorCodeSideBrushError         DeviceErrorCode = 17
	DeviceErrorCodeSideBrushJammed        DeviceErrorCode = 6
	DeviceErrorCodeSinkStrainerHoare      DeviceErrorCode = 40
	DeviceErrorCodeStrainerError          DeviceErrorCode = 10
	DeviceErrorCodeTemperatureProtection  DeviceErrorCode = 51
	DeviceErrorCodeUpWaterException       DeviceErrorCode = 48
	DeviceErrorCodeVerticalBumperPressed  DeviceErrorCode = 21
	DeviceErrorCodeVibrariseJammed        DeviceErrorCode = 27
	DeviceErrorCodeVisualSensor           DeviceErrorCode = 25
	DeviceErrorCodeWallSensorDirty        DeviceErrorCode = 15
	DeviceErrorCodeWaterCarriageDrop      DeviceErrorCode = 54
	DeviceErrorCodeWheelsJammed           DeviceErrorCode = 7
	DeviceErrorCodeWheelsSuspended        DeviceErrorCode = 3
)

Defines values for DeviceErrorCode.

type DeviceFamily added in v0.2.0

type DeviceFamily string

DeviceFamily Open implementation family derived from protocol, model and category. Unknown devices remain discoverable.

const (
	FamilyB01Q10   DeviceFamily = "b01_q10"
	FamilyB01Q7    DeviceFamily = "b01_q7"
	FamilyDyad     DeviceFamily = "dyad"
	FamilyUnknown  DeviceFamily = "unknown"
	FamilyV1Vacuum DeviceFamily = "v1_vacuum"
	FamilyZeo      DeviceFamily = "zeo"
)

Defines values for DeviceFamily.

type DeviceICEResult

type DeviceICEResult struct {
	// Candidate Decoded device ICE candidate; caller adds it to its WebRTC stack.
	Candidate string `json:"candidate"`
}

DeviceICEResult defines model for DeviceICEResult.

type DeviceOperations

type DeviceOperations interface {
	GetStatus(ctx context.Context, _ EmptyRequest) (Status, error)
	GetConsumables(ctx context.Context, _ EmptyRequest) (Consumables, error)
	GetCleaningSummary(ctx context.Context, _ EmptyRequest) (CleaningSummary, error)
	GetCleanRecord(ctx context.Context, req CleanRecordRequest) (CleanRecordResult, error)
	GetDND(ctx context.Context, _ EmptyRequest) (DND, error)
	StartCleaning(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	StopCleaning(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	PauseCleaning(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	ReturnToDock(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	SpotClean(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	StartDustCollection(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	StopDustCollection(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	StartMopWashing(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	StopMopWashing(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	RCStart(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	RCStop(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	RCEnd(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	DisableDND(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)
	SetFanSpeed(ctx context.Context, req SetFanSpeedRequest) (CommandAcknowledgement, error)
	SetWaterMode(ctx context.Context, req SetWaterModeRequest) (CommandAcknowledgement, error)
	SetMopMode(ctx context.Context, req SetMopModeRequest) (CommandAcknowledgement, error)
	SetDND(ctx context.Context, req SetDNDRequest) (CommandAcknowledgement, error)
	CleanZones(ctx context.Context, req CleanZonesRequest) (CommandAcknowledgement, error)
	CleanSegments(ctx context.Context, req CleanSegmentsRequest) (CommandAcknowledgement, error)
	RCMove(ctx context.Context, req RCMoveRequest) (CommandAcknowledgement, error)
}

DeviceOperations lists the typed V1 vacuum controls supported by a DeviceSession. Acknowledgements report RPC acceptance; observe GetStatus for physical completion.

type DeviceSession

type DeviceSession struct {
	// contains filtered or unexported fields
}

DeviceSession owns a single account-bound device connection and its pending requests. Close releases the connection; canceling the opening context also closes the session.

func (*DeviceSession) CleanSegments

CleanSegments sends the device command once without automatic retries.

func (*DeviceSession) CleanZones

CleanZones sends the device command once without automatic retries.

func (*DeviceSession) Close

func (s *DeviceSession) Close() error

Close cancels pending requests and releases the owned connection. Repeated calls are safe.

func (*DeviceSession) DisableDND

DisableDND sends the device command once without automatic retries.

func (*DeviceSession) Done

func (s *DeviceSession) Done() <-chan struct{}

Done closes when the opening context ends, the connection fails, or Close is called.

func (*DeviceSession) Err

func (s *DeviceSession) Err() error

Err returns the terminal typed failure after Done closes, or nil while active. A connection failure retains its underlying cause after session cleanup.

func (*DeviceSession) GetCapabilities added in v0.2.0

func (s *DeviceSession) GetCapabilities(ctx context.Context, _ EmptyRequest) (DeviceCapabilities, error)

GetCapabilities reports supported operations independently of the implementation family.

func (*DeviceSession) GetCleanRecord

func (s *DeviceSession) GetCleanRecord(ctx context.Context, req CleanRecordRequest) (CleanRecordResult, error)

GetCleanRecord reads a record ID. Multi-part results preserve every record in order.

func (*DeviceSession) GetCleaningSummary

func (s *DeviceSession) GetCleaningSummary(ctx context.Context, _ EmptyRequest) (CleaningSummary, error)

GetCleaningSummary accepts object, legacy tuple, and single-duration V1 results.

func (*DeviceSession) GetConsumables

func (s *DeviceSession) GetConsumables(ctx context.Context, _ EmptyRequest) (Consumables, error)

GetConsumables reads work counters in seconds or the documented device counter units.

func (*DeviceSession) GetDND

func (s *DeviceSession) GetDND(ctx context.Context, _ EmptyRequest) (DND, error)

GetDND reads the device's local-hour do-not-disturb schedule.

func (*DeviceSession) GetDyadState

func (s *DeviceSession) GetDyadState(ctx context.Context, request GetDyadStateRequest) (DyadState, error)

GetDyadState queries exactly the selected appliance-supported datapoints. Unselected fields remain nil. Unknown numeric enum values are retained.

func (*DeviceSession) GetMap added in v0.2.0

func (s *DeviceSession) GetMap(ctx context.Context, request GetMapRequest) (MapSnapshot, error)

GetMap retrieves map content without changing the active map. Q10 returns the next matching stream observation while the request is pending.

func (*DeviceSession) GetMapTrace added in v0.2.0

func (s *DeviceSession) GetMapTrace(ctx context.Context, _ EmptyRequest) (MapSnapshot, error)

GetMapTrace requests the next matching Q10 trace observation separately from map content. Q10 stream responses are uncorrelated; no cross-stream coherence is implied.

func (*DeviceSession) GetRooms added in v0.2.0

GetRooms returns cleaning segment IDs and any reported names. Unknown names remain absent.

func (*DeviceSession) GetStatus

func (s *DeviceSession) GetStatus(ctx context.Context, _ EmptyRequest) (Status, error)

GetStatus reads presence-aware status; zero and absent measurements remain distinct.

func (*DeviceSession) GetZeoState

func (s *DeviceSession) GetZeoState(ctx context.Context, request GetZeoStateRequest) (ZeoState, error)

GetZeoState queries exactly the selected appliance-supported datapoints. A deadline prevents waiting indefinitely for a property unsupported by the appliance.

func (*DeviceSession) ListMaps added in v0.2.0

ListMaps retrieves saved-map metadata. Q10 list order does not imply an active map.

func (*DeviceSession) OpenCamera

func (s *DeviceSession) OpenCamera(ctx context.Context, req OpenCameraRequest) (*CameraSession, error)

OpenCamera authenticates the pattern, starts preview, retrieves TURN, and exchanges SDP. Cancellation or any failure after preview starts stops preview.

func (*DeviceSession) PauseCleaning

PauseCleaning sends the device command once without automatic retries.

func (*DeviceSession) RCEnd

RCEnd sends the device command once without automatic retries.

func (*DeviceSession) RCMove

RCMove sends the device command once without automatic retries.

func (*DeviceSession) RCStart

RCStart sends the device command once without automatic retries.

func (*DeviceSession) RCStop

RCStop sends the device command once without automatic retries.

func (*DeviceSession) ReturnToDock

ReturnToDock sends the device command once without automatic retries.

func (*DeviceSession) SelectMap added in v0.2.0

SelectMap explicitly changes the V1 active map. Reads never select maps implicitly.

func (*DeviceSession) SetDND

SetDND sends the device command once without automatic retries.

func (*DeviceSession) SetDyadSettings

func (s *DeviceSession) SetDyadSettings(ctx context.Context, request SetDyadSettingsRequest) error

SetDyadSettings publishes only the supplied settings; it never retries the command.

func (*DeviceSession) SetFanSpeed

SetFanSpeed sends the device command once without automatic retries.

func (*DeviceSession) SetMopMode

SetMopMode sends the device command once without automatic retries.

func (*DeviceSession) SetWaterMode

SetWaterMode sends the device command once without automatic retries.

func (*DeviceSession) SetZeoSettings

func (s *DeviceSession) SetZeoSettings(ctx context.Context, request SetZeoSettingsRequest) error

SetZeoSettings publishes only independent settings supplied by the caller. Cycle parameters belong in StartZeo and must be bundled with the start signal.

func (*DeviceSession) SpotClean

SpotClean sends the device command once without automatic retries.

func (*DeviceSession) StartCleaning

StartCleaning sends the device command once without automatic retries.

func (*DeviceSession) StartDustCollection

func (s *DeviceSession) StartDustCollection(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)

StartDustCollection sends the device command once without automatic retries.

func (*DeviceSession) StartMopWashing

func (s *DeviceSession) StartMopWashing(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)

StartMopWashing sends the device command once without automatic retries.

func (*DeviceSession) StartZeo

func (s *DeviceSession) StartZeo(ctx context.Context, request StartZeoRequest) error

StartZeo bundles the start signal with the required mode and program and optional cycle parameters. Success reports publication; observe GetZeoState for physical cycle progress.

func (*DeviceSession) StopCleaning

StopCleaning sends the device command once without automatic retries.

func (*DeviceSession) StopDustCollection

func (s *DeviceSession) StopDustCollection(ctx context.Context, _ EmptyRequest) (CommandAcknowledgement, error)

StopDustCollection sends the device command once without automatic retries.

func (*DeviceSession) StopMopWashing

StopMopWashing sends the device command once without automatic retries.

type DeviceState

type DeviceState int64

DeviceState Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	DeviceStateAirDryingStopping       DeviceState = 202
	DeviceStateAttachingTheMop         DeviceState = 33
	DeviceStateBackToDockWashingDuster DeviceState = 6310
	DeviceStateChargerDisconnected     DeviceState = 2
	DeviceStateCharging                DeviceState = 8
	DeviceStateChargingComplete        DeviceState = 100
	DeviceStateChargingProblem         DeviceState = 9
	DeviceStateCleanMopCleaning        DeviceState = 6302
	DeviceStateCleanMopMopping         DeviceState = 6303
	DeviceStateCleaning                DeviceState = 5
	DeviceStateDetachingTheMop         DeviceState = 34
	DeviceStateDeviceOffline           DeviceState = 101
	DeviceStateDocking                 DeviceState = 15
	DeviceStateEggAttack               DeviceState = 30
	DeviceStateEmptyingTheBin          DeviceState = 22
	DeviceStateError                   DeviceState = 12
	DeviceStateGoingToTarget           DeviceState = 16
	DeviceStateGoingToWashTheMop       DeviceState = 26
	DeviceStateIdle                    DeviceState = 3
	DeviceStateInCall                  DeviceState = 28
	DeviceStateLocked                  DeviceState = 103
	DeviceStateManualMode              DeviceState = 7
	DeviceStateMapping                 DeviceState = 29
	DeviceStatePatrol                  DeviceState = 32
	DeviceStatePaused                  DeviceState = 10
	DeviceStateRemoteControlActive     DeviceState = 4
	DeviceStateReturningHome           DeviceState = 6
	DeviceStateRobotStatusMopping      DeviceState = 6301
	DeviceStateSegmentCleanMopCleaning DeviceState = 6305
	DeviceStateSegmentCleanMopMopping  DeviceState = 6306
	DeviceStateSegmentCleaning         DeviceState = 18
	DeviceStateSegmentMopping          DeviceState = 6304
	DeviceStateShuttingDown            DeviceState = 13
	DeviceStateSpotCleaning            DeviceState = 11
	DeviceStateStarting                DeviceState = 1
	DeviceStateUnknown                 DeviceState = 0
	DeviceStateUpdating                DeviceState = 14
	DeviceStateWashingTheMop           DeviceState = 23
	DeviceStateWashingTheMop2          DeviceState = 25
	DeviceStateZonedCleanMopCleaning   DeviceState = 6308
	DeviceStateZonedCleanMopMopping    DeviceState = 6309
	DeviceStateZonedCleaning           DeviceState = 17
	DeviceStateZonedMopping            DeviceState = 6307
)

Defines values for DeviceState.

type DockErrorCode

type DockErrorCode int64

DockErrorCode Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	DockErrorCodeAutoEmptyDockFanError     DockErrorCode = 33
	DockErrorCodeAutoEmptyDockVoltageError DockErrorCode = 35
	DockErrorCodeCleaningTankFullOrBlocked DockErrorCode = 53
	DockErrorCodeDirtyTankLatchOpen        DockErrorCode = 44
	DockErrorCodeDuctBlockage              DockErrorCode = 34
	DockErrorCodeMaintenanceBrushJammed    DockErrorCode = 42
	DockErrorCodeNoDustbin                 DockErrorCode = 46
	DockErrorCodeNoDustbinOrFilter         DockErrorCode = 32
	DockErrorCodeOk                        DockErrorCode = 0
	DockErrorCodeWasteWaterTankFull        DockErrorCode = 39
	DockErrorCodeWaterEmpty                DockErrorCode = 38
)

Defines values for DockErrorCode.

type DockType

type DockType int64

DockType Open numeric enum from pinned Python V1 mappings; unknown firmware values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	DockTypeCoupleDock      DockType = 13
	DockTypeF1CDock         DockType = 46
	DockTypeF1Dock          DockType = 41
	DockTypeF1RDock         DockType = 42
	DockTypeF1SDock         DockType = 44
	DockTypeF2RDock         DockType = 43
	DockTypeHeraDock        DockType = 24
	DockTypeK1CDock         DockType = 19
	DockTypeK1CLiteDock     DockType = 28
	DockTypeK1DDock         DockType = 37
	DockTypeK1Dock          DockType = 17
	DockTypeK1RDock         DockType = 29
	DockTypeK1SDock         DockType = 20
	DockTypeK1SProDock      DockType = 26
	DockTypeO0Dock          DockType = 0
	DockTypeO1Dock          DockType = 1
	DockTypeO2Dock          DockType = 2
	DockTypeO3Dock          DockType = 3
	DockTypeO3PlusDock      DockType = 6
	DockTypeO4Dock          DockType = 7
	DockTypeO5Dock          DockType = 10
	DockTypeO6Dock          DockType = 18
	DockTypeO7Dock          DockType = 35
	DockTypeO7HDock         DockType = 45
	DockTypeOcDock          DockType = 5
	DockTypePearlDock       DockType = 8
	DockTypePearlPlusDock   DockType = 9
	DockTypeShell2CDock     DockType = 15
	DockTypeShell2EDock     DockType = 22
	DockTypeShell2EHeatDock DockType = 40
	DockTypeShell2ELiteDock DockType = 30
	DockTypeShell2SDock     DockType = 11
	DockTypeShell3CDock     DockType = 23
	DockTypeShell3Dock      DockType = 14
	DockTypeShell3PDock     DockType = 38
	DockTypeShell3SDock     DockType = 16
	DockTypeShell4DDock     DockType = 39
	DockTypeShell4PDock     DockType = 33
	DockTypeShell4RDock     DockType = 32
	DockTypeShell4RcDock    DockType = 31
	DockTypeShell4SDock     DockType = 34
	DockTypeShellEDock      DockType = 21
	DockTypeType27Dock      DockType = 27
	DockTypeUnknown         DockType = -9999
)

Defines values for DockType.

type DyadBrushSpeed

type DyadBrushSpeed int

DyadBrushSpeed Known protocol values; unlisted future numeric values remain valid.

const (
	DyadBrushSpeedL1 DyadBrushSpeed = 1
	DyadBrushSpeedL2 DyadBrushSpeed = 2
)

Defines values for DyadBrushSpeed.

type DyadCleanMode

type DyadCleanMode int

DyadCleanMode Known protocol values; unlisted future numeric values remain valid.

const (
	DyadCleanModeAuto        DyadCleanMode = 1
	DyadCleanModeDehydration DyadCleanMode = 3
	DyadCleanModeMax         DyadCleanMode = 2
	DyadCleanModePowerSaving DyadCleanMode = 4
)

Defines values for DyadCleanMode.

type DyadCleanser

type DyadCleanser int

DyadCleanser Known protocol values; unlisted future numeric values remain valid.

const (
	DyadCleanserDeep   DyadCleanser = 2
	DyadCleanserMax    DyadCleanser = 3
	DyadCleanserNone   DyadCleanser = 0
	DyadCleanserNormal DyadCleanser = 1
)

Defines values for DyadCleanser.

type DyadError

type DyadError int

DyadError Known protocol values; unlisted future numeric values remain valid.

const (
	DyadErrorBatteryTemperatureProtection   DyadError = 20007
	DyadErrorBatteryTemperatureProtection2  DyadError = 20008
	DyadErrorBatteryTemperatureProtectionE0 DyadError = 10000
	DyadErrorBatteryUnder10                 DyadError = 20018
	DyadErrorCleanHeadEntangled             DyadError = 20003
	DyadErrorCleanHeadTooHot                DyadError = 20004
	DyadErrorCleanTankEmpty                 DyadError = 20002
	DyadErrorCleaningHeadBlocked            DyadError = 20005
	DyadErrorDirtyChargingContacts          DyadError = 10007
	DyadErrorDirtyTankFull                  DyadError = 20000
	DyadErrorFanProtectionE4                DyadError = 10004
	DyadErrorFanProtectionE5                DyadError = 10005
	DyadErrorFanProtectionE9                DyadError = 10009
	DyadErrorLowBattery                     DyadError = 20017
	DyadErrorNone                           DyadError = 0
	DyadErrorPowerAdapterError              DyadError = 20009
	DyadErrorTemperatureProtection          DyadError = 20006
	DyadErrorWaterLevelSensorStuck          DyadError = 20001
)

Defines values for DyadError.

type DyadMode

type DyadMode int

DyadMode Known protocol values; unlisted future numeric values remain valid.

const (
	DyadModeDry        DyadMode = 3
	DyadModeWash       DyadMode = 1
	DyadModeWashAndDry DyadMode = 2
)

Defines values for DyadMode.

type DyadProperty

type DyadProperty int

DyadProperty A01 appliance datapoint identifier.

const (
	DyadPropertyAutoDry              DyadProperty = 213
	DyadPropertyAutoDryMode          DyadProperty = 224
	DyadPropertyAutoSelfCleanSet     DyadProperty = 212
	DyadPropertyAutoSelfCleanSetMode DyadProperty = 223
	DyadPropertyBrushLeft            DyadProperty = 215
	DyadPropertyBrushReset           DyadProperty = 219
	DyadPropertyBrushSpeed           DyadProperty = 208
	DyadPropertyCleanMode            DyadProperty = 205
	DyadPropertyCountdownTime        DyadProperty = 210
	DyadPropertyDryCountdown         DyadProperty = 237
	DyadPropertyDryingStatus         DyadProperty = 134
	DyadPropertyError                DyadProperty = 216
	DyadPropertyFeatureInfo          DyadProperty = 235
	DyadPropertyMeshLeft             DyadProperty = 214
	DyadPropertyMeshReset            DyadProperty = 218
	DyadPropertyPower                DyadProperty = 209
	DyadPropertyRecentRunTime        DyadProperty = 229
	DyadPropertyRecoverSettings      DyadProperty = 236
	DyadPropertySelfCleanLevel       DyadProperty = 203
	DyadPropertySelfCleanMode        DyadProperty = 202
	DyadPropertySilentDryDuration    DyadProperty = 225
	DyadPropertySilentMode           DyadProperty = 226
	DyadPropertySilentModeEndTime    DyadProperty = 228
	DyadPropertySilentModeStartTime  DyadProperty = 227
	DyadPropertyStandLockAutoRun     DyadProperty = 222
	DyadPropertyStart                DyadProperty = 200
	DyadPropertyStatus               DyadProperty = 201
	DyadPropertySuction              DyadProperty = 206
	DyadPropertyTotalRunTime         DyadProperty = 230
	DyadPropertyVolume               DyadProperty = 221
	DyadPropertyWarmLevel            DyadProperty = 204
	DyadPropertyWaterLevel           DyadProperty = 207
)

Defines values for DyadProperty.

type DyadSelfCleanLevel

type DyadSelfCleanLevel int

DyadSelfCleanLevel Known protocol values; unlisted future numeric values remain valid.

const (
	DyadSelfCleanLevelDeep   DyadSelfCleanLevel = 2
	DyadSelfCleanLevelNormal DyadSelfCleanLevel = 1
)

Defines values for DyadSelfCleanLevel.

type DyadSelfCleanMode

type DyadSelfCleanMode int

DyadSelfCleanMode Known protocol values; unlisted future numeric values remain valid.

const (
	DyadSelfCleanModeDry             DyadSelfCleanMode = 3
	DyadSelfCleanModeSelfClean       DyadSelfCleanMode = 1
	DyadSelfCleanModeSelfCleanAndDry DyadSelfCleanMode = 2
	DyadSelfCleanModeVentilation     DyadSelfCleanMode = 4
)

Defines values for DyadSelfCleanMode.

type DyadState

type DyadState struct {
	// AutoDry Known DyadSwitch values and future numeric values are accepted.
	AutoDry *DyadSwitch `json:"autoDry,omitempty"`

	// AutoDryMode Known DyadSwitch values and future numeric values are accepted.
	AutoDryMode *DyadSwitch `json:"autoDryMode,omitempty"`

	// AutoSelfCleanSet Known DyadSwitch values and future numeric values are accepted.
	AutoSelfCleanSet *DyadSwitch `json:"autoSelfCleanSet,omitempty"`

	// AutoSelfCleanSetMode Known DyadSelfCleanMode values and future numeric values are accepted.
	AutoSelfCleanSetMode *DyadSelfCleanMode `json:"autoSelfCleanSetMode,omitempty"`

	// BrushLeft Device-reported integer value.
	BrushLeft *int `json:"brushLeft,omitempty"`

	// BrushSpeed Known DyadBrushSpeed values and future numeric values are accepted.
	BrushSpeed *DyadBrushSpeed `json:"brushSpeed,omitempty"`

	// CleanMode Known DyadCleanMode values and future numeric values are accepted.
	CleanMode *DyadCleanMode `json:"cleanMode,omitempty"`

	// CountdownTime Device-reported integer value.
	CountdownTime *int `json:"countdownTime,omitempty"`

	// DryCountdown Device-reported integer value.
	DryCountdown *int `json:"dryCountdown,omitempty"`

	// Error Known DyadError values and future numeric values are accepted.
	Error *DyadError `json:"error,omitempty"`

	// MeshLeft Device-reported integer value.
	MeshLeft *int `json:"meshLeft,omitempty"`

	// Power Device-reported integer value.
	Power *int `json:"power,omitempty"`

	// RecentRunTime Daily cleaning durations, in minutes, decoded from the comma-delimited appliance value.
	RecentRunTime *[]int `json:"recentRunTime,omitempty"`

	// SelfCleanLevel Known DyadSelfCleanLevel values and future numeric values are accepted.
	SelfCleanLevel *DyadSelfCleanLevel `json:"selfCleanLevel,omitempty"`

	// SelfCleanMode Known DyadSelfCleanMode values and future numeric values are accepted.
	SelfCleanMode *DyadSelfCleanMode `json:"selfCleanMode,omitempty"`

	// SilentDryDuration Device-reported integer value.
	SilentDryDuration *int `json:"silentDryDuration,omitempty"`

	// SilentMode Known DyadSwitch values and future numeric values are accepted.
	SilentMode *DyadSwitch `json:"silentMode,omitempty"`

	// SilentModeEndTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeEndTime *int `json:"silentModeEndTime,omitempty"`

	// SilentModeStartTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeStartTime *int `json:"silentModeStartTime,omitempty"`

	// StandLockAutoRun Known DyadSwitch values and future numeric values are accepted.
	StandLockAutoRun *DyadSwitch `json:"standLockAutoRun,omitempty"`

	// Status Known DyadStatus values and future numeric values are accepted.
	Status *DyadStatus `json:"status,omitempty"`

	// Suction Known DyadSuction values and future numeric values are accepted.
	Suction *DyadSuction `json:"suction,omitempty"`

	// TotalRunTime Device-reported integer value.
	TotalRunTime *int `json:"totalRunTime,omitempty"`

	// Volume Speaker volume percent, from 0 through 100.
	Volume *int `json:"volume,omitempty"`

	// WarmLevel Known DyadWarmLevel values and future numeric values are accepted.
	WarmLevel *DyadWarmLevel `json:"warmLevel,omitempty"`

	// WaterLevel Known DyadWaterLevel values and future numeric values are accepted.
	WaterLevel *DyadWaterLevel `json:"waterLevel,omitempty"`
}

DyadState Presence-aware device state; nil fields were not returned by the appliance. Numeric enums retain future values. Only scalar datapoints with a documented type are projected; other known IDs are inventory entries and cannot be selected by this operation.

type DyadStatus

type DyadStatus int

DyadStatus Known protocol values; unlisted future numeric values remain valid.

const (
	DyadStatusCharging              DyadStatus = 3
	DyadStatusDrying                DyadStatus = 9
	DyadStatusDustingMode           DyadStatus = 14
	DyadStatusFetchFailed           DyadStatus = -997
	DyadStatusFetching              DyadStatus = -998
	DyadStatusMopWashing            DyadStatus = 4
	DyadStatusMopWashingPaused      DyadStatus = 13
	DyadStatusReady                 DyadStatus = 2
	DyadStatusReserving             DyadStatus = 12
	DyadStatusSelfCleanCleaning     DyadStatus = 5
	DyadStatusSelfCleanDeepCleaning DyadStatus = 6
	DyadStatusSelfCleanDehydrating  DyadStatus = 8
	DyadStatusSelfCleanRinsing      DyadStatus = 7
	DyadStatusUnknown               DyadStatus = -999
	DyadStatusUpdating              DyadStatus = -996
	DyadStatusVentilating           DyadStatus = 10
	DyadStatusWashing               DyadStatus = 1
)

Defines values for DyadStatus.

type DyadSuction

type DyadSuction int

DyadSuction Known protocol values; unlisted future numeric values remain valid.

const (
	DyadSuctionL1 DyadSuction = 1
	DyadSuctionL2 DyadSuction = 2
	DyadSuctionL3 DyadSuction = 3
	DyadSuctionL4 DyadSuction = 4
	DyadSuctionL5 DyadSuction = 5
	DyadSuctionL6 DyadSuction = 6
)

Defines values for DyadSuction.

type DyadSwitch

type DyadSwitch int

DyadSwitch Dyad switch encoded as integer 0 (off) or 1 (on). Unlisted values remain representable.

const (
	DyadSwitchOff DyadSwitch = 0
	DyadSwitchOn  DyadSwitch = 1
)

Defines values for DyadSwitch.

type DyadWarmLevel

type DyadWarmLevel int

DyadWarmLevel Known protocol values; unlisted future numeric values remain valid.

const (
	DyadWarmLevelDeep   DyadWarmLevel = 2
	DyadWarmLevelNormal DyadWarmLevel = 1
)

Defines values for DyadWarmLevel.

type DyadWaterLevel

type DyadWaterLevel int

DyadWaterLevel Known protocol values; unlisted future numeric values remain valid.

const (
	DyadWaterLevelL1 DyadWaterLevel = 1
	DyadWaterLevelL2 DyadWaterLevel = 2
	DyadWaterLevelL3 DyadWaterLevel = 3
	DyadWaterLevelL4 DyadWaterLevel = 4
)

Defines values for DyadWaterLevel.

type EmptyRequest

type EmptyRequest = struct{}

EmptyRequest defines model for EmptyRequest.

type FanSpeed

type FanSpeed int

FanSpeed Open device-dependent numeric enum; future values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	FanSpeedBalanced FanSpeed = 102
	FanSpeedMax      FanSpeed = 104
	FanSpeedMaxPlus  FanSpeed = 108
	FanSpeedOff      FanSpeed = 105
	FanSpeedQuiet    FanSpeed = 101
	FanSpeedTurbo    FanSpeed = 103
)

Defines values for FanSpeed.

type GetDyadStateRequest

type GetDyadStateRequest struct {
	Properties []DyadProperty `json:"properties"`
}

GetDyadStateRequest Select the appliance-supported properties to query. Every selected property must be returned before the transport completes; unselected state fields remain nil. Select only properties represented by the typed state model; metadata and unknown-shape datapoints are unsupported by this method.

type GetMapRequest added in v0.2.0

type GetMapRequest struct {
	// MapID Opaque map identifier. Empty requests the current map. Q10 only supports current-map reads.
	MapID string `json:"mapId,omitempty"`
}

GetMapRequest defines model for GetMapRequest.

type GetZeoStateRequest

type GetZeoStateRequest struct {
	Properties []ZeoProperty `json:"properties"`
}

GetZeoStateRequest Select the appliance-supported properties to query. Every selected property must be returned before the transport completes; unselected state fields remain nil. Select only properties represented by the typed state model; metadata and unknown-shape datapoints are unsupported by this method.

type HTTPDoer

type HTTPDoer interface {
	Do(request *http.Request) (*http.Response, error)
}

HTTPDoer lets callers inject every HTTP exchange.

type Home

type Home struct {
	// ID Roborock home identifier for home-data requests.
	ID   int64  `json:"id"`
	Name string `json:"name"`
}

Home defines model for Home.

type HomeData

type HomeData struct {
	Devices []Device `json:"devices"`
	Home    Home     `json:"home"`
	Rooms   []Room   `json:"rooms"`
}

HomeData defines model for HomeData.

type HomeDataRequest

type HomeDataRequest struct {
	Auth    AuthContext
	HomeID  int64
	Version HomeDataVersion
}

HomeDataRequest chooses the home and vendor home-data API revision explicitly.

type HomeDataVersion

type HomeDataVersion int

HomeDataVersion Supported home-data route revision. Zero in a request selects HomeDataV1.

const (
	HomeDataV1 HomeDataVersion = 1
	HomeDataV2 HomeDataVersion = 2
	HomeDataV3 HomeDataVersion = 3
)

Defines values for HomeDataVersion.

type HomeRoomsRequest added in v0.2.0

type HomeRoomsRequest struct {
	// Auth Caller-owned account credentials.
	Auth   AuthContext `json:"auth"`
	HomeID int64       `json:"homeId"`
}

HomeRoomsRequest defines model for HomeRoomsRequest.

type ListDevicesResult

type ListDevicesResult struct{ Devices []Device }

ListDevicesResult includes owned and shared devices in discovery order.

type ListMapsResult added in v0.2.0

type ListMapsResult struct {
	Maps []MapInfo `json:"maps"`
}

ListMapsResult defines model for ListMapsResult.

type LoginCodeRequest

type LoginCodeRequest struct{ Login LoginContext }

LoginCodeRequest requests a code using a stable caller-owned identity.

type LoginCodeResult

type LoginCodeResult struct{ Accepted bool }

LoginCodeResult reports vendor acknowledgement of the email request.

type LoginContext

type LoginContext struct {
	// BaseURL Optional explicit regional HTTPS origin.
	BaseURL *string `json:"baseUrl,omitempty"`

	// ClientID Stable caller-owned login identity; reuse it across code request and exchange.
	ClientID string `json:"clientId"`

	// Country Country code returned by region resolution or selected by the caller.
	Country string `json:"country"`

	// CountryCode Calling code required by the login endpoint.
	CountryCode string `json:"countryCode"`

	// Email Account email address.
	Email string `json:"email"`
}

LoginContext defines model for LoginContext.

type LoginResult

type LoginResult struct {
	Auth     AuthContext `json:"auth"`
	Nickname string      `json:"nickname"`
	UserID   int64       `json:"userId"`
}

LoginResult defines model for LoginResult.

type LoginWithCodeRequest

type LoginWithCodeRequest struct {
	Login LoginContext
	Code  string
}

LoginWithCodeRequest explicitly exchanges a one-time code for credentials.

type LoginWithPasswordRequest

type LoginWithPasswordRequest struct {
	Login    LoginContext
	Password string
}

LoginWithPasswordRequest uses the vendor legacy password endpoint.

type MQTTAuth

type MQTTAuth struct {
	// APIURL Hawk-authenticated API origin returned by the vendor.
	APIURL string `json:"apiUrl"`

	// BrokerURL Broker endpoint returned by the vendor.
	BrokerURL string `json:"brokerUrl"`

	// Key Account MQTT derivation key.
	Key string `json:"key"`

	// Secret Account secret used to derive MQTT password.
	Secret string `json:"secret"`

	// SigningKey Hawk HMAC signing key.
	SigningKey string `json:"signingKey"`

	// User Account identifier used to derive MQTT identity.
	User string `json:"user"`
}

MQTTAuth defines model for MQTTAuth.

type MapArea added in v0.2.0

type MapArea = mapmodel.MapArea

MapArea describes a decoded Roborock map value.

type MapAreaKind added in v0.2.0

type MapAreaKind = mapmodel.MapAreaKind

MapAreaKind describes a decoded Roborock map value.

type MapFormat added in v0.2.0

type MapFormat = mapmodel.MapFormat

MapFormat describes a decoded Roborock map value.

type MapFrame added in v0.2.0

type MapFrame = mapmodel.MapFrame

MapFrame describes a decoded Roborock map value.

type MapGrid added in v0.2.0

type MapGrid = mapmodel.MapGrid

MapGrid describes a decoded Roborock map value.

type MapGridRowYDirection added in v0.2.0

type MapGridRowYDirection = mapmodel.MapGridRowYDirection

MapGridRowYDirection describes a decoded Roborock map value.

type MapInfo added in v0.2.0

type MapInfo struct {
	// Current Present only when the family reports active-map identity.
	Current *bool `json:"current,omitempty"`

	// ID Opaque identifier returned unchanged to map operations.
	ID   string  `json:"id"`
	Name *string `json:"name,omitempty"`
}

MapInfo defines model for MapInfo.

type MapOperations added in v0.2.0

type MapOperations interface {
	GetMap(ctx context.Context, request GetMapRequest) (MapSnapshot, error)
	GetMapTrace(ctx context.Context, request EmptyRequest) (MapSnapshot, error)
	ListMaps(ctx context.Context, request EmptyRequest) (ListMapsResult, error)
	GetRooms(ctx context.Context, request EmptyRequest) (MapRoomsResult, error)
	SelectMap(ctx context.Context, request SelectMapRequest) (CommandAcknowledgement, error)
	GetCapabilities(ctx context.Context, request EmptyRequest) (DeviceCapabilities, error)
}

MapOperations lists map reads and explicit map selection on the account-bound session.

type MapPath added in v0.2.0

type MapPath = mapmodel.MapPath

MapPath describes a decoded Roborock map value.

type MapPathKind added in v0.2.0

type MapPathKind = mapmodel.MapPathKind

MapPathKind describes a decoded Roborock map value.

type MapPoint added in v0.2.0

type MapPoint = mapmodel.MapPoint

MapPoint describes a decoded Roborock map value.

func MapToPixel added in v0.2.0

func MapToPixel(grid MapGrid, point MapPoint) (MapPoint, error)

MapToPixel projects a source-world point into the map raster using explicit calibration.

func PixelToMap added in v0.2.0

func PixelToMap(grid MapGrid, point MapPoint) (MapPoint, error)

PixelToMap converts a raster position to the source map's documented coordinate frame and unit.

type MapPose added in v0.2.0

type MapPose = mapmodel.MapPose

MapPose describes a decoded Roborock map value.

type MapPoseHeadingUnit added in v0.2.0

type MapPoseHeadingUnit = mapmodel.MapPoseHeadingUnit

MapPoseHeadingUnit describes a decoded Roborock map value.

type MapRectangle added in v0.2.0

type MapRectangle = mapmodel.MapRectangle

MapRectangle describes a decoded Roborock map value.

func PixelRectangleToMap added in v0.2.0

func PixelRectangleToMap(grid MapGrid, rectangle MapRectangle) (MapRectangle, error)

PixelRectangleToMap converts both corners and orders the source-world rectangle. Inspect grid.Frame and grid.Unit before using the result for a cleaning command.

type MapRoom added in v0.2.0

type MapRoom = mapmodel.MapRoom

MapRoom describes a decoded Roborock map value.

type MapRoomMapping added in v0.2.0

type MapRoomMapping struct {
	// IoTID Optional V1 cloud room identity; unrelated to a map ID.
	IoTID *string `json:"iotId,omitempty"`
	Name  *string `json:"name,omitempty"`

	// SegmentID Device room or segment identifier accepted by CleanSegments.
	SegmentID int64 `json:"segmentId"`
}

MapRoomMapping defines model for MapRoomMapping.

type MapRoomsResult added in v0.2.0

type MapRoomsResult struct {
	Rooms []MapRoomMapping `json:"rooms"`
}

MapRoomsResult defines model for MapRoomsResult.

type MapSnapshot added in v0.2.0

type MapSnapshot = mapmodel.MapSnapshot

MapSnapshot describes a decoded Roborock map value.

type MapUnit added in v0.2.0

type MapUnit = mapmodel.MapUnit

MapUnit describes a decoded Roborock map value.

type MapUnknownBlock added in v0.2.0

type MapUnknownBlock = mapmodel.MapUnknownBlock

MapUnknownBlock describes a decoded Roborock map value.

type MopMode

type MopMode int

MopMode Open device-dependent numeric enum; future values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	MopModeCustom   MopMode = 302
	MopModeDeep     MopMode = 301
	MopModeDeepPlus MopMode = 303
	MopModeStandard MopMode = 300
)

Defines values for MopMode.

type OpenCameraRequest

type OpenCameraRequest struct {
	// PatternPassword Raw pattern digits or a 32-character MD5 digest; never log this value.
	PatternPassword string `json:"pattern_password"`

	// Quality Open CameraQuality value; future firmware values are accepted.
	Quality *CameraQuality `json:"quality,omitempty"`

	// SdpOffer Plain SDP offer from caller-owned WebRTC stack.
	SdpOffer string `json:"sdp_offer"`
}

OpenCameraRequest defines model for OpenCameraRequest.

type OpenDeviceRequest

type OpenDeviceRequest struct {
	Auth     AuthContext
	DeviceID string
	// LocalKey is required by device encryption and comes from discovery.
	LocalKey string
	// Protocol is required; use the protocol returned by discovery.
	Protocol ProtocolVersion
}

OpenDeviceRequest binds one connection to one account and device until closed.

type Option

type Option func(*clientOptions) error

Option configures immutable service settings and network seams.

func WithBaseURL

func WithBaseURL(origin string) Option

WithBaseURL selects the regional HTTPS origin. Login requests may override it explicitly.

func WithHTTPClient

func WithHTTPClient(client HTTPDoer) Option

WithHTTPClient injects an HTTP client. The caller owns its transport.

func WithMQTTDial

func WithMQTTDial(dial mqtt.DialFunc) Option

WithMQTTDial injects a connection-producing network seam. It must honor context cancellation. The default dialer establishes verified TLS. An injected dialer owns transport security.

type ProtocolVersion

type ProtocolVersion string

ProtocolVersion Open device protocol value. Unsupported future versions remain visible to callers.

const (
	ProtocolA01 ProtocolVersion = "A01"
	ProtocolB01 ProtocolVersion = "B01"
	ProtocolL01 ProtocolVersion = "L01"
	ProtocolV1  ProtocolVersion = "1.0"
)

Defines values for ProtocolVersion.

type RCMoveRequest

type RCMoveRequest struct {
	// Duration Movement duration in milliseconds, from 1 through 5000.
	Duration int `json:"duration"`

	// Omega Angular velocity in radians per second, from -0.8 through 0.8.
	Omega    float32 `json:"omega"`
	Sequence int     `json:"sequence"`

	// Velocity Linear velocity in meters per second, from -0.3 through 0.3.
	Velocity float32 `json:"velocity"`
}

RCMoveRequest defines model for RCMoveRequest.

type Region

type Region string

Region Open region value. Known regions are us, eu, cn and ru.

const (
	RegionCN Region = "cn"
	RegionEU Region = "eu"
	RegionRU Region = "ru"
	RegionUS Region = "us"
)

Defines values for Region.

type ResolveLoginRequest

type ResolveLoginRequest struct{ Email, ClientID string }

ResolveLoginRequest discovers a regional login origin for an account.

type Room

type Room struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
}

Room defines model for Room.

type RoomsResult added in v0.2.0

type RoomsResult struct {
	Rooms []CloudRoom `json:"rooms"`
}

RoomsResult defines model for RoomsResult.

type SelectMapRequest added in v0.2.0

type SelectMapRequest struct {
	// MapID Opaque V1 map identifier from ListMaps. Selecting changes the device active map.
	MapID string `json:"mapId"`
}

SelectMapRequest defines model for SelectMapRequest.

type SendICERequest

type SendICERequest struct {
	// Candidate Plain ICE candidate from caller-owned WebRTC stack.
	Candidate string `json:"candidate"`
}

SendICERequest defines model for SendICERequest.

type SetDNDRequest

type SetDNDRequest struct {
	EndHour     int64 `json:"end_hour"`
	EndMinute   int64 `json:"end_minute"`
	StartHour   int64 `json:"start_hour"`
	StartMinute int64 `json:"start_minute"`
}

SetDNDRequest defines model for SetDNDRequest.

type SetDyadSettingsRequest

type SetDyadSettingsRequest struct {
	// AutoDry Known DyadSwitch values and future numeric values are accepted.
	AutoDry *DyadSwitch `json:"autoDry,omitempty"`

	// AutoDryMode Known DyadSwitch values and future numeric values are accepted.
	AutoDryMode *DyadSwitch `json:"autoDryMode,omitempty"`

	// AutoSelfCleanSet Known DyadSwitch values and future numeric values are accepted.
	AutoSelfCleanSet *DyadSwitch `json:"autoSelfCleanSet,omitempty"`

	// AutoSelfCleanSetMode Known DyadSelfCleanMode values and future numeric values are accepted.
	AutoSelfCleanSetMode *DyadSelfCleanMode `json:"autoSelfCleanSetMode,omitempty"`

	// BrushSpeed Known DyadBrushSpeed values and future numeric values are accepted.
	BrushSpeed *DyadBrushSpeed `json:"brushSpeed,omitempty"`

	// CleanMode Known DyadCleanMode values and future numeric values are accepted.
	CleanMode *DyadCleanMode `json:"cleanMode,omitempty"`

	// SelfCleanLevel Known DyadSelfCleanLevel values and future numeric values are accepted.
	SelfCleanLevel *DyadSelfCleanLevel `json:"selfCleanLevel,omitempty"`

	// SelfCleanMode Known DyadSelfCleanMode values and future numeric values are accepted.
	SelfCleanMode *DyadSelfCleanMode `json:"selfCleanMode,omitempty"`

	// SilentDryDuration Device-reported integer value.
	SilentDryDuration *int `json:"silentDryDuration,omitempty"`

	// SilentMode Known DyadSwitch values and future numeric values are accepted.
	SilentMode *DyadSwitch `json:"silentMode,omitempty"`

	// SilentModeEndTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeEndTime *int `json:"silentModeEndTime,omitempty"`

	// SilentModeStartTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeStartTime *int `json:"silentModeStartTime,omitempty"`

	// StandLockAutoRun Known DyadSwitch values and future numeric values are accepted.
	StandLockAutoRun *DyadSwitch `json:"standLockAutoRun,omitempty"`

	// Suction Known DyadSuction values and future numeric values are accepted.
	Suction *DyadSuction `json:"suction,omitempty"`

	// Volume Speaker volume percent, from 0 through 100.
	Volume *int `json:"volume,omitempty"`

	// WarmLevel Known DyadWarmLevel values and future numeric values are accepted.
	WarmLevel *DyadWarmLevel `json:"warmLevel,omitempty"`

	// WaterLevel Known DyadWaterLevel values and future numeric values are accepted.
	WaterLevel *DyadWaterLevel `json:"waterLevel,omitempty"`
}

SetDyadSettingsRequest Sparse settings update. Absent fields are never sent. Integer switches use the appliance protocol value (typically 0 or 1).

type SetFanSpeedRequest

type SetFanSpeedRequest struct {
	// Speed Open FanSpeed value; future firmware values are accepted.
	Speed FanSpeed `json:"speed"`
}

SetFanSpeedRequest defines model for SetFanSpeedRequest.

type SetMopModeRequest

type SetMopModeRequest struct {
	// Mode Open MopMode value; future firmware values are accepted.
	Mode MopMode `json:"mode"`
}

SetMopModeRequest defines model for SetMopModeRequest.

type SetWaterModeRequest

type SetWaterModeRequest struct {
	// Mode Open WaterMode value; future firmware values are accepted.
	Mode WaterMode `json:"mode"`
}

SetWaterModeRequest defines model for SetWaterModeRequest.

type SetZeoSettingsRequest

type SetZeoSettingsRequest struct {
	// ChildLock Appliance boolean value.
	ChildLock *bool `json:"childLock,omitempty"`

	// Countdown Device-reported integer value.
	Countdown *int `json:"countdown,omitempty"`

	// DetergentExpansionType Known ZeoDetergentExpansionType values and future numeric values are accepted.
	DetergentExpansionType *ZeoDetergentExpansionType `json:"detergentExpansionType,omitempty"`

	// DetergentSet Appliance boolean value.
	DetergentSet *bool `json:"detergentSet,omitempty"`

	// DetergentType Known ZeoDetergentType values and future numeric values are accepted.
	DetergentType *ZeoDetergentType `json:"detergentType,omitempty"`

	// DetergentVolume Device-reported integer value.
	DetergentVolume *int `json:"detergentVolume,omitempty"`

	// LightSetting Appliance boolean value.
	LightSetting *bool `json:"lightSetting,omitempty"`

	// SilentModeEndTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeEndTime *int `json:"silentModeEndTime,omitempty"`

	// SilentModeStartTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeStartTime *int `json:"silentModeStartTime,omitempty"`

	// SoftenerExpansionType Known ZeoSoftenerExpansionType values and future numeric values are accepted.
	SoftenerExpansionType *ZeoSoftenerExpansionType `json:"softenerExpansionType,omitempty"`

	// SoftenerSet Appliance boolean value.
	SoftenerSet *bool `json:"softenerSet,omitempty"`

	// SoftenerType Known ZeoSoftenerType values and future numeric values are accepted.
	SoftenerType *ZeoSoftenerType `json:"softenerType,omitempty"`

	// SoftenerVolume Device-reported integer value.
	SoftenerVolume *int `json:"softenerVolume,omitempty"`

	// Sound Appliance boolean value.
	Sound *bool `json:"sound,omitempty"`
}

SetZeoSettingsRequest Sparse settings update. Absent fields are never sent. Switches use boolean values on the appliance protocol.

type SharedDeviceRoomsRequest added in v0.2.0

type SharedDeviceRoomsRequest struct {
	// Auth Caller-owned account credentials.
	Auth     AuthContext `json:"auth"`
	DeviceID string      `json:"deviceId"`
}

SharedDeviceRoomsRequest defines model for SharedDeviceRoomsRequest.

type StartZeoRequest

type StartZeoRequest struct {
	// DryCareMode Known ZeoDryAndCare values and future numeric values are accepted.
	DryCareMode *ZeoDryAndCare `json:"dryCareMode,omitempty"`

	// DryingMethod Known ZeoDryingMethod values and future numeric values are accepted.
	DryingMethod *ZeoDryingMethod `json:"dryingMethod,omitempty"`

	// DryingMode Known ZeoDryingMode values and future numeric values are accepted.
	DryingMode *ZeoDryingMode `json:"dryingMode,omitempty"`

	// Mode Known ZeoMode values and future numeric values are accepted.
	Mode ZeoMode `json:"mode"`

	// Program Known ZeoProgram values and future numeric values are accepted.
	Program ZeoProgram `json:"program"`

	// Rinse Known ZeoRinse values and future numeric values are accepted.
	Rinse *ZeoRinse `json:"rinse,omitempty"`

	// Soak Known ZeoSoak values and future numeric values are accepted.
	Soak *ZeoSoak `json:"soak,omitempty"`

	// Spin Known ZeoSpin values and future numeric values are accepted.
	Spin *ZeoSpin `json:"spin,omitempty"`

	// SteamVolume Known ZeoSteamVolume values and future numeric values are accepted.
	SteamVolume *ZeoSteamVolume `json:"steamVolume,omitempty"`

	// Temperature Known ZeoTemperature values and future numeric values are accepted.
	Temperature *ZeoTemperature `json:"temperature,omitempty"`
}

StartZeoRequest Start command. Mode and program must be supplied together; optional settings are sent only when provided. Acknowledgement is not completion of the physical cycle.

type Status

type Status struct {
	AdbumperStatus     *[]int64 `json:"adbumper_status,omitempty"`
	AutoDustCollection *int64   `json:"auto_dust_collection,omitempty"`
	AvoidCount         *int64   `json:"avoid_count,omitempty"`
	BackType           *int64   `json:"back_type,omitempty"`
	Battery            *int64   `json:"battery,omitempty"`
	CameraStatus       *int64   `json:"camera_status,omitempty"`

	// ChargeStatus Open ChargeStatus value; future firmware values are accepted.
	ChargeStatus         *ChargeStatus `json:"charge_status,omitempty"`
	CleanArea            *int64        `json:"clean_area,omitempty"`
	CleanPercent         *int64        `json:"clean_percent,omitempty"`
	CleanTime            *int64        `json:"clean_time,omitempty"`
	CollisionAvoidStatus *int64        `json:"collision_avoid_status,omitempty"`
	CommonStatus         *int64        `json:"common_status,omitempty"`
	CornerCleanMode      *int64        `json:"corner_clean_mode,omitempty"`
	DebugMode            *int64        `json:"debug_mode,omitempty"`
	DistanceOff          *int64        `json:"distance_off,omitempty"`
	DndEnabled           *int64        `json:"dnd_enabled,omitempty"`

	// DockErrorStatus Open DockErrorCode value; future firmware values are accepted.
	DockErrorStatus *DockErrorCode `json:"dock_error_status,omitempty"`

	// DockType Open DockType value; future firmware values are accepted.
	DockType             *DockType `json:"dock_type,omitempty"`
	DryStatus            *int64    `json:"dry_status,omitempty"`
	Dss                  *int64    `json:"dss,omitempty"`
	DustCollectionStatus *int64    `json:"dust_collection_status,omitempty"`

	// ErrorCode Open DeviceErrorCode value; future firmware values are accepted.
	ErrorCode *DeviceErrorCode `json:"error_code,omitempty"`

	// FanPower Open FanSpeed value; future firmware values are accepted.
	FanPower              *FanSpeed `json:"fan_power,omitempty"`
	HomeSecEnablePassword *int64    `json:"home_sec_enable_password,omitempty"`
	HomeSecStatus         *int64    `json:"home_sec_status,omitempty"`

	// InCleaning Open CleaningState value; future firmware values are accepted.
	InCleaning         *CleaningState `json:"in_cleaning,omitempty"`
	InFreshState       *int64         `json:"in_fresh_state,omitempty"`
	InReturning        *int64         `json:"in_returning,omitempty"`
	InWarmup           *int64         `json:"in_warmup,omitempty"`
	IsExploring        *int64         `json:"is_exploring,omitempty"`
	IsLocating         *int64         `json:"is_locating,omitempty"`
	Kct                *int64         `json:"kct,omitempty"`
	LabStatus          *int64         `json:"lab_status,omitempty"`
	LastCleanT         *int64         `json:"last_clean_t,omitempty"`
	LockStatus         *int64         `json:"lock_status,omitempty"`
	MapPresent         *int64         `json:"map_present,omitempty"`
	MapStatus          *int64         `json:"map_status,omitempty"`
	MopForbiddenEnable *int64         `json:"mop_forbidden_enable,omitempty"`

	// MopMode Open MopMode value; future firmware values are accepted.
	MopMode       *MopMode `json:"mop_mode,omitempty"`
	MsgSeq        *int64   `json:"msg_seq,omitempty"`
	MsgVer        *int64   `json:"msg_ver,omitempty"`
	Rdt           *int64   `json:"rdt,omitempty"`
	Repeat        *int64   `json:"repeat,omitempty"`
	ReplenishMode *int64   `json:"replenish_mode,omitempty"`
	Rss           *int64   `json:"rss,omitempty"`

	// State Open DeviceState value; future firmware values are accepted.
	State                  *DeviceState `json:"state,omitempty"`
	SubdivisionSets        *int64       `json:"subdivision_sets,omitempty"`
	SwitchMapMode          *int64       `json:"switch_map_mode,omitempty"`
	UnsaveMapFlag          *int64       `json:"unsave_map_flag,omitempty"`
	UnsaveMapReason        *int64       `json:"unsave_map_reason,omitempty"`
	WashPhase              *int64       `json:"wash_phase,omitempty"`
	WashReady              *int64       `json:"wash_ready,omitempty"`
	WashStatus             *int64       `json:"wash_status,omitempty"`
	WaterBoxCarriageStatus *int64       `json:"water_box_carriage_status,omitempty"`

	// WaterBoxMode Open WaterMode value; future firmware values are accepted.
	WaterBoxMode         *WaterMode                 `json:"water_box_mode,omitempty"`
	WaterBoxStatus       *int64                     `json:"water_box_status,omitempty"`
	WaterShortageStatus  *int64                     `json:"water_shortage_status,omitempty"`
	AdditionalProperties map[string]json.RawMessage `json:"-"`
}

Status Presence-aware Status inventory from pinned Python V1 containers; absent fields stay absent. Cleaning area is square millimeters and durations are seconds.

func (Status) Get

func (a Status) Get(fieldName string) (value json.RawMessage, found bool)

Getter for additional properties for Status. Returns the specified element and whether it was found

func (Status) MarshalJSON

func (a Status) MarshalJSON() ([]byte, error)

Override default JSON handling for Status to handle AdditionalProperties

func (*Status) Set

func (a *Status) Set(fieldName string, value json.RawMessage)

Setter for additional properties for Status

func (*Status) UnmarshalJSON

func (a *Status) UnmarshalJSON(b []byte) error

Override default JSON handling for Status to handle AdditionalProperties

type TURNServer

type TURNServer struct {
	Credential string `json:"credential"`
	Url        string `json:"url"`
	Username   string `json:"username"`
}

TURNServer defines model for TURNServer.

type WaterMode

type WaterMode int

WaterMode Open device-dependent numeric enum; future values are preserved. This named inventory lists known constants; field contracts explicitly accept future values.

const (
	WaterModeHigh   WaterMode = 203
	WaterModeLow    WaterMode = 201
	WaterModeMedium WaterMode = 202
	WaterModeOff    WaterMode = 200
)

Defines values for WaterMode.

type ZeoDetergentExpansionType

type ZeoDetergentExpansionType int

ZeoDetergentExpansionType Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDetergentExpansionTypeConcentratedDetergent ZeoDetergentExpansionType = 1
	ZeoDetergentExpansionTypeDetergent             ZeoDetergentExpansionType = 2
	ZeoDetergentExpansionTypeNull                  ZeoDetergentExpansionType = 0
)

Defines values for ZeoDetergentExpansionType.

type ZeoDetergentType

type ZeoDetergentType int

ZeoDetergentType Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDetergentTypeEmpty  ZeoDetergentType = 0
	ZeoDetergentTypeHigh   ZeoDetergentType = 3
	ZeoDetergentTypeLow    ZeoDetergentType = 1
	ZeoDetergentTypeMedium ZeoDetergentType = 2
)

Defines values for ZeoDetergentType.

type ZeoDirtDetectionStatus

type ZeoDirtDetectionStatus int

ZeoDirtDetectionStatus Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDirtDetectionStatusDetecting          ZeoDirtDetectionStatus = 1
	ZeoDirtDetectionStatusDetectionCompleted ZeoDirtDetectionStatus = 2
	ZeoDirtDetectionStatusIdle               ZeoDirtDetectionStatus = 0
)

Defines values for ZeoDirtDetectionStatus.

type ZeoDryAndCare

type ZeoDryAndCare int

ZeoDryAndCare Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDryAndCareNormal ZeoDryAndCare = 2
	ZeoDryAndCareNull   ZeoDryAndCare = 0
	ZeoDryAndCareSoft   ZeoDryAndCare = 1
)

Defines values for ZeoDryAndCare.

type ZeoDryerStartError

type ZeoDryerStartError int

ZeoDryerStartError Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDryerStartErrorDryerCountdown      ZeoDryerStartError = 6
	ZeoDryerStartErrorDryerDone           ZeoDryerStartError = 3
	ZeoDryerStartErrorDryerError          ZeoDryerStartError = 2
	ZeoDryerStartErrorDryerNetworkFail    ZeoDryerStartError = 7
	ZeoDryerStartErrorDryerRunning        ZeoDryerStartError = 1
	ZeoDryerStartErrorDryerSmartHosting   ZeoDryerStartError = 5
	ZeoDryerStartErrorDryerWaitingHosting ZeoDryerStartError = 4
	ZeoDryerStartErrorNull                ZeoDryerStartError = 0
)

Defines values for ZeoDryerStartError.

type ZeoDryingMethod

type ZeoDryingMethod int

ZeoDryingMethod Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDryingMethodL1   ZeoDryingMethod = 1
	ZeoDryingMethodL2   ZeoDryingMethod = 2
	ZeoDryingMethodL3   ZeoDryingMethod = 3
	ZeoDryingMethodNull ZeoDryingMethod = 0
)

Defines values for ZeoDryingMethod.

type ZeoDryingMode

type ZeoDryingMode int

ZeoDryingMode Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoDryingModeIron  ZeoDryingMode = 2
	ZeoDryingModeNone  ZeoDryingMode = 0
	ZeoDryingModeQuick ZeoDryingMode = 1
	ZeoDryingModeStore ZeoDryingMode = 3
)

Defines values for ZeoDryingMode.

type ZeoError

type ZeoError int

ZeoError Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoErrorCommunicationError   ZeoError = 10
	ZeoErrorDoorLockError        ZeoError = 3
	ZeoErrorDrainError           ZeoError = 2
	ZeoErrorDryingError          ZeoError = 11
	ZeoErrorDryingErrorE12       ZeoError = 12
	ZeoErrorDryingErrorE13       ZeoError = 13
	ZeoErrorDryingErrorE14       ZeoError = 14
	ZeoErrorDryingErrorE15       ZeoError = 15
	ZeoErrorDryingErrorE16       ZeoError = 16
	ZeoErrorDryingErrorRestart   ZeoError = 18
	ZeoErrorDryingErrorWaterFlow ZeoError = 17
	ZeoErrorHeatingError         ZeoError = 6
	ZeoErrorInverterError        ZeoError = 5
	ZeoErrorNone                 ZeoError = 0
	ZeoErrorRefillError          ZeoError = 1
	ZeoErrorSpinError            ZeoError = 19
	ZeoErrorTemperatureError     ZeoError = 7
	ZeoErrorWaterLevelError      ZeoError = 4
)

Defines values for ZeoError.

type ZeoFeatureBits

type ZeoFeatureBits int

ZeoFeatureBits Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoFeatureBitsAdaptedCustomProgram      ZeoFeatureBits = 14
	ZeoFeatureBitsConcentratedDetergent     ZeoFeatureBits = 11
	ZeoFeatureBitsDeepSelfClean             ZeoFeatureBits = 19
	ZeoFeatureBitsDetectDoorStatus          ZeoFeatureBits = 5
	ZeoFeatureBitsDirtDetection             ZeoFeatureBits = 18
	ZeoFeatureBitsDryCare                   ZeoFeatureBits = 3
	ZeoFeatureBitsExpandSoftener            ZeoFeatureBits = 6
	ZeoFeatureBitsFluffCleanNotification    ZeoFeatureBits = 16
	ZeoFeatureBitsIonDeodorization          ZeoFeatureBits = 23
	ZeoFeatureBitsNewCustomProgram          ZeoFeatureBits = 2
	ZeoFeatureBitsPowerButtonIndicatorLight ZeoFeatureBits = 17
	ZeoFeatureBitsSavePanelProgramParams    ZeoFeatureBits = 20
	ZeoFeatureBitsSetParamsInWorking        ZeoFeatureBits = 7
	ZeoFeatureBitsSetUvcInAppointment       ZeoFeatureBits = 4
	ZeoFeatureBitsSetUvcInPause             ZeoFeatureBits = 10
	ZeoFeatureBitsSilentMode                ZeoFeatureBits = 1
	ZeoFeatureBitsSmartHosting              ZeoFeatureBits = 0
	ZeoFeatureBitsSmileLight                ZeoFeatureBits = 9
	ZeoFeatureBitsSteamCare                 ZeoFeatureBits = 21
	ZeoFeatureBitsThirtyMinSoak             ZeoFeatureBits = 8
	ZeoFeatureBitsVoiceAssistant            ZeoFeatureBits = 13
	ZeoFeatureBitsVoiceAssistantRecord      ZeoFeatureBits = 15
	ZeoFeatureBitsWashDryLinkage            ZeoFeatureBits = 22
	ZeoFeatureBitsWoolDetergent             ZeoFeatureBits = 12
)

Defines values for ZeoFeatureBits.

type ZeoMode

type ZeoMode int

ZeoMode Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoModeDry        ZeoMode = 3
	ZeoModeNull       ZeoMode = 0
	ZeoModeTreatment  ZeoMode = 4
	ZeoModeWash       ZeoMode = 1
	ZeoModeWashAndDry ZeoMode = 2
)

Defines values for ZeoMode.

type ZeoProgram

type ZeoProgram int

ZeoProgram Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoProgramAirRefresh        ZeoProgram = 5
	ZeoProgramAntiAllergen      ZeoProgram = 14
	ZeoProgramAntiMite          ZeoProgram = 32
	ZeoProgramBabyCare          ZeoProgram = 13
	ZeoProgramBathTowel         ZeoProgram = 40
	ZeoProgramBedding           ZeoProgram = 7
	ZeoProgramBoilingWash       ZeoProgram = 28
	ZeoProgramBra               ZeoProgram = 26
	ZeoProgramCottonLinen       ZeoProgram = 23
	ZeoProgramCustom            ZeoProgram = 6
	ZeoProgramDeepSelfClean     ZeoProgram = 55
	ZeoProgramDescaling         ZeoProgram = 54
	ZeoProgramDown              ZeoProgram = 8
	ZeoProgramDownClean         ZeoProgram = 12
	ZeoProgramExo4060           ZeoProgram = 33
	ZeoProgramFlax              ZeoProgram = 47
	ZeoProgramGentle            ZeoProgram = 21
	ZeoProgramIntensive         ZeoProgram = 22
	ZeoProgramJeans             ZeoProgram = 41
	ZeoProgramMixing            ZeoProgram = 39
	ZeoProgramNewClothes        ZeoProgram = 17
	ZeoProgramNight             ZeoProgram = 16
	ZeoProgramNull              ZeoProgram = 0
	ZeoProgramOutdoorJackets    ZeoProgram = 44
	ZeoProgramOutdoors          ZeoProgram = 42
	ZeoProgramPanties           ZeoProgram = 27
	ZeoProgramPetCare           ZeoProgram = 56
	ZeoProgramQuick             ZeoProgram = 2
	ZeoProgramQuiltDrying       ZeoProgram = 46
	ZeoProgramRackDrying        ZeoProgram = 50
	ZeoProgramRinseAndSpin      ZeoProgram = 10
	ZeoProgramSanitize          ZeoProgram = 3
	ZeoProgramSeason            ZeoProgram = 24
	ZeoProgramShirts            ZeoProgram = 18
	ZeoProgramSilk              ZeoProgram = 9
	ZeoProgramSmallThings       ZeoProgram = 37
	ZeoProgramSmallThingsDrying ZeoProgram = 57
	ZeoProgramSoaking           ZeoProgram = 29
	ZeoProgramSocks             ZeoProgram = 30
	ZeoProgramSpin              ZeoProgram = 11
	ZeoProgramSportShoes        ZeoProgram = 49
	ZeoProgramSportswear        ZeoProgram = 15
	ZeoProgramStainRemoval      ZeoProgram = 36
	ZeoProgramStandard          ZeoProgram = 1
	ZeoProgramSteamCare         ZeoProgram = 53
	ZeoProgramSuit              ZeoProgram = 48
	ZeoProgramSummerQuilt       ZeoProgram = 51
	ZeoProgramSynthetics        ZeoProgram = 19
	ZeoProgramTShirts           ZeoProgram = 35
	ZeoProgramTimedDrying       ZeoProgram = 43
	ZeoProgramTowels            ZeoProgram = 31
	ZeoProgramTwentyC           ZeoProgram = 34
	ZeoProgramUnderwear         ZeoProgram = 20
	ZeoProgramWarming           ZeoProgram = 25
	ZeoProgramWindBreaker       ZeoProgram = 52
	ZeoProgramWool              ZeoProgram = 4
	ZeoProgramYoga              ZeoProgram = 45
)

Defines values for ZeoProgram.

type ZeoProperty

type ZeoProperty int

ZeoProperty A01 appliance datapoint identifier.

const (
	ZeoPropertyAppAuthorization            ZeoProperty = 232
	ZeoPropertyChildLock                   ZeoProperty = 206
	ZeoPropertyClothPutIn                  ZeoProperty = 263
	ZeoPropertyClothReadyToDryCountdown    ZeoProperty = 264
	ZeoPropertyCountdown                   ZeoProperty = 217
	ZeoPropertyCustomParamGet              ZeoProperty = 222
	ZeoPropertyCustomParamSave             ZeoProperty = 221
	ZeoPropertyCustomProgramCleaningTime   ZeoProperty = 239
	ZeoPropertyDefaultSetting              ZeoProperty = 225
	ZeoPropertyDetergentEmpty              ZeoProperty = 226
	ZeoPropertyDetergentExpansionType      ZeoProperty = 248
	ZeoPropertyDetergentSet                ZeoProperty = 211
	ZeoPropertyDetergentType               ZeoProperty = 213
	ZeoPropertyDetergentVolume             ZeoProperty = 230
	ZeoPropertyDeviceBound                 ZeoProperty = 262
	ZeoPropertyDirtDetectionStatus         ZeoProperty = 216
	ZeoPropertyDirtDetectionSwitch         ZeoProperty = 215
	ZeoPropertyDoorLockState               ZeoProperty = 219
	ZeoPropertyDryCareMode                 ZeoProperty = 244
	ZeoPropertyDryingMethod                ZeoProperty = 256
	ZeoPropertyDryingMode                  ZeoProperty = 210
	ZeoPropertyError                       ZeoProperty = 220
	ZeoPropertyFeatureBits                 ZeoProperty = 237
	ZeoPropertyFluffCleaned                ZeoProperty = 249
	ZeoPropertyIonDeodorization            ZeoProperty = 258
	ZeoPropertyLightSetting                ZeoProperty = 229
	ZeoPropertyMode                        ZeoProperty = 204
	ZeoPropertyNeedFluffClean              ZeoProperty = 250
	ZeoPropertyPanelProgramParamsSet       ZeoProperty = 252
	ZeoPropertyPanelProgramParamsSetResult ZeoProperty = 253
	ZeoPropertyPanelTimingProgramParams    ZeoProperty = 260
	ZeoPropertyPause                       ZeoProperty = 201
	ZeoPropertyPowerLight                  ZeoProperty = 251
	ZeoPropertyProgram                     ZeoProperty = 205
	ZeoPropertyRinse                       ZeoProperty = 208
	ZeoPropertySaveAdaptedCloudProgram     ZeoProperty = 254
	ZeoPropertyShutdown                    ZeoProperty = 202
	ZeoPropertySilentMode                  ZeoProperty = 240
	ZeoPropertySilentModeEndTime           ZeoProperty = 242
	ZeoPropertySilentModeStartTime         ZeoProperty = 241
	ZeoPropertySmartHosting                ZeoProperty = 235
	ZeoPropertySmartHostingTime            ZeoProperty = 236
	ZeoPropertySmartHostingWaitedTime      ZeoProperty = 238
	ZeoPropertySmileLightStatus            ZeoProperty = 247
	ZeoPropertySoak                        ZeoProperty = 233
	ZeoPropertySoftenerEmpty               ZeoProperty = 227
	ZeoPropertySoftenerExpansionType       ZeoProperty = 245
	ZeoPropertySoftenerSet                 ZeoProperty = 212
	ZeoPropertySoftenerType                ZeoProperty = 214
	ZeoPropertySoftenerVolume              ZeoProperty = 231
	ZeoPropertySound                       ZeoProperty = 223
	ZeoPropertySpin                        ZeoProperty = 209
	ZeoPropertyStart                       ZeoProperty = 200
	ZeoPropertyStartDryerError             ZeoProperty = 265
	ZeoPropertyStatus                      ZeoProperty = 203
	ZeoPropertySteamCareTime               ZeoProperty = 261
	ZeoPropertySteamVolume                 ZeoProperty = 257
	ZeoPropertyTemperature                 ZeoProperty = 207
	ZeoPropertyTimesAfterClean             ZeoProperty = 224
	ZeoPropertyTotalTime                   ZeoProperty = 234
	ZeoPropertyUVLight                     ZeoProperty = 228
	ZeoPropertyWashDryLinked               ZeoProperty = 255
	ZeoPropertyWashingLeft                 ZeoProperty = 218
	ZeoPropertyWiFiLinkageReset            ZeoProperty = 266
)

Defines values for ZeoProperty.

type ZeoRinse

type ZeoRinse int

ZeoRinse Known rinse intensity protocol positions, not a literal count of rinses. Public fields also accept future numeric positions.

const (
	ZeoRinseHigh ZeoRinse = 4
	ZeoRinseLow  ZeoRinse = 2
	ZeoRinseMax  ZeoRinse = 5
	ZeoRinseMid  ZeoRinse = 3
	ZeoRinseMin  ZeoRinse = 1
	ZeoRinseNone ZeoRinse = 0
)

Defines values for ZeoRinse.

type ZeoSoak

type ZeoSoak int

ZeoSoak Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoSoakHigh    ZeoSoak = 3
	ZeoSoakLow     ZeoSoak = 1
	ZeoSoakMax     ZeoSoak = 4
	ZeoSoakMedium  ZeoSoak = 2
	ZeoSoakNormal  ZeoSoak = 0
	ZeoSoakVeryMax ZeoSoak = 5
)

Defines values for ZeoSoak.

type ZeoSoftenerExpansionType

type ZeoSoftenerExpansionType int

ZeoSoftenerExpansionType Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoSoftenerExpansionTypeNull              ZeoSoftenerExpansionType = 0
	ZeoSoftenerExpansionTypeSoftener          ZeoSoftenerExpansionType = 1
	ZeoSoftenerExpansionTypeSoftenerExpansion ZeoSoftenerExpansionType = 2
	ZeoSoftenerExpansionTypeWoolDetergent     ZeoSoftenerExpansionType = 3
)

Defines values for ZeoSoftenerExpansionType.

type ZeoSoftenerType

type ZeoSoftenerType int

ZeoSoftenerType Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoSoftenerTypeEmpty  ZeoSoftenerType = 0
	ZeoSoftenerTypeHigh   ZeoSoftenerType = 3
	ZeoSoftenerTypeLow    ZeoSoftenerType = 1
	ZeoSoftenerTypeMedium ZeoSoftenerType = 2
)

Defines values for ZeoSoftenerType.

type ZeoSpin

type ZeoSpin int

ZeoSpin Known spin protocol positions, not RPM: 1 = no spin, 2 = 400 RPM, 3 = 600 RPM, 4 = 800 RPM, 5 = 1000 RPM, 6 = 1200 RPM, 7 = 1400 RPM. Public fields also accept future numeric positions.

const (
	ZeoSpinHigh     ZeoSpin = 5
	ZeoSpinLow      ZeoSpin = 3
	ZeoSpinMax      ZeoSpin = 7
	ZeoSpinMid      ZeoSpin = 4
	ZeoSpinNone     ZeoSpin = 1
	ZeoSpinNull     ZeoSpin = 0
	ZeoSpinVeryHigh ZeoSpin = 6
	ZeoSpinVeryLow  ZeoSpin = 2
)

Defines values for ZeoSpin.

type ZeoState

type ZeoState struct {
	// AppAuthorization Device-reported integer value.
	AppAuthorization *int `json:"appAuthorization,omitempty"`

	// ChildLock Appliance boolean value.
	ChildLock *bool `json:"childLock,omitempty"`

	// Countdown Device-reported integer value.
	Countdown *int `json:"countdown,omitempty"`

	// CustomParamGet Device-reported integer value.
	CustomParamGet *int `json:"customParamGet,omitempty"`

	// CustomParamSave Device-reported integer value.
	CustomParamSave *int `json:"customParamSave,omitempty"`

	// CustomProgramCleaningTime Device-reported integer value.
	CustomProgramCleaningTime *int `json:"customProgramCleaningTime,omitempty"`

	// DefaultSetting Appliance boolean value.
	DefaultSetting *bool `json:"defaultSetting,omitempty"`

	// DetergentEmpty Appliance boolean value.
	DetergentEmpty *bool `json:"detergentEmpty,omitempty"`

	// DetergentExpansionType Known ZeoDetergentExpansionType values and future numeric values are accepted.
	DetergentExpansionType *ZeoDetergentExpansionType `json:"detergentExpansionType,omitempty"`

	// DetergentSet Appliance boolean value.
	DetergentSet *bool `json:"detergentSet,omitempty"`

	// DetergentType Known ZeoDetergentType values and future numeric values are accepted.
	DetergentType *ZeoDetergentType `json:"detergentType,omitempty"`

	// DetergentVolume Device-reported integer value.
	DetergentVolume *int `json:"detergentVolume,omitempty"`

	// DirtDetectionStatus Known ZeoDirtDetectionStatus values and future numeric values are accepted.
	DirtDetectionStatus *ZeoDirtDetectionStatus `json:"dirtDetectionStatus,omitempty"`

	// DoorLockState Appliance boolean value.
	DoorLockState *bool `json:"doorLockState,omitempty"`

	// DryCareMode Known ZeoDryAndCare values and future numeric values are accepted.
	DryCareMode *ZeoDryAndCare `json:"dryCareMode,omitempty"`

	// DryingMethod Known ZeoDryingMethod values and future numeric values are accepted.
	DryingMethod *ZeoDryingMethod `json:"dryingMethod,omitempty"`

	// DryingMode Known ZeoDryingMode values and future numeric values are accepted.
	DryingMode *ZeoDryingMode `json:"dryingMode,omitempty"`

	// Error Known ZeoError values and future numeric values are accepted.
	Error *ZeoError `json:"error,omitempty"`

	// FeatureBits Device-reported integer value.
	FeatureBits *int `json:"featureBits,omitempty"`

	// LightSetting Appliance boolean value.
	LightSetting *bool `json:"lightSetting,omitempty"`

	// Mode Known ZeoMode values and future numeric values are accepted.
	Mode *ZeoMode `json:"mode,omitempty"`

	// Pause Appliance boolean value.
	Pause *bool `json:"pause,omitempty"`

	// Program Known ZeoProgram values and future numeric values are accepted.
	Program *ZeoProgram `json:"program,omitempty"`

	// Rinse Known ZeoRinse values and future numeric values are accepted.
	Rinse *ZeoRinse `json:"rinse,omitempty"`

	// Shutdown Appliance boolean value.
	Shutdown *bool `json:"shutdown,omitempty"`

	// SilentModeEndTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeEndTime *int `json:"silentModeEndTime,omitempty"`

	// SilentModeStartTime Minute of day, from 0 through 1439, in the appliance local timezone.
	SilentModeStartTime *int `json:"silentModeStartTime,omitempty"`

	// Soak Known ZeoSoak values and future numeric values are accepted.
	Soak *ZeoSoak `json:"soak,omitempty"`

	// SoftenerEmpty Appliance boolean value.
	SoftenerEmpty *bool `json:"softenerEmpty,omitempty"`

	// SoftenerExpansionType Known ZeoSoftenerExpansionType values and future numeric values are accepted.
	SoftenerExpansionType *ZeoSoftenerExpansionType `json:"softenerExpansionType,omitempty"`

	// SoftenerSet Appliance boolean value.
	SoftenerSet *bool `json:"softenerSet,omitempty"`

	// SoftenerType Known ZeoSoftenerType values and future numeric values are accepted.
	SoftenerType *ZeoSoftenerType `json:"softenerType,omitempty"`

	// SoftenerVolume Device-reported integer value.
	SoftenerVolume *int `json:"softenerVolume,omitempty"`

	// Sound Appliance boolean value.
	Sound *bool `json:"sound,omitempty"`

	// Spin Known ZeoSpin values and future numeric values are accepted.
	Spin *ZeoSpin `json:"spin,omitempty"`

	// Start Appliance boolean value.
	Start *bool `json:"start,omitempty"`

	// StartDryerError Known ZeoDryerStartError values and future numeric values are accepted.
	StartDryerError *ZeoDryerStartError `json:"startDryerError,omitempty"`

	// Status Known ZeoStatus values and future numeric values are accepted.
	Status *ZeoStatus `json:"status,omitempty"`

	// SteamCareTime Device-reported integer value.
	SteamCareTime *int `json:"steamCareTime,omitempty"`

	// SteamVolume Known ZeoSteamVolume values and future numeric values are accepted.
	SteamVolume *ZeoSteamVolume `json:"steamVolume,omitempty"`

	// Temperature Known ZeoTemperature values and future numeric values are accepted.
	Temperature *ZeoTemperature `json:"temperature,omitempty"`

	// TimesAfterClean Device-reported integer value.
	TimesAfterClean *int `json:"timesAfterClean,omitempty"`

	// TotalTime Device-reported integer value.
	TotalTime *int `json:"totalTime,omitempty"`

	// WashingLeft Device-reported integer value.
	WashingLeft *int `json:"washingLeft,omitempty"`
}

ZeoState Presence-aware device state; nil fields were not returned by the appliance. Numeric enums retain future values. Only scalar datapoints with a documented type are projected; other known IDs are inventory entries and cannot be selected by this operation.

type ZeoStatus

type ZeoStatus int

ZeoStatus Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoStatusAftercare           ZeoStatus = 12
	ZeoStatusClothReady          ZeoStatus = 16
	ZeoStatusCooling             ZeoStatus = 8
	ZeoStatusDescaling           ZeoStatus = 15
	ZeoStatusDone                ZeoStatus = 10
	ZeoStatusDrying              ZeoStatus = 7
	ZeoStatusInCare              ZeoStatus = 20
	ZeoStatusNull                ZeoStatus = 0
	ZeoStatusPreHeatComplete     ZeoStatus = 19
	ZeoStatusPreHeating          ZeoStatus = 18
	ZeoStatusRinsing             ZeoStatus = 5
	ZeoStatusSoaking             ZeoStatus = 3
	ZeoStatusSpinning            ZeoStatus = 6
	ZeoStatusStandby             ZeoStatus = 1
	ZeoStatusSteamCaring         ZeoStatus = 14
	ZeoStatusUnderDelayStart     ZeoStatus = 9
	ZeoStatusUpdating            ZeoStatus = 11
	ZeoStatusWaitingForAftercare ZeoStatus = 13
	ZeoStatusWaitingForDrying    ZeoStatus = 17
	ZeoStatusWashing             ZeoStatus = 4
	ZeoStatusWeighing            ZeoStatus = 2
)

Defines values for ZeoStatus.

type ZeoSteamVolume

type ZeoSteamVolume int

ZeoSteamVolume Known protocol values; unlisted future numeric values remain valid.

const (
	ZeoSteamVolumeHigh   ZeoSteamVolume = 3
	ZeoSteamVolumeLow    ZeoSteamVolume = 1
	ZeoSteamVolumeMax    ZeoSteamVolume = 4
	ZeoSteamVolumeMedium ZeoSteamVolume = 2
	ZeoSteamVolumeNone   ZeoSteamVolume = 0
)

Defines values for ZeoSteamVolume.

type ZeoTemperature

type ZeoTemperature int

ZeoTemperature Known temperature protocol positions, not degrees Celsius: 1 = unheated, 2 = 30 C, 3 = 40 C, 4 = 60 C, 5 = 90 C, 6 = 20 C, 7 = 95 C. Public fields also accept future numeric positions.

const (
	ZeoTemperatureHigh    ZeoTemperature = 4
	ZeoTemperatureLow     ZeoTemperature = 2
	ZeoTemperatureMax     ZeoTemperature = 5
	ZeoTemperatureMedium  ZeoTemperature = 3
	ZeoTemperatureNinetyC ZeoTemperature = 7
	ZeoTemperatureNormal  ZeoTemperature = 1
	ZeoTemperatureNull    ZeoTemperature = 0
	ZeoTemperatureTwentyC ZeoTemperature = 6
)

Defines values for ZeoTemperature.

type Zone

type Zone struct {
	Repeats int `json:"repeats"`

	// X1 Map coordinates in millimeters.
	X1 int64 `json:"x1"`

	// X2 Map coordinates in millimeters.
	X2 int64 `json:"x2"`

	// Y1 Map coordinates in millimeters.
	Y1 int64 `json:"y1"`

	// Y2 Map coordinates in millimeters.
	Y2 int64 `json:"y2"`
}

Zone defines model for Zone.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL