mutablehome

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IKEA_DEFAULT_PORT = 5684
)

Variables

View Source
var (
	ErrAuthenticationError = errors.New("Authentication Error")
)

Functions

This section is empty.

Types

type Balance

type Balance int16
const (
	ROTEL_BALANCE_NONE      Balance = 0
	ROTEL_BALANCE_LEFT_MAX  Balance = -15
	ROTEL_BALANCE_RIGHT_MAX Balance = 15
	ROTEL_BALANCE_OFF       Balance = ROTEL_BALANCE_RIGHT_MAX + 1
)

func (Balance) String

func (b Balance) String() string

type Bypass

type Bypass uint16
const (
	ROTEL_BYPASS_NONE Bypass = 0
	ROTEL_BYPASS_ON   Bypass = iota
	ROTEL_BYPASS_OFF
	ROTEL_BYPASS_MAX = ROTEL_BYPASS_OFF
)

func (Bypass) String

func (b Bypass) String() string

type Cast

type Cast interface {
	// Return list of discovered Google Chromecast Devices
	Devices(context.Context) ([]CastDevice, error)

	// Connect to the control channel for a device
	Connect(CastDevice, gopi.RPCFlag) error

	// Disconnect from the device
	Disconnect(CastDevice) error

	// Implements gopi.Unit
	gopi.Unit
}

type CastApp

type CastApp interface {
	ID() string
	Name() string
	Status() string
}

type CastDevice

type CastDevice interface {
	Id() string
	Name() string
	Model() string
	Service() string
	State() uint

	// Volume
	Volume() CastVolume
	SetVolume(level float32) error
	SetMute(mute bool) error

	// Application
	App() CastApp
	LaunchAppWithId(string) error

	// Play, pause and stop
	SetPlay(bool) error  // Play or stop
	SetPause(bool) error // Pause or play

	// Load Media by URL
	LoadURL(url string, autoplay bool) error
}

type CastEvent

type CastEvent interface {
	Type() CastEventType
	Device() CastDevice

	gopi.Event
}

type CastEventType

type CastEventType uint
const (
	CAST_EVENT_NONE CastEventType = iota
	CAST_EVENT_ADDED
	CAST_EVENT_UPDATED
	CAST_EVENT_REMOVED
)

func (CastEventType) String

func (v CastEventType) String() string

type CastVolume

type CastVolume interface {
	Level() float32
	Muted() bool
}

type Command

type Command uint16
const (
	ROTEL_COMMAND_NONE Command = 0
	ROTEL_COMMAND_PLAY Command = iota
	ROTEL_COMMAND_STOP
	ROTEL_COMMAND_PAUSE
	ROTEL_COMMAND_TRACK_NEXT
	ROTEL_COMMAND_TRACK_PREV
	ROTEL_COMMAND_MUTE_TOGGLE
	ROTEL_COMMAND_VOL_UP
	ROTEL_COMMAND_VOL_DOWN
	ROTEL_COMMAND_BASS_UP
	ROTEL_COMMAND_BASS_DOWN
	ROTEL_COMMAND_BASS_RESET
	ROTEL_COMMAND_TREBLE_UP
	ROTEL_COMMAND_TREBLE_DOWN
	ROTEL_COMMAND_TREBLE_RESET
	ROTEL_COMMAND_BALANCE_LEFT
	ROTEL_COMMAND_BALANCE_RIGHT
	ROTEL_COMMAND_BALANCE_RESET
	ROTEL_COMMAND_SPEAKER_A_TOGGLE
	ROTEL_COMMAND_SPEAKER_B_TOGGLE
	ROTEL_COMMAND_DIMMER_TOGGLE
	ROTEL_COMMAND_POWER_TOGGLE
	ROTEL_COMMAND_MAX = ROTEL_COMMAND_POWER_TOGGLE
)

func (Command) String

func (c Command) String() string

type DVBCodeRate

type DVBCodeRate uint
const (
	DVB_FEC_NONE DVBCodeRate = iota
	DVB_FEC_1_2
	DVB_FEC_2_3
	DVB_FEC_3_4
	DVB_FEC_4_5
	DVB_FEC_5_6
	DVB_FEC_6_7
	DVB_FEC_7_8
	DVB_FEC_8_9
	DVB_FEC_AUTO
	DVB_FEC_3_5
	DVB_FEC_9_10
	DVB_FEC_2_5

	DVB_FEC_MIN = DVB_FEC_NONE
	DVB_FEC_MAX = DVB_FEC_2_5
)

func (DVBCodeRate) String

func (r DVBCodeRate) String() string

type DVBDeliverySystem

type DVBDeliverySystem uint
const (
	DVB_SYS_NONE         DVBDeliverySystem = 0
	DVB_SYS_DVBC_ANNEX_A DVBDeliverySystem = iota // Cable TV: DVB-C following ITU-T J.83 Annex A spec
	DVB_SYS_DVBC_ANNEX_B                          // Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
	DVB_SYS_DVBT                                  // Terrestrial TV: DVB-T
	DVB_SYS_DSS                                   // Satellite TV: DSS (not fully supported)
	DVB_SYS_DVBS                                  // Satellite TV: DVB-S
	DVB_SYS_DVBS2                                 // Satellite TV: DVB-S2
	DVB_SYS_DVBH                                  // Terrestrial TV (mobile): DVB-H (standard deprecated)
	DVB_SYS_ISDBT                                 // Terrestrial TV: ISDB-T
	DVB_SYS_ISDBS                                 // Satellite TV: ISDB-S
	DVB_SYS_ISDBC                                 // Cable TV: ISDB-C (no drivers yet)
	DVB_SYS_ATSC                                  // Terrestrial TV: ATSC
	DVB_SYS_ATSCMH                                // Terrestrial TV (mobile): ATSC-M/H
	DVB_SYS_DTMB                                  // Terrestrial TV: DTMB
	DVB_SYS_CMMB                                  // Terrestrial TV (mobile): CMMB (not fully supported)
	DVB_SYS_DAB                                   // Digital audio: DAB (not fully supported)
	DVB_SYS_DVBT2                                 // Terrestrial TV: DVB-T2
	DVB_SYS_TURBO                                 // Satellite TV: DVB-S Turbo
	DVB_SYS_DVBC_ANNEX_C                          // Cable TV: DVB-C following ITU-T J.83 Annex C spec

	DVB_SYS_MIN = DVB_SYS_DVBC_ANNEX_A
	DVB_SYS_MAX = DVB_SYS_DVBC_ANNEX_C
)

func (DVBDeliverySystem) String

func (v DVBDeliverySystem) String() string

type DVBDemux

type DVBDemux interface {
	// Scan for Program Association Table (PAT). Emits the
	// DVBSection on the message bus
	ScanPAT() (DVBFilter, error)

	// Scan for Program Map Specific Data.  Emits the
	// DVBSections on the message bus
	ScanPMT(DVBSection) ([]DVBFilter, error)

	// Scan for Service Description Data.  Emits the
	// DVBSections on the message bus. Setting argument
	// to true looks for SDT sections for other transponders
	ScanSDT(bool) (DVBFilter, error)

	// Scan Network Information Table. Emits the
	// DVBSections on the message bus. Setting argument
	// to true looks for NIT sections for other transponders
	ScanNIT(bool) (DVBFilter, error)

	// Scan Event Information Table (now/next). Emits the
	// DVBSections on the message bus. Setting argument
	// to true looks for EIT sections for other transponders
	ScanEITNowNext(bool) (DVBFilter, error)

	// New Stream Filter with list of pids to filter on
	NewStreamFilter([]uint16) (DVBFilter, error)

	// Close filter
	DestroyFilter(DVBFilter) error

	// Implements gopi.Unit
	gopi2.Unit
}

type DVBFilter

type DVBFilter interface {
	// Start and stop streaming
	Start() error
	Stop() error

	// Return file descriptor
	Fd() uintptr
}

type DVBFrontend

type DVBFrontend interface {
	// Return name of the adaptor
	Name() string

	// Return supported delivery systems
	DeliverySystems() []DVBDeliverySystem

	// Tune with DVB properties, may timeout and return error
	Tune(context.Context, DVBProperties) error

	// Implements gopi.Unit
	gopi2.Unit
}

type DVBGuardInterval

type DVBGuardInterval uint
const (
	DVB_GUARD_INTERVAL_1_32 DVBGuardInterval = iota
	DVB_GUARD_INTERVAL_1_16
	DVB_GUARD_INTERVAL_1_8
	DVB_GUARD_INTERVAL_1_4
	DVB_GUARD_INTERVAL_AUTO
	DVB_GUARD_INTERVAL_1_128
	DVB_GUARD_INTERVAL_19_128
	DVB_GUARD_INTERVAL_19_256
	DVB_GUARD_INTERVAL_PN420
	DVB_GUARD_INTERVAL_PN595
	DVB_GUARD_INTERVAL_PN945

	DVB_GUARD_INTERVAL_MIN = DVB_GUARD_INTERVAL_1_32
	DVB_GUARD_INTERVAL_MAX = DVB_GUARD_INTERVAL_PN945
)

func (DVBGuardInterval) String

func (v DVBGuardInterval) String() string

type DVBHierarchy

type DVBHierarchy uint
const (
	DVB_HIERARCHY_NONE DVBHierarchy = iota
	DVB_HIERARCHY_1
	DVB_HIERARCHY_2
	DVB_HIERARCHY_4
	DVB_HIERARCHY_AUTO

	DVB_HIERARCHY_MIN = DVB_HIERARCHY_NONE
	DVB_HIERARCHY_MAX = DVB_HIERARCHY_AUTO
)

func (DVBHierarchy) String

func (v DVBHierarchy) String() string

type DVBInterleaving

type DVBInterleaving uint
const (
	DVB_INTERLEAVING_NONE DVBInterleaving = iota
	DVB_INTERLEAVING_AUTO
	DVB_INTERLEAVING_240
	DVB_INTERLEAVING_72

	DVB_INTERLEAVING_MIN = DVB_INTERLEAVING_NONE
	DVB_INTERLEAVING_MAX = DVB_INTERLEAVING_72
)

func (DVBInterleaving) String

func (v DVBInterleaving) String() string

type DVBInversion

type DVBInversion uint
const (
	DVB_INVERSION_OFF DVBInversion = iota
	DVB_INVERSION_ON
	DVB_INVERSION_AUTO

	DVB_INVERSION_MIN = DVB_INVERSION_OFF
	DVB_INVERSION_MAX = DVB_INVERSION_AUTO
)

func (DVBInversion) String

func (v DVBInversion) String() string

type DVBModulation

type DVBModulation uint
const (
	DVB_MODULATION_QPSK DVBModulation = iota
	DVB_MODULATION_QAM_16
	DVB_MODULATION_QAM_32
	DVB_MODULATION_QAM_64
	DVB_MODULATION_QAM_128
	DVB_MODULATION_QAM_256
	DVB_MODULATION_QAM_AUTO
	DVB_MODULATION_VSB_8
	DVB_MODULATION_VSB_16
	DVB_MODULATION_PSK_8
	DVB_MODULATION_APSK_16
	DVB_MODULATION_APSK_32
	DVB_MODULATION_DQPSK
	DVB_MODULATION_QAM_4_NR

	DVB_MODULATION_MIN = DVB_MODULATION_QPSK
	DVB_MODULATION_MAX = DVB_MODULATION_QAM_4_NR
)

func (DVBModulation) String

func (v DVBModulation) String() string

type DVBProperties

type DVBProperties interface {
	Name() string
	DeliverySystem() (DVBDeliverySystem, error)
	Frequency() uint32
	Bandwidth() uint32
	GuardInterval() (DVBGuardInterval, error)
	Hierarchy() (DVBHierarchy, error)
	Inversion() (DVBInversion, error)
	Modulation() (DVBModulation, error)
	TransmitMode() (DVBTransmitMode, error)
	CodeRateLP() (DVBCodeRate, error)
	CodeRateHP() (DVBCodeRate, error)
}

DVBProperties are the properties used for reading from a multiplex

type DVBSection

type DVBSection interface {
	// Return type of section
	Type() DVBTableType
}

type DVBSectionEvent

type DVBSectionEvent interface {
	Type() DVBTableType
	Filter() DVBFilter
	Section() DVBSection

	// Implements gopi.Event
	gopi2.Event
}

DVBSectionEvent is emitted after a section packet is parsed

type DVBStreamType

type DVBStreamType uint8
const (
	DVB_ES_TYPE_NONE DVBStreamType = iota
	DVB_ES_TYPE_MPEG1_VIDEO
	DVB_ES_TYPE_MPEG2_VIDEO
	DVB_ES_TYPE_MPEG1_AUDIO
	DVB_ES_TYPE_MPEG2_AUDIO
	DVB_ES_TYPE_PRIV_SECT
	DVB_ES_TYPE_PRIV_PES
	DVB_ES_TYPE_MHEG
	DVB_ES_TYPE_DSMCC
	DVB_ES_TYPE_H222_1
	DVB_ES_TYPE_DSMCC_A
	DVB_ES_TYPE_DSMCC_B
	DVB_ES_TYPE_DSMCC_C
	DVB_ES_TYPE_DSMCC_D
	DVB_ES_TYPE_MPEG2_AUX
	DVB_ES_TYPE_AAC
	DVB_ES_TYPE_MPEG4_VIDEO
	DVB_ES_TYPE_MPEG4_AUDIO
	DVB_ES_TYPE_H264_VIDEO DVBStreamType = 0x1B
	DVB_ES_TYPE_H265_VIDEO DVBStreamType = 0x24
)

func (DVBStreamType) String

func (v DVBStreamType) String() string

type DVBTable

type DVBTable interface {
	// Properties returns an array of DVB Properties which define a
	// setof transmitter parameters. The argument can be empty to return
	// all parameters, or will return properties that match comma-delimited
	// set of names
	Properties(string) []DVBProperties

	// Implements gopi.Unit
	gopi2.Unit
}

type DVBTableType

type DVBTableType uint8
const (
	DVB_TS_TABLE_PAT       DVBTableType = 0x00
	DVB_TS_TABLE_CAT       DVBTableType = 0x01
	DVB_TS_TABLE_PMT       DVBTableType = 0x02
	DVB_TS_TABLE_NIT       DVBTableType = 0x40
	DVB_TS_TABLE_NIT_OTHER DVBTableType = 0x41
	DVB_TS_TABLE_SDT       DVBTableType = 0x42
	DVB_TS_TABLE_SDT_OTHER DVBTableType = 0x46
	DVB_TS_TABLE_BAT       DVBTableType = 0x4A
	DVB_TS_TABLE_EIT       DVBTableType = 0x4E
	DVB_TS_TABLE_EIT_OTHER DVBTableType = 0x4F
	DVB_TS_TABLE_TDT       DVBTableType = 0x70
)

func (DVBTableType) String

func (v DVBTableType) String() string

type DVBTransmitMode

type DVBTransmitMode uint
const (
	DVB_TRANSMIT_MODE_2K DVBTransmitMode = iota
	DVB_TRANSMIT_MODE_8K
	DVB_TRANSMIT_MODE_AUTO
	DVB_TRANSMIT_MODE_4K
	DVB_TRANSMIT_MODE_1K
	DVB_TRANSMIT_MODE_16K
	DVB_TRANSMIT_MODE_32K
	DVB_TRANSMIT_MODE_C1
	DVB_TRANSMIT_MODE_C3780

	DVB_TRANSMIT_MODE_MIN = DVB_TRANSMIT_MODE_2K
	DVB_TRANSMIT_MODE_MAX = DVB_TRANSMIT_MODE_C3780
)

func (DVBTransmitMode) String

func (v DVBTransmitMode) String() string

type Device

type Device interface {
	Id() string          // Unique ID for the device
	Name() string        // Name of the device
	Traits() []TraitType // Capabilities for the device
}

Device is a device which can be observed or controlled

type Dimmer

type Dimmer uint16
const (
	ROTEL_DIMMER_NONE Dimmer = 0
	ROTEL_DIMMER_MIN  Dimmer = 1
	ROTEL_DIMMER_MAX  Dimmer = 9
	ROTEL_DIMMER_OFF  Dimmer = ROTEL_DIMMER_MAX + 1
)

func (Dimmer) String

func (d Dimmer) String() string

type Ecovacs

type Ecovacs interface {
	gopi2.Unit

	// Authenticate
	Authenticate() error

	// Devices
	Devices() ([]EvovacsDevice, error)

	// Connect to a device to start reading messages
	Connect(EvovacsDevice) error

	// Disconnect from a device
	Disconnect(EvovacsDevice) error
}

type EcovacsCleanMode

type EcovacsCleanMode string
const (
	ECOVACS_CLEAN_STOP   EcovacsCleanMode = "stop"
	ECOVACS_CLEAN_AUTO   EcovacsCleanMode = "auto"
	ECOVACS_CLEAN_BORDER EcovacsCleanMode = "border"
	ECOVACS_CLEAN_SPOT   EcovacsCleanMode = "spot"
	ECOVACS_CLEAN_ROOM   EcovacsCleanMode = "singleroom"
)

type EcovacsCleanSuction

type EcovacsCleanSuction string
const (
	ECOVACS_SUCTION_STANDARD EcovacsCleanSuction = "standard"
	ECOVACS_SUCTION_STRONG   EcovacsCleanSuction = "strong"
)

type EcovacsEvent

type EcovacsEvent interface {
	Type() EcovacsEventType
	Device() EvovacsDevice
	Id() string

	gopi2.Event
}

type EcovacsEventType

type EcovacsEventType uint
const (
	ECOVACS_EVENT_NONE EcovacsEventType = iota
	ECOVACS_EVENT_BATTERYLEVEL
	ECOVACS_EVENT_CLEANSTATE
	ECOVACS_EVENT_CHARGESTATE
	ECOVACS_EVENT_LIFESPAN
	ECOVACS_EVENT_TIME
	ECOVACS_EVENT_VERSION
	ECOVACS_EVENT_LOG
	ECOVACS_EVENT_ERROR
)

func (EcovacsEventType) String

func (v EcovacsEventType) String() string

type EcovacsPart

type EcovacsPart string
const (
	ECOVACS_PART_BRUSH      EcovacsPart = "Brush"
	ECOVACS_PART_SIDEBRUSH  EcovacsPart = "SideBrush"
	ECOVACS_PART_DUSTFILTER EcovacsPart = "DustCaseHeap"
)

type Event

type Event interface {
	gopi.Event

	Type() EventType
	Node() Node
	Device() Device
	Traits() []TraitType
}

Event is emitted when a device changes or node is online or offline of type mutablehome.Event

type EventType

type EventType uint
const (
	EVENT_NONE EventType = iota
	EVENT_NODE_ONLINE
	EVENT_NODE_OFFLINE
	EVENT_DEVICE_ADDED
	EVENT_DEVICE_REMOVED
	EVENT_DEVICE_METADATA_CHANGED
	EVENT_DEVICE_TRAIT_CHANGED
)
const (
	ROTEL_EVENT_TYPE_NONE  EventType = 0
	ROTEL_EVENT_TYPE_POWER EventType = iota
	ROTEL_EVENT_TYPE_VOLUME
	ROTEL_EVENT_TYPE_SOURCE
	ROTEL_EVENT_TYPE_MUTE
	ROTEL_EVENT_TYPE_FREQ
	ROTEL_EVENT_TYPE_BYPASS
	ROTEL_EVENT_TYPE_BASS
	ROTEL_EVENT_TYPE_TREBLE
	ROTEL_EVENT_TYPE_BALANCE
	ROTEL_EVENT_TYPE_SPEAKER
	ROTEL_EVENT_TYPE_DIMMER
	ROTEL_EVENT_TYPE_UPDATE
)

func (EventType) String

func (v EventType) String() string

type EvovacsDevice

type EvovacsDevice interface {
	// Return device properties
	Address() string
	Nickname() string
	Id() string

	// Fetch information from device, returns ReqId for the request
	GetBatteryInfo() (string, error)
	GetLifeSpan(EcovacsPart) (string, error)
	GetChargeState() (string, error)
	GetCleanState() (string, error)
	GetVersion() (string, error)

	// Command the device
	Clean(EcovacsCleanMode, EcovacsCleanSuction) (string, error)
	Charge() (string, error)
}

type HttpServer

type HttpServer interface {

	// Serve a folder of content, returns the base URL
	// of the files being served
	ServeStatic(string) (*url.URL, error)

	// Stop serving with context
	Stop(context.Context) error

	// Implements gopi.Unit
	gopi.Unit
}

type InfluxDB

type InfluxDB interface {
	// Create a new resultset
	NewResultSet(tags map[string]string) InfluxRS

	// Write rows to the database
	Write(InfluxRS) error
}

type InfluxRS

type InfluxRS interface {
	// Remove all rows
	RemoveAll()

	// Add a new row of metrics for a measurement name
	Add(string, map[string]interface{}) error

	// Add a new row of metrics using timestamp for a measurement name
	AddTS(string, map[string]interface{}, time.Time) error
}

type LightTrait

type LightTrait interface {
	Device

	Brightness() float32                        // Return brightness between 0.0 and 1.0
	SetBrightness(float32, time.Duration) error // Set brightness between 0.0 and 1.0 and a transition time
}

LightTrait represents a device which can have brightness or hue set

type Mute

type Mute uint16
const (
	ROTEL_MUTE_NONE Mute = 0
	ROTEL_MUTE_ON   Mute = iota
	ROTEL_MUTE_OFF
	ROTEL_MUTE_MAX = ROTEL_MUTE_OFF
)

func (Mute) String

func (m Mute) String() string

type Node

type Node interface {
	gopi.PubSub

	Id() string           // Unique Id for the node
	Name() string         // Textual description of the node
	Device(string) Device // Return device with Id
}

Node is a collection of devices which can be observed or controlled and accessed by a unique ID

type NodeStub

type NodeStub interface {
	gopi.RPCClientStub

	// Ping returns without error if the remote service is running
	Ping(context.Context) error
}

NodeStub represents a connection to a remote mutablehome node

type Power

type Power uint16
const (
	ROTEL_POWER_NONE Power = 0
	ROTEL_POWER_ON   Power = iota
	ROTEL_POWER_STANDBY
	ROTEL_POWER_MAX = ROTEL_POWER_STANDBY
)

func (Power) String

func (p Power) String() string

type PowerTrait

type PowerTrait interface {
	Device

	Power() TraitType         // Return ON, OFF or STANDBY or NONE if unknown
	SetPower(TraitType) error // Set ON, OFF, STANDBY or TOGGLE
}

PowerTrait represents a device which can be switched on, off or toggled

type Rotel

type Rotel interface {
	gopi.Driver
	gopi.Publisher

	// Information
	Model() string

	// Get and set state
	Get() RotelState
	Set(RotelState) error

	// Send Command
	Send(Command) error
}

type RotelClient

type RotelClient interface {
	gopi.RPCClient
	gopi.Publisher

	// Ping remote service
	Ping() error

	// Get and set state
	Get() (RotelState, error)
	Set(RotelState) error

	// Send command
	Send(Command) error

	// Stream state changes
	StreamEvents(ctx context.Context) error
}

type RotelEvent

type RotelEvent interface {
	gopi.Event

	Type() EventType
	State() RotelState
}

type RotelState

type RotelState struct {
	Power
	Volume
	Mute
	Source
	Freq string
	Bypass
	Treble Tone
	Bass   Tone
	Balance
	Speaker
	Dimmer
	Update
}

func (RotelState) String

func (s RotelState) String() string

type Source

type Source uint16
const (
	ROTEL_SOURCE_NONE Source = 0
	ROTEL_SOURCE_CD   Source = iota
	ROTEL_SOURCE_COAX1
	ROTEL_SOURCE_COAX2
	ROTEL_SOURCE_OPT1
	ROTEL_SOURCE_OPT2
	ROTEL_SOURCE_AUX1
	ROTEL_SOURCE_AUX2
	ROTEL_SOURCE_TUNER
	ROTEL_SOURCE_PHONO
	ROTEL_SOURCE_USB
	ROTEL_SOURCE_BLUETOOTH
	ROTEL_SOURCE_PC_USB
	ROTEL_SOURCE_OTHER
	ROTEL_SOURCE_MAX = ROTEL_SOURCE_OTHER
)

func (Source) String

func (s Source) String() string

type Speaker

type Speaker uint16
const (
	ROTEL_SPEAKER_NONE Speaker = 0
	ROTEL_SPEAKER_A    Speaker = iota
	ROTEL_SPEAKER_B
	ROTEL_SPEAKER_ALL
	ROTEL_SPEAKER_OFF
)

func (Speaker) String

func (s Speaker) String() string

type Tone

type Tone int16
const (
	ROTEL_TONE_NONE Tone = 0
	ROTEL_TONE_MIN  Tone = -100
	ROTEL_TONE_MAX  Tone = 100
	ROTEL_TONE_OFF  Tone = ROTEL_TONE_MAX + 1
)

func (Tone) String

func (t Tone) String() string

type TradfriCommand

type TradfriCommand interface {
	Path() string
	Body() (io.Reader, error)
}

TradfriCommand represents a command to send to the gateway

type TradfriDevice

type TradfriDevice interface {
	Id() uint
	Name() string
	Type() TradfriDeviceType
	Created() time.Time
	Updated() time.Time
	Active() bool

	Lights() []TradfriLight
}

TradfriDevice represents a device such as a set of lights

type TradfriDeviceType

type TradfriDeviceType uint
const (
	IKEA_DEVICE_TYPE_REMOTE       TradfriDeviceType = 0
	IKEA_DEVICE_TYPE_SLAVE_REMOTE TradfriDeviceType = 1
	IKEA_DEVICE_TYPE_LIGHT        TradfriDeviceType = 2
	IKEA_DEVICE_TYPE_PLUG         TradfriDeviceType = 3
	IKEA_DEVICE_TYPE_MOTIONSENSOR TradfriDeviceType = 4
	IKEA_DEVICE_TYPE_REPEATER     TradfriDeviceType = 6
	IKEA_DEVICE_TYPE_BLIND        TradfriDeviceType = 7
)

func (TradfriDeviceType) String

func (t TradfriDeviceType) String() string

type TradfriGateway

type TradfriGateway interface {
	gopi.Unit

	// Connect to gateway, using either IP4 or IP6
	Connect(gopi.RPCServiceRecord, gopi.RPCFlag) error

	// Disconnect from gateway
	Disconnect() error

	// Return information about the gateway
	Id() string
	Version() string

	// Return list of device, group and scene id's
	Devices() ([]uint, error)
	Groups() ([]uint, error)
	Scenes() ([]uint, error)
}

TradfriGateway represents a connection to a gateway device

type TradfriGroup

type TradfriGroup interface {
	Id() uint
	Name() string
	Devices() []uint
}

TradfriGroup represents a group of devices

type TradfriLight

type TradfriLight interface {
	// Get properties
	Power() bool
	Brightness() uint8 // 00 to FE
	ColorHex() string
	ColorXY() (uint16, uint16) // 0000 to FFFF
	Temperature() uint16       // 250 to 454

	// Set properties
	SetPower(bool) TradfriCommand
	SetBrightness(uint8, time.Duration) TradfriCommand       // 01 to FE
	SetColorXY(uint16, uint16, time.Duration) TradfriCommand // 0000 to FFFF
	SetTemperature(uint16, time.Duration) TradfriCommand     // 250 to 454
	SetColorHex(string, time.Duration) TradfriCommand
}

TradfriLight represents a single light

type TraitType

type TraitType uint
const (
	TRAIT_NONE TraitType = iota
	TRAIT_POWER_ON
	TRAIT_POWER_OFF
	TRAIT_POWER_STANDBY
	TRAIT_POWER_TOGGLE
	TRAIT_LIGHT_BRIGHTNESS
	TRAIT_LIGHT_TEMPERATURE
	TRAIT_LIGHT_COLOR
	TRAIT_LIGHT_TRANSITION
)

func (TraitType) String

func (v TraitType) String() string

type Update

type Update uint16
const (
	ROTEL_UPDATE_NONE   Update = 0
	ROTEL_UPDATE_MANUAL Update = 1
	ROTEL_UPDATE_AUTO   Update = 2
	ROTEL_UPDATE_OTHER  Update = 3
)

func (Update) String

func (u Update) String() string

type Volume

type Volume uint16
const (
	ROTEL_VOLUME_NONE Volume = 0
	ROTEL_VOLUME_MIN  Volume = 1
	ROTEL_VOLUME_MAX  Volume = 96
)

func (Volume) String

func (v Volume) String() string

Directories

Path Synopsis
cmd
avtool command
dvb command
ecovacs command
googlecast command
httpd command
mfshowy command
rotel command
tradfri command
tradfri-service command
grpc
sys
dvb
unit
dvb

Jump to

Keyboard shortcuts

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