internal

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2022 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Brightness = &Action{
	Action: "com.skynewz.yeelight.brightness",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		if s.Brightness == "" {
			return fmt.Errorf("invalid brightness [%s]", s.Brightness)
		}

		value, err := strconv.Atoi(s.Brightness)
		if err != nil {
			return fmt.Errorf("cannot parse brightness [%s]: %w", s.Brightness, err)
		}

		return light.SetBrightness(value)
	},
}
View Source
var BrightnessAdjust = &Action{
	Action: "com.skynewz.yeelight.brightness.adjust",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		if s.Delta == "" {
			return fmt.Errorf("invalid brightness delta [%s]", s.Delta)
		}

		delta, err := strconv.Atoi(s.Delta)
		if err != nil {
			return fmt.Errorf("cannot parse brightness delta [%s]: %w", s.Delta, err)
		}

		duration := 500
		if s.Duration != "" {
			if v, err := strconv.Atoi(s.Duration); err == nil {
				duration = v
			}
		}

		return light.AdjustBrightness(delta, duration)
	},
}
View Source
var Color = &Action{
	Action: "com.skynewz.yeelight.color",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		if s.Color == "" {
			return fmt.Errorf("invalid color [%s]", s.Color)
		}

		hex, err := colors.ParseHEX(s.Color)
		if err != nil {
			return fmt.Errorf("cannot parse color [%s]: %w", s.Color, err)
		}

		return light.SetRGB(hex.ToRGB().R, hex.ToRGB().G, hex.ToRGB().B)
	},
}
View Source
var (
	ErrMissingSettings = errors.New("missing action settings")
)
View Source
var Temperature = &Action{
	Action: "com.skynewz.yeelight.temperature",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		if s.Temperature == "" {
			return fmt.Errorf("invalid temperature [%s]", s.Temperature)
		}

		value, err := strconv.Atoi(s.Temperature)
		if err != nil {
			return fmt.Errorf("cannot parse temperature [%s]: %w", s.Temperature, err)
		}

		return light.SetColorTemperature(value)
	},
}
View Source
var TemperatureAdjust = &Action{
	Action: "com.skynewz.yeelight.temperature.adjust",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		if s.Delta == "" {
			return fmt.Errorf("invalid temperature delta [%s]", s.Delta)
		}

		delta, err := strconv.Atoi(s.Delta)
		if err != nil {
			return fmt.Errorf("cannot parse temperature delta [%s]: %w", s.Delta, err)
		}

		duration := 500
		if s.Duration != "" {
			if v, err := strconv.Atoi(s.Duration); err == nil {
				duration = v
			}
		}

		return light.AdjustColorTemperature(delta, duration)
	},
}
View Source
var Toggle = &Action{
	Action: "com.skynewz.yeelight.toggle",
	Event:  []sdk.EventName{sdk.KeyUp},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, _ *setting) error {
		var wantedState bool // off by default
		switch {
		case event.Payload.IsInMultiAction:

			wantedState = event.Payload.UserDesiredState == 1
		default:
			wantedState = !(event.Payload.State == 1)
		}

		switch wantedState {
		case true:
			return light.On()
		case false:
			return light.Off()
		}

		return nil
	},
}
View Source
var WillAppear = &Action{
	Action: "",
	Event:  []sdk.EventName{sdk.WillAppear, sdk.DidReceiveSettings},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		_, err := makeYeelight(event, s)
		return err
	},
}
View Source
var WillDisappear = &Action{
	Action: "",
	Event:  []sdk.EventName{sdk.WillDisappear},
	Run: func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error {
		lock.Lock()
		defer lock.Unlock()
		v, ok := yeelights[s.Address]
		if !ok || v == nil {

			return nil
		}

		// filter keys by removing the current disappearing one
		var keys = make([]string, 0)
		for _, k := range v.keys {
			if k != event.Context {
				keys = append(keys, k)
			}
		}

		if len(keys) == 0 {
			v.cancel()
			delete(yeelights, s.Address)
			return nil
		}

		v.keys = keys
		return nil
	},
}

Functions

func RealMain

func RealMain()

Types

type Action

type Action struct {
	Action string
	Event  []sdk.EventName
	Run    func(event *sdk.ReceivedEvent, light yeelight.Yeelight, s *setting) error
}

func (*Action) Handle

func (a *Action) Handle(event *sdk.ReceivedEvent) error

Jump to

Keyboard shortcuts

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