switchbot

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	AmbientBrightness = &MetricSource{
		Key: "ambient_brightness",
		Value: func(status *switchbot.DeviceStatus) any {
			value, _ := status.Brightness.AmbientBrightness()
			return value
		},
	}
	Battery = &MetricSource{
		Key: "battery",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.Battery
		},
	}
	Brightness = &MetricSource{
		Key: "brightness",
		Value: func(status *switchbot.DeviceStatus) any {
			value, _ := status.Brightness.Int()
			return value
		},
	}
	CO2 = &MetricSource{
		Key: "co2",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.CO2
		},
	}
	ColorTemperature = &MetricSource{
		Key: "color_temperature",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.ColorTemperature
		},
	}
	ElectricCurrent = &MetricSource{
		Key: "electric_current",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.ElectricCurrent
		},
	}
	ElectricityOfDay = &MetricSource{
		Key: "electricity_of_day",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.ElectricityOfDay
		},
	}
	FanSpeed = &MetricSource{
		Key: "fan_speed",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.FanSpeed
		},
	}
	Humidity = &MetricSource{
		Key: "humidity",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.Humidity
		},
	}
	IsAuto = &MetricSource{
		Key: "is_auto",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsAuto
		},
	}
	IsCalibrated = &MetricSource{
		Key: "is_calibrated",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsCalibrated
		},
	}
	IsChildLock = &MetricSource{
		Key: "is_child_lock",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsChildLock
		},
	}
	IsGrouped = &MetricSource{
		Key: "is_grouped",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsGrouped
		},
	}
	IsLackWater = &MetricSource{
		Key: "is_lack_water",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsLackWater
		},
	}
	IsMoveDetected = &MetricSource{
		Key: "is_move_detected",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsMoveDetected
		},
	}
	IsMoving = &MetricSource{
		Key: "is_moving",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsMoving
		},
	}
	IsSound = &MetricSource{
		Key: "is_sound",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.IsSound
		},
	}
	LightLevel = &MetricSource{
		Key: "light_level",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.LightLevel
		},
	}
	NebulizationEfficiency = &MetricSource{
		Key: "nebulization_efficiency",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.NebulizationEfficiency
		},
	}
	OnlineStatus = &MetricSource{
		Key: "online_status",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.OnlineStatus
		},
	}
	SlidePosition = &MetricSource{
		Key: "slide_position",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.SlidePosition
		},
	}
	Temperature = &MetricSource{
		Key: "temperature",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.Temperature
		},
	}
	Voltage = &MetricSource{
		Key: "voltage",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.Voltage
		},
	}
	Weight = &MetricSource{
		Key: "weight",
		Value: func(status *switchbot.DeviceStatus) any {
			return status.Weight
		},
	}
)
View Source
var SupportedMetrics = map[switchbot.PhysicalDeviceType][]*MetricSource{

	switchbot.Bot:                      {Battery},
	switchbot.Curtain:                  {IsCalibrated, IsGrouped, IsMoving, Battery, SlidePosition},
	"Curtain3":                         {IsCalibrated, IsGrouped, IsMoving, Battery, SlidePosition},
	switchbot.Meter:                    {Temperature, Battery, Humidity},
	switchbot.MeterPlus:                {Battery, Temperature, Humidity},
	"MeterPro(CO2)":                    {Battery, Temperature, Humidity, CO2},
	switchbot.WoIOSensor:               {Battery, Temperature, Humidity},
	switchbot.Lock:                     {Battery, IsCalibrated},
	"Smart Lock Pro":                   {Battery, IsCalibrated},
	switchbot.KeyPad:                   {},
	switchbot.KeyPadTouch:              {},
	switchbot.MotionSensor:             {Battery, IsMoveDetected, AmbientBrightness},
	switchbot.ContactSensor:            {Battery, IsMoveDetected, AmbientBrightness},
	"Water Detector":                   {Battery},
	switchbot.CeilingLight:             {Brightness, ColorTemperature},
	switchbot.CeilingLightPro:          {Brightness, ColorTemperature},
	switchbot.PlugMiniUS:               {Voltage, Weight, ElectricityOfDay, ElectricCurrent},
	switchbot.PlugMiniJP:               {Voltage, Weight, ElectricityOfDay, ElectricCurrent},
	switchbot.Plug:                     {},
	switchbot.StripLight:               {Brightness},
	switchbot.ColorBulb:                {Brightness, ColorTemperature},
	switchbot.RobotVacuumCleanerS1:     {OnlineStatus, Battery},
	switchbot.RobotVacuumCleanerS1Plus: {OnlineStatus, Battery},
	"K10+":                             {OnlineStatus, Battery},
	"K10+ Pro":                         {OnlineStatus, Battery},
	"Robot Vacuum Cleaner S10":         {OnlineStatus, Battery},
	switchbot.Humidifier:               {Humidity, Temperature, NebulizationEfficiency, IsAuto, IsChildLock, IsSound, IsLackWater},
	switchbot.BlindTilt:                {IsCalibrated, IsGrouped, IsMoving, SlidePosition},
	switchbot.Hub2:                     {Temperature, LightLevel, Humidity},
	"Battery Circulator Fan":           {Battery, FanSpeed},
}

Functions

This section is empty.

Types

type MetricSource

type MetricSource struct {
	Key   string
	Value func(status *switchbot.DeviceStatus) any
}

type Plugin

type Plugin struct {
	Log telegraf.Logger `toml:"-"`

	SwitchBotOpenToken string `toml:"-" env:"SWITCHBOT_OPEN_TOKEN"`
	SwitchBotSecretKey string `toml:"-" env:"SWITCHBOT_SECRET_KEY"`
	// contains filtered or unexported fields
}

func (*Plugin) Gather

func (p *Plugin) Gather(accumulator telegraf.Accumulator) error

func (*Plugin) Init

func (p *Plugin) Init() error

func (*Plugin) SampleConfig

func (p *Plugin) SampleConfig() string

Jump to

Keyboard shortcuts

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