Documentation ¶
Index ¶
- Constants
- func ParseWebhookRequest(r *http.Request) (interface{}, error)
- type ACFanSpeed
- type ACMode
- type AmbientBrightness
- type BrightnessState
- type CeilingEvent
- type CeilingEventContext
- type CleanerOnlineStatus
- type CleanerWorkingStatus
- type Client
- type ColorBulbEvent
- type ColorBulbEventContext
- type Command
- func ACSetAllCommand(temperature int, mode ACMode, fanSpeed ACFanSpeed, power PowerState) Command
- func ButtonPushCommand(name string) Command
- func ChannelAddCommand() Command
- func ChannelSubCommand() Command
- func CreateKeyCommand(name string, typ PasscodeType, password string, start, end time.Time) (Command, error)
- func DeleteKeyCommand(id int) Command
- func DockCommand() Command
- func FanHighSpeedCommand() Command
- func FanLowSpeedCommand() Command
- func FanMiddleSpeedCommand() Command
- func FanSwingCommand() Command
- func FanTimerCommand() Command
- func FastForwardCommand() Command
- func LightBrightnessDownCommand() Command
- func LightBrightnessUpCommand() Command
- func LockCommand() Command
- func NextCommand() Command
- func PauseCommand() Command
- func PlayCommand() Command
- func PowLevelCommand(level VacuumPowerLevel) Command
- func PressCommand() Command
- func PreviousCommand() Command
- func RewindCommand() Command
- func SetAllStatusCommand(power PowerState, fanMode SmartFanMode, fanSpeed, shakeRange int) Command
- func SetBrightnessCommand(brightness int) Command
- func SetChannelCommand(channelNumber int) Command
- func SetColorCommand(r, g, b int) Command
- func SetColorTemperatureCommand(temperature int) Command
- func SetModeCommand(mode HumidifierMode) Command
- func SetMuteCommand() Command
- func SetPosition(index int, mode SetPositionMode, position int) Command
- func StartCommand() Command
- func StopCommand() Command
- func StopPlayerCommand() Command
- func ToggleCommand() Command
- func TurnOffCommand() Command
- func TurnOnCommand() Command
- func UnlockCommand() Command
- func VolumeAddCommand() Command
- func VolumeSubCommand() Command
- type ContactSensorEvent
- type ContactSensorEventContext
- type Device
- type DeviceCommandRequest
- type DeviceService
- type DeviceStatus
- type HumidifierMode
- type IndoorCamEvent
- type IndoorCamEventContext
- type InfraredDevice
- type KeyListItem
- type KeypadEvent
- type KeypadEventContext
- type LockEvent
- type LockEventContext
- type MeterEvent
- type MeterEventContext
- type MeterPlusEvent
- type MeterPlusEventContext
- type MotionSensorEvent
- type MotionSensorEventContext
- type OpenState
- type Option
- type PanTiltCamEvent
- type PanTiltCamEventContext
- type PasscodeStatus
- type PasscodeType
- type PhysicalDeviceType
- type PlugMiniJPEvent
- type PlugMiniJPEventContext
- type PlugMiniUSEvent
- type PlugMiniUSEventContext
- type PowerState
- type Scene
- type SceneService
- type SetPositionMode
- type SmartFanMode
- type StripLightEvent
- type StripLightEventContext
- type SweeperEvent
- type SweeperEventContext
- type VacuumPowerLevel
- type VirtualDeviceType
- type WebhookQueryActionType
- type WebhookService
- func (svc *WebhookService) Delete(ctx context.Context, url string) (string, error)
- func (svc *WebhookService) Query(ctx context.Context, action WebhookQueryActionType, url string) (string, error)
- func (svc *WebhookService) Setup(ctx context.Context, url, deviceList string) (string, error)
- func (svc *WebhookService) Update(ctx context.Context, url string, enable bool) (string, error)
Constants ¶
const DefaultEndpoint = "https://api.switch-bot.com"
Variables ¶
This section is empty.
Functions ¶
func ParseWebhookRequest ¶
Types ¶
type ACFanSpeed ¶
type ACFanSpeed int
ACFanSpeed represents a fan speed mode for air conditioner.
const ( ACAutoSpeed ACFanSpeed = iota + 1 ACLow ACMedium ACHigh )
type AmbientBrightness ¶
type AmbientBrightness string
const ( AmbientBrightnessBright AmbientBrightness = "bright" AmbientBrightnessDim AmbientBrightness = "dim" )
type BrightnessState ¶
type BrightnessState struct {
// contains filtered or unexported fields
}
func (BrightnessState) AmbientBrightness ¶
func (brightness BrightnessState) AmbientBrightness() (AmbientBrightness, error)
func (BrightnessState) Int ¶
func (brightness BrightnessState) Int() (int, error)
func (*BrightnessState) UnmarshalJSON ¶
func (brightness *BrightnessState) UnmarshalJSON(b []byte) error
type CeilingEvent ¶
type CeilingEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context CeilingEventContext `json:"context"` }
type CeilingEventContext ¶
type CeilingEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // ON/OFF state PowerState PowerState `json:"powerState"` // the brightness value, range from 1 to 100 Brightness int `json:"brightness"` // the color temperature value, range from 2700 to 6500 ColorTemperature int `json:"colorTemperature"` }
type CleanerOnlineStatus ¶
type CleanerOnlineStatus string
const ( CleanerOnline CleanerOnlineStatus = "online" CleanerOffline CleanerOnlineStatus = "offline" )
type CleanerWorkingStatus ¶
type CleanerWorkingStatus string
const ( CleanerStandBy CleanerWorkingStatus = "StandBy" CleanerClearing CleanerWorkingStatus = "Clearing" CleanerPaused CleanerWorkingStatus = "Paused" CleanerGotoChargeBase CleanerWorkingStatus = "GotoChargeBase" CleanerCharging CleanerWorkingStatus = "Charging" CleanerChargeDone CleanerWorkingStatus = "ChargeDone" CleanerDormant CleanerWorkingStatus = "Dormant" CleanerInTrouble CleanerWorkingStatus = "InTrouble" CleanerInRemoteControl CleanerWorkingStatus = "InRemoteControl" CleanerInDustCollecting CleanerWorkingStatus = "InDustCollecting" )
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func New ¶
New returns a new switchbot client associated with given openToken. See https://github.com/OpenWonderLabs/SwitchBotAPI/blob/7a68353d84d07d439a11cb5503b634f24302f733/README.md#getting-started for getting openToken for SwitchBot API.
func (*Client) Device ¶
func (c *Client) Device() *DeviceService
Device returns the Service object for device APIs.
func (*Client) Scene ¶
func (c *Client) Scene() *SceneService
Scene returns the Service Object for scene APIs.
func (*Client) Webhook ¶
func (c *Client) Webhook() *WebhookService
type ColorBulbEvent ¶
type ColorBulbEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context ColorBulbEventContext `json:"context"` }
type ColorBulbEventContext ¶
type ColorBulbEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the current power state of the device, "ON" or "OFF" PowerState PowerState `json:"powerState"` // the brightness value, range from 1 to 100 Brightness int `json:"brightness"` // the color value, in the format of RGB value, "255:255:255" Color string `json:"color"` // the color temperature value, range from 2700 to 6500 ColorTemperature int `json:"colorTemperature"` }
type Command ¶
type Command interface {
Request() DeviceCommandRequest
}
Command is an interface which represents Commands for devices to be used (*Client).Device().Command() method.
func ACSetAllCommand ¶
func ACSetAllCommand(temperature int, mode ACMode, fanSpeed ACFanSpeed, power PowerState) Command
ACSetAllCommand returns a new Command which sets all state of air conditioner.
func ButtonPushCommand ¶
ButtonPushCommand returns a new Command which triggers button push.
func ChannelAddCommand ¶
func ChannelAddCommand() Command
ChannelAddCommand returns a new Command which is for switching to next channel.
func ChannelSubCommand ¶
func ChannelSubCommand() Command
ChannelSubCommand returns a new Command which is for switching to previous channel.
func CreateKeyCommand ¶
func CreateKeyCommand(name string, typ PasscodeType, password string, start, end time.Time) (Command, error)
CreateKeyCommand returns a new Command which creates a new key for Lock devices. Due to security concerns, the created passcodes will be stored locally so you need to get the result through webhook. A name is a unique name for the passcode, duplicates under the same device are not allowed. A password must be a 6 to 12 digit passcode. Start time and end time are required for one-time passcode (DisposablePasscode) or temporary passcode (TimeLimitPasscode).
func DeleteKeyCommand ¶
DeleteKeyCommand returns a new Command which deletes a key from Lock devices.
func DockCommand ¶
func DockCommand() Command
DockCommand returns a new Command which returns robot vacuum cleaner to charging dock.
func FanHighSpeedCommand ¶
func FanHighSpeedCommand() Command
FanHighSpeedCommand returns a new Command which sets fan speed to high.
func FanLowSpeedCommand ¶
func FanLowSpeedCommand() Command
FanLowSpeedCommand returns a new Command which sets fan speed to low.
func FanMiddleSpeedCommand ¶
func FanMiddleSpeedCommand() Command
FanMiddleSpeedCommand returns a new Command which sets fan speed to medium.
func FanSwingCommand ¶
func FanSwingCommand() Command
FanSwingCommand returns a new Command which makes a fan swing.
func FanTimerCommand ¶
func FanTimerCommand() Command
FanTimerCommand returns a new Command which sets timer for a fan.
func FastForwardCommand ¶
func FastForwardCommand() Command
FastForwardCommand returns a new Command to make DVD player or speaker fastforward.
func LightBrightnessDownCommand ¶
func LightBrightnessDownCommand() Command
LightBrightnessDownCommand returns a new Command which make light's brigtness down.
func LightBrightnessUpCommand ¶
func LightBrightnessUpCommand() Command
LightBrightnessUpCommand returns a new Command which make light's brigtness up.
func LockCommand ¶
func LockCommand() Command
LockCommand returns a new Command which rotates the Lock device to locked position.
func NextCommand ¶
func NextCommand() Command
NextCommand returns a new Command to switch DVD player or speaker to next track.
func PauseCommand ¶
func PauseCommand() Command
PauseCommand returns a new Command to make DVD player or speaker pause.
func PlayCommand ¶
func PlayCommand() Command
PlayCommand returns a new Command to make DVD player or speaker play.
func PowLevelCommand ¶
func PowLevelCommand(level VacuumPowerLevel) Command
PowLevelCommand returns a new Command which sets suction power level of robot vacuum cleaner.
func PressCommand ¶
func PressCommand() Command
PressCommand returns a new command which trigger Bot's press command.
func PreviousCommand ¶
func PreviousCommand() Command
PreviousCommand returns a new Command to switch DVD player or speaker to previous track.
func RewindCommand ¶
func RewindCommand() Command
RewindCommand returns a new Command to make DVD player or speaker rewind.
func SetAllStatusCommand ¶
func SetAllStatusCommand(power PowerState, fanMode SmartFanMode, fanSpeed, shakeRange int) Command
SetAllStatusCommand returns a new Commend which sets all status for smart fan.
func SetBrightnessCommand ¶
SetBrightnessCommand returns a new Command which set brightness of color bulb, strip light, or ceiling ligths.
func SetChannelCommand ¶
SetChannelCommand returns a new Command which set the TV channel to given channel.
func SetColorCommand ¶
SetColorCommand returns a new Command which set RGB color value of color bulb or strip light.
func SetColorTemperatureCommand ¶
SetColorTemperatureCommand returns a new Command which set color temperature of color bulb or ceiling lights.
func SetModeCommand ¶
func SetModeCommand(mode HumidifierMode) Command
SetModeCommand returns a new Command which sets a mode for Humidifier. mode can be take one of HumidifierMode constants or 0 - 100 value. To use exact value 0 - 100, you need to pass like HumidifierMode(38).
func SetMuteCommand ¶
func SetMuteCommand() Command
SetMuteCommand returns a new Command to make DVD player or speaker mute/unmute.
func SetPosition ¶
func SetPosition(index int, mode SetPositionMode, position int) Command
SetPositionCommand returns a new Command which sets curtain devices' position. The third argument `position` can be take 0 - 100 value, 0 means opened and 100 means closed. The position value will be treated as 0 if the given value is less than 0, or treated as 100 if the given value is over 100.
func StartCommand ¶
func StartCommand() Command
StartCommand returns a new Command which starts vacuuming.
func StopCommand ¶
func StopCommand() Command
StopCommand returns a new Command which stops vacuuming.
func StopPlayerCommand ¶
func StopPlayerCommand() Command
PlayerStopCommand returns a new Command to make DVD player or speaker stop.
func ToggleCommand ¶
func ToggleCommand() Command
ToggleCommand returns a new Command which toggles state of color bulb, strip light or plug mini.
func TurnOffCommand ¶
func TurnOffCommand() Command
TurnOffCommand returns a nw Command which turns off Bot, plug, Curtain, Humidifier, or so on. For curtain devices, turn off is equivalent to set position to 100.
func TurnOnCommand ¶
func TurnOnCommand() Command
TurnOnCommand returns a new Command which turns on Bot, Plug, Curtain, Humidifier, or so on. For curtain devices, turn on is equivalent to set position to 0.
func UnlockCommand ¶
func UnlockCommand() Command
LockCommand returns a new Command which rotates the Lock device to unlocked position.
func VolumeAddCommand ¶
func VolumeAddCommand() Command
VolumeAddCommand returns a new Command which is for volume up.
func VolumeSubCommand ¶
func VolumeSubCommand() Command
VolumeSubCommand returns a new Command which is for volume up.
type ContactSensorEvent ¶
type ContactSensorEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context ContactSensorEventContext `json:"context"` }
type ContactSensorEventContext ¶
type ContactSensorEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the motion state of the device, "DETECTED" stands for motion is detected; // "NOT_DETECTED" stands for motion has not been detected for some time DetectionState string `json:"detectionState"` // when the enter or exit mode gets triggered, "IN_DOOR" or "OUT_DOOR" is returned DoorMode string `json:"doorMode"` // the level of brightness, can be "bright" or "dim" Brightness AmbientBrightness `json:"brightness"` // the state of the contact sensor, can be "open" or "close" or "timeOutNotClose" OpenState string `json:"openState"` }
type Device ¶
type Device struct { ID string `json:"deviceId"` Name string `json:"deviceName"` Type PhysicalDeviceType `json:"deviceType"` IsEnableCloudService bool `json:"enableCloudService"` Hub string `json:"hubDeviceId"` Curtains []string `json:"curtainDeviceesIds"` IsCalibrated bool `json:"calibrate"` IsGrouped bool `json:"group"` IsMaster bool `json:"master"` OpenDirection string `json:"openDirection"` GroupName bool `json:"groupName"` // is this Boolean, right? LockDeviceIDs []string `json:"lockDeviceIds"` LockDeviceID string `json:"lockDeviceId"` KeyList []KeyListItem `json:"keyList"` }
Device represents a physical SwitchBot device.
type DeviceCommandRequest ¶
type DeviceCommandRequest struct { Command string `json:"command"` Parameter string `json:"parameter,omitempty"` CommandType string `json:"commandType,omitempty"` }
func (DeviceCommandRequest) Request ¶
func (req DeviceCommandRequest) Request() DeviceCommandRequest
type DeviceService ¶
type DeviceService struct {
// contains filtered or unexported fields
}
DeviceService handles API calls related to devices. The devices API is used to access the properties and states of SwitchBot devices and to send control commands to those devices.
func (*DeviceService) List ¶
func (svc *DeviceService) List(ctx context.Context) ([]Device, []InfraredDevice, error)
List get a list of devices, which include physical devices and virtual infrared remote devices that have been added to the current user's account. The first returned value is a list of physical devices refer to the SwitchBot products. The second returned value is a list of virtual infrared remote devices such like air conditioner, TV, light, or so on. See also https://github.com/OpenWonderLabs/SwitchBotAPI/blob/7a68353d84d07d439a11cb5503b634f24302f733/README.md#get-device-list
func (*DeviceService) Status ¶
func (svc *DeviceService) Status(ctx context.Context, id string) (DeviceStatus, error)
Status get the status of a physical device that has been added to the current user's account. Physical devices refer to the SwitchBot products. The first given argument `id` is a device ID which can be retrieved by (*Client).Device().List() function. See also https://github.com/OpenWonderLabs/SwitchBotAPI/blob/7a68353d84d07d439a11cb5503b634f24302f733/README.md#get-device-status
type DeviceStatus ¶
type DeviceStatus struct { ID string `json:"deviceId"` Type PhysicalDeviceType `json:"deviceType"` Hub string `json:"hubDeviceId"` Power PowerState `json:"power"` Humidity int `json:"humidity"` Temperature float64 `json:"temperature"` NebulizationEfficiency int `json:"nebulizationEfficiency"` IsAuto bool `json:"auto"` IsChildLock bool `json:"childLock"` IsSound bool `json:"sound"` IsCalibrated bool `json:"calibrate"` IsGrouped bool `json:"group"` IsMoving bool `json:"moving"` SlidePosition int `json:"slidePosition"` FanMode int `json:"mode"` FanSpeed int `json:"speed"` IsShaking bool `json:"shaking"` ShakeCenter int `json:"shakeCenter"` ShakeRange int `json:"shakeRange"` IsMoveDetected bool `json:"moveDetected"` Brightness BrightnessState `json:"brightness"` OpenState OpenState `json:"openState"` Color string `json:"color"` ColorTemperature int `json:"colorTemperature"` IsLackWater bool `json:"lackWater"` Voltage float64 `json:"voltage"` Weight float64 `json:"weight"` ElectricityOfDay int `json:"electricityOfDay"` ElectricCurrent float64 `json:"electricCurrent"` LockState string `json:"lockState"` DoorState string `json:"doorState"` WorkingStatus CleanerWorkingStatus `json:"workingStatus"` OnlineStatus CleanerOnlineStatus `json:"onlineStatus"` Battery int `json:"battery"` }
type HumidifierMode ¶
type HumidifierMode int
const ( AutoMode HumidifierMode = -1 LowMode HumidifierMode = 101 MidMode HumidifierMode = 102 HighMode HumidifierMode = 103 )
type IndoorCamEvent ¶
type IndoorCamEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context IndoorCamEventContext `json:"context"` }
type IndoorCamEventContext ¶
type InfraredDevice ¶
type InfraredDevice struct { ID string `json:"deviceId"` Name string `json:"deviceName"` Type VirtualDeviceType `json:"remoteType"` Hub string `json:"hubDeviceId"` }
InfraredDevice represents a virtual infrared remote device.
type KeyListItem ¶
type KeyListItem struct { ID int `json:"id"` Name string `json:"name"` Type PasscodeType `json:"type"` Password string `json:"password"` IV string `json:"iv"` Status PasscodeStatus `json:"status"` CreateTime int64 `json:"createTime"` }
KeyListItem is an item for keyList, which maintains a list of passcodes.
type KeypadEvent ¶
type KeypadEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context KeypadEventContext `json:"context"` }
type KeypadEventContext ¶
type KeypadEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the name fo the command being sent EventName string `json:"eventName"` // the command ID CommandID string `json:"commandId"` // the result of the command, success, failed, or timeout Result string `json:"result"` }
type LockEvent ¶
type LockEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context LockEventContext `json:"context"` }
type LockEventContext ¶
type LockEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the state of the device, "LOCKED" stands for the motor is rotated to locking position; // "UNLOCKED" stands for the motor is rotated to unlocking position; "JAMMED" stands for // the motor is jammed while rotating LockState string `json:"lockState"` }
type MeterEvent ¶
type MeterEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context MeterEventContext `json:"context"` }
type MeterEventContext ¶
type MeterPlusEvent ¶
type MeterPlusEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context MeterPlusEventContext `json:"context"` }
type MeterPlusEventContext ¶
type MotionSensorEvent ¶
type MotionSensorEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context MotionSensorEventContext `json:"context"` }
type MotionSensorEventContext ¶
type MotionSensorEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the motion state of the device, "DETECTED" stands for motion is detected; // "NOT_DETECTED" stands for motion has not been detected for some time DetectionState string `json:"detectionState"` }
type Option ¶
type Option func(*Client)
func WithEndpoint ¶
WithEndpoint allows you to set an endpoint of SwitchBot API.
func WithHTTPClient ¶
WithHTTPClient allows you to pass your http client for a SwitchBot API client.
type PanTiltCamEvent ¶
type PanTiltCamEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context PanTiltCamEventContext `json:"context"` }
type PanTiltCamEventContext ¶
type PasscodeStatus ¶
type PasscodeStatus string
const ( PasscodeStatusValid PasscodeStatus = "normal" PasscodeStautsInvalid PasscodeStatus = "expired" )
type PasscodeType ¶
type PasscodeType string
const ( PermanentPasscode PasscodeType = "permanent" TimeLimitPasscode PasscodeType = "timeLimit" DisposablePasscode PasscodeType = "disposable" UrgentPasscode PasscodeType = "urgent" )
type PhysicalDeviceType ¶
type PhysicalDeviceType string
const ( // Hub is generally referred to these devices, SwitchBot Hub Model No. SwitchBot Hub S1/SwitchBot Hub Mini Model No. W0202200/SwitchBot Hub Plus Model No. SwitchBot Hub S1 Hub PhysicalDeviceType = "Hub" // HubPlus is SwitchBot Hub Plus Model No. SwitchBot Hub S1 HubPlus PhysicalDeviceType = "Hub Plus" // HubMini is SwitchBot Hub Mini Model No. W0202200 HubMini PhysicalDeviceType = "Hub Mini" // Bot is SwitchBot Bot Model No. SwitchBot S1 Bot PhysicalDeviceType = "Bot" // Curtain is SwitchBot Curtain Model No. W0701600 Curtain PhysicalDeviceType = "Curtain" // Plug is SwitchBot Plug Model No. SP11 Plug PhysicalDeviceType = "Plug" // Meter is SwitchBot Thermometer and Hygrometer Model No. SwitchBot MeterTH S1 Meter PhysicalDeviceType = "Meter" // MeterPlusJP is SwitchBot Thermometer and Hygrometer Plus (JP) Model No. W2201500 MeterPlusJP PhysicalDeviceType = "Meter Plus (JP)" // MeterPlusUS is SwitchBot Thermometer and Hygrometer Plus (US) Model No. W2301500 MeterPlusUS PhysicalDeviceType = "Meter Plus (US)" // Humidifier is SwitchBot Humidifier Model No. W0801801 Humidifier PhysicalDeviceType = "Humidifier" // SmartFan is SwitchBot Smart Fan Model No. W0601100 SmartFan PhysicalDeviceType = "Smart Fan" // StripLight is SwitchBot LED Strip Light Model No. W1701100 StripLight PhysicalDeviceType = "Strip Light" // PlugMiniUS is SwitchBot Plug Mini (US) Model No. W1901400 PlugMiniUS PhysicalDeviceType = "Plug Mini (US)" // PlugMiniJP is SwitchBot Plug Mini (JP) Model No. W2001400 PlugMiniJP PhysicalDeviceType = "Plug Mini (JP)" // Lock is SwitchBot Lock Model No. W1601700 Lock PhysicalDeviceType = "Lock" // RobotVacuumCleanerS1 is SwitchBot Robot Vacuum Cleaner S1 Model No. W3011000; currently only available in Japan RobotVacuumCleanerS1 PhysicalDeviceType = "Robot Vacuum Cleaner S1" // RobotVacuumCleanerS1Plus is SwitchBot Robot Vacuum Cleaner S1 Plus Model No. W3011010; currently only available in Japan RobotVacuumCleanerS1Plus PhysicalDeviceType = "Robot Vacuum Cleaner S1 Plus" // MotionSensor is SwitchBot Motion Sensor Model No. W1101500 MotionSensor PhysicalDeviceType = "Motion Sensor" // ContactSensor is SwitchBot Contact Sensor Model No. W1201500 ContactSensor PhysicalDeviceType = "Contact Sensor" // ColorBulb is SwitchBot Color Bulb Model No. W1401400 ColorBulb PhysicalDeviceType = "Color Bulb" // MeterPlusJP is SwitchBot Thermometer and Hygrometer Plus (JP) Model No. W2201500 / (US) Model No. W2301500 MeterPlus PhysicalDeviceType = "MeterPlus" // KeyPad is SwitchBot Lock Model No. W2500010 KeyPad PhysicalDeviceType = "KeyPad" // KeyPadTouch is SwitchBot Lock Model No. W2500020 KeyPadTouch PhysicalDeviceType = "KeyPad Touch" // CeilingLight is SwitchBot Ceiling Light Model No. W2612230 and W2612240. CeilingLight PhysicalDeviceType = "Ceiling Light" // CeilingLightPro is SwitchBot Ceiling Light Pro Model No. W2612210 and W2612220. CeilingLightPro PhysicalDeviceType = "Ceiling Light Pro" // IndoorCam is SwitchBot Indoor Cam Model No. W1301200 IndoorCam PhysicalDeviceType = "Indoor Cam" // PanTiltCam is SwitchBot Pan/Tilt Cam Model No. W1801200 PanTiltCam PhysicalDeviceType = "Pan/Tilt Cam" //PanTiltCam2K is SwitchBot Pan/Tilt Cam 2K Model No. W3101100 PanTiltCam2K PhysicalDeviceType = "Pan/Tilt Cam 2K" )
type PlugMiniJPEvent ¶
type PlugMiniJPEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context PlugMiniJPEventContext `json:"context"` }
type PlugMiniJPEventContext ¶
type PlugMiniJPEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the current power state of the device, "ON" or "OFF" PowerState PowerState `json:"powerState"` }
type PlugMiniUSEvent ¶
type PlugMiniUSEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context PlugMiniUSEventContext `json:"context"` }
type PlugMiniUSEventContext ¶
type PlugMiniUSEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the current power state of the device, "ON" or "OFF" PowerState PowerState `json:"powerState"` }
type PowerState ¶
type PowerState string
const ( PowerOn PowerState = "ON" PowerOff PowerState = "OFF" )
func (PowerState) ToLower ¶
func (power PowerState) ToLower() string
type SceneService ¶
type SceneService struct {
// contains filtered or unexported fields
}
SceneService handles API calls related to scenes. The scene API is used to access the smart scenes created by a user and to execute manual scenes.
type SetPositionMode ¶
type SetPositionMode int
SetPositionMode represents a mode for curtain devices' set position mode.
const ( DefaultMode SetPositionMode = iota PerformanceMode SilentMode )
type SmartFanMode ¶
type SmartFanMode int
const ( StandardFanMode SmartFanMode = 1 NaturalFanMode SmartFanMode = 2 )
type StripLightEvent ¶
type StripLightEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context StripLightEventContext `json:"context"` }
type StripLightEventContext ¶
type StripLightEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the current power state of the device, "ON" or "OFF" PowerState PowerState `json:"powerState"` // the brightness value, range from 1 to 100 Brightness int `json:"brightness"` // the color value, in the format of RGB value, "255:255:255" Color string `json:"color"` }
type SweeperEvent ¶
type SweeperEvent struct { EventType string `json:"eventType"` EventVersion string `json:"eventVersion"` Context SweeperEventContext `json:"context"` }
type SweeperEventContext ¶
type SweeperEventContext struct { DeviceType string `json:"deviceType"` DeviceMac string `json:"deviceMac"` TimeOfSample int64 `json:"timeOfSample"` // the working status of the device, "StandBy", "Clearing", // "Paused", "GotoChargeBase", "Charging", "ChargeDone", // "Dormant", "InTrouble", "InRemoteControl", or "InDustCollecting" WorkingStatus CleanerWorkingStatus `json:"workingStatus"` // the connection status of the device, "online" or "offline" OnlineStatus CleanerOnlineStatus `json:"onlineStatus"` // the battery level. Battery int `json:"battery"` }
type VacuumPowerLevel ¶
type VacuumPowerLevel int
const ( QuietVacuumPowerLevel VacuumPowerLevel = 0 StandardVacuumPowerLevel VacuumPowerLevel = 1 StrongVacuumPowerLevel VacuumPowerLevel = 2 MaxVacuumPowerLevel VacuumPowerLevel = 3 )
type VirtualDeviceType ¶
type VirtualDeviceType string
const ( AirConditioner VirtualDeviceType = "Air Conditioner" TV VirtualDeviceType = "TV" Light VirtualDeviceType = "Light" IPTVStreamer VirtualDeviceType = "IPTV/Streamer" SetTopBox VirtualDeviceType = "Set Top Box" DVD VirtualDeviceType = "DVD" Fan VirtualDeviceType = "Fan" Projector VirtualDeviceType = "Projector" Camera VirtualDeviceType = "Camera" AirPurifier VirtualDeviceType = "Air Purifier" Speaker VirtualDeviceType = "Speaker" WaterHeater VirtualDeviceType = "Water Heater" VacuumCleaner VirtualDeviceType = "Vacuum Cleaner" Others VirtualDeviceType = "Others" )
type WebhookQueryActionType ¶
type WebhookQueryActionType string
const ( QueryURL WebhookQueryActionType = "queryUrl" QueryDetails WebhookQueryActionType = "queryDetails" )
type WebhookService ¶
type WebhookService struct {
// contains filtered or unexported fields
}
func (*WebhookService) Query ¶
func (svc *WebhookService) Query(ctx context.Context, action WebhookQueryActionType, url string) (string, error)
Query retrieves the current configuration info of the webhook. The second argument `url` is required for QueryDetails action type.