config

package
v0.0.0-...-ea5a937 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2022 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type WitchConfig

type WitchConfig struct {
	APIBaseURL string `envconfig:"API_BASE_URL" default:"/api/v1"`

	HueBridge                *huego.Bridge  `ignored:"true"`
	HueDefaultColors         map[int]string `envconfig:"HUE_DEFAULT_COLORS" default:""`
	HueDefaultColorsEnabled  bool           `envconfig:"HUE_DEFAULT_COLORS_ENABLED" default:"false"`
	HueDefaultColorsStart    int            `envconfig:"HUE_DEFAULT_COLORS_START" default:"22"`
	HueLightsStart           int            `envconfig:"HUE_LIGHTS_START" default:"18"`
	HueLightsEnd             int            `envconfig:"HUE_LIGHTS_END" default:"7"`
	HueLightsStructs         []huego.Light  `ignored:"true"`
	HueLightsScheduleEnabled bool           `envconfig:"HUE_LIGHTS_SCHEDULE_ENABLED" default:"false"`
	HueLights                []int          `envconfig:"HUE_LIGHTS" required:"true" split_words:"true"`
	HueToken                 string         `envconfig:"HUE_TOKEN" required:"true"`

	SoundQueue            chan string `ignored:"true"`
	SoundQueueCapacity    int         `envconfig:"SOUND_QUEUE_CAPACITY" default:"1"`
	SoundQuietTimeStart   int         `envconfig:"SOUND_QUIET_TIME_START" default:"22"`
	SoundQuietTimeEnabled bool        `envconfig:"SOUND_QUIET_TIME_ENABLED" default:"true"`
	SoundQuietTimeEnd     int         `envconfig:"SOUND_QUIET_TIME_END" default:"07"`

	GeofencingEnabled        bool              `envconfig:"GEOFENCING_ENABLED" default:"false"`
	GeofencingClient         geofence.Geofence `ignored:"true"`
	GeofencingIPBaseAPIToken string            `envconfig:"GEOFENCING_IPBASE_API_TOKEN" default:""`
	GeofencingRadius         float64           `envconfig:"GEOFENCING_RADIUS" default:"0.5"`

	HomeAssistantClient   *resty.Client `ignored:"true"`
	HomeAssistantAPIToken string        `envconfig:"HOME_ASSISTANT_API_TOKEN" default:""`
	HomeAssistantEntityID string        `envconfig:"HOME_ASSISTANT_ENTITY_ID" default:""`
	HomeAssistantHost     string        `envconfig:"HOME_ASSISTANT_HOST" default:"http://127.0.0.1"`
	HomeAssistantPort     int           `envconfig:"HOME_ASSISTANT_PORT" default:"8123"`

	LogLevel string `envconfig:"LOG_LEVEL" default:"info"`

	MetricsEnabled bool `envconfig:"METRICS_ENABLED" default:"true"`

	Port int `envconfig:"PORT" default:"8080"`

	ShowBanner bool `envconfig:"SHOW_BANNER" default:"false"`

	UIEnabled    bool `envconfig:"UI_ENABLED" default:"true"`
	sync.RWMutex `ignored:"true"`
}

WitchConfig is a global config struct which holds all settings and some stateful objects

func New

func New() *WitchConfig

Returns a new config and inits needed daemons

func (*WitchConfig) InitDefaultColorsScheduler

func (w *WitchConfig) InitDefaultColorsScheduler()

InitDefaultColorsScheduler conditionally starts a scheduler to set default colors on configured lights

func (*WitchConfig) InitEchoConfig

func (w *WitchConfig) InitEchoConfig(frontendAssets fs.FS, apiDocAssets fs.FS) *echo.Echo

InitEchoConfig sets initial echo config such as middleware and logger

func (*WitchConfig) InitHueBridge

func (w *WitchConfig) InitHueBridge()

InitHue discovers hue bridge and configured lights

func (*WitchConfig) InitHueLightsScheduler

func (w *WitchConfig) InitHueLightsScheduler()

InitHueLightsScheduler conditionally starts a scheduler to turn on/off lights and set default colors

Jump to

Keyboard shortcuts

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