entity

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DomainBinarySensor = Domain{"binary_sensor"}
	DomainButton       = Domain{"button"}
	DomainSensor       = Domain{"sensor"}
	DomainSwitch       = Domain{"switch"}
	DomainUpdate       = Domain{"update"}
	DomainLock         = Domain{"lock"}
	DomainImage        = Domain{"image"}
	DomainNumber       = Domain{"number"}
)

Functions

func CleanupAll

func CleanupAll(entities []*Entity, client mqtt.Client, scheduler gocron.Scheduler)

func SetupAll

func SetupAll(entities []*Entity, client mqtt.Client, scheduler gocron.Scheduler) error

Types

type AvailabilityItem

type AvailabilityItem struct {
	Topic string `json:"topic,omitempty"`
}

type BuildConfig

type BuildConfig struct {
	Config
	// contains filtered or unexported fields
}

func NewEntity

func NewEntity(cfg Config) *BuildConfig

func (*BuildConfig) Build

func (e *BuildConfig) Build() *Entity

func (*BuildConfig) CommandTopic

func (e *BuildConfig) CommandTopic(topic string) *BuildConfig

func (*BuildConfig) DefaultAttributesTopic added in v1.4.0

func (e *BuildConfig) DefaultAttributesTopic() *BuildConfig

func (*BuildConfig) DefaultCommandTopic

func (e *BuildConfig) DefaultCommandTopic() *BuildConfig

func (*BuildConfig) DefaultStateTopic

func (e *BuildConfig) DefaultStateTopic() *BuildConfig

func (*BuildConfig) DeviceClass

func (e *BuildConfig) DeviceClass(class string) *BuildConfig

func (*BuildConfig) DisableAvailability

func (e *BuildConfig) DisableAvailability() *BuildConfig

func (*BuildConfig) DisabledByDefault

func (e *BuildConfig) DisabledByDefault() *BuildConfig

func (*BuildConfig) EnableAvailability

func (e *BuildConfig) EnableAvailability() *BuildConfig

func (*BuildConfig) EnabledByDefault

func (e *BuildConfig) EnabledByDefault() *BuildConfig

func (*BuildConfig) EntityCategory

func (e *BuildConfig) EntityCategory(category string) *BuildConfig

func (*BuildConfig) EntityPicture

func (e *BuildConfig) EntityPicture(picture string) *BuildConfig

func (*BuildConfig) ID

func (e *BuildConfig) ID(id string) *BuildConfig

func (*BuildConfig) Icon

func (e *BuildConfig) Icon(icon string) *BuildConfig

func (*BuildConfig) Interval

func (e *BuildConfig) Interval(interval time.Duration) *BuildConfig

func (*BuildConfig) Max added in v1.3.0

func (e *BuildConfig) Max(max float64) *BuildConfig

func (*BuildConfig) Min added in v1.3.0

func (e *BuildConfig) Min(min float64) *BuildConfig

func (*BuildConfig) Name

func (e *BuildConfig) Name(name string) *BuildConfig

func (*BuildConfig) ObjectID

func (e *BuildConfig) ObjectID(id string) *BuildConfig

func (*BuildConfig) OnCleanup

func (e *BuildConfig) OnCleanup(cleanup SetupFn) *BuildConfig

func (*BuildConfig) OnCommand

func (e *BuildConfig) OnCommand(handler MessageFn) *BuildConfig

func (*BuildConfig) OnSetup

func (e *BuildConfig) OnSetup(setupFn SetupFn) *BuildConfig

func (*BuildConfig) OnState

func (e *BuildConfig) OnState(handler MessageFn) *BuildConfig

func (*BuildConfig) Optimistic

func (e *BuildConfig) Optimistic() *BuildConfig

func (*BuildConfig) Options

func (e *BuildConfig) Options(options []string) *BuildConfig

func (*BuildConfig) PayloadInstall

func (e *BuildConfig) PayloadInstall(payload string) *BuildConfig

func (*BuildConfig) PayloadLock

func (e *BuildConfig) PayloadLock(payload string) *BuildConfig

func (*BuildConfig) PayloadOff

func (e *BuildConfig) PayloadOff(payload string) *BuildConfig

func (*BuildConfig) PayloadOn

func (e *BuildConfig) PayloadOn(payload string) *BuildConfig

func (*BuildConfig) PayloadUnlock

func (e *BuildConfig) PayloadUnlock(payload string) *BuildConfig

func (*BuildConfig) Precision

func (e *BuildConfig) Precision(precision int) *BuildConfig

func (*BuildConfig) Retain

func (e *BuildConfig) Retain() *BuildConfig

func (*BuildConfig) Schedule

func (e *BuildConfig) Schedule(handler SetupFn) *BuildConfig

func (*BuildConfig) ScheduleJob added in v1.2.0

func (e *BuildConfig) ScheduleJob(jobDefinition gocron.JobDefinition, handler SetupFn) *BuildConfig

func (*BuildConfig) StartJob added in v1.2.0

func (e *BuildConfig) StartJob() *BuildConfig

func (*BuildConfig) StateClass

func (e *BuildConfig) StateClass(class string) *BuildConfig

func (*BuildConfig) StateTopic

func (e *BuildConfig) StateTopic(topic string) *BuildConfig

func (*BuildConfig) Step added in v1.3.0

func (e *BuildConfig) Step(step float64) *BuildConfig

func (*BuildConfig) Type

func (e *BuildConfig) Type(component Domain) *BuildConfig

func (*BuildConfig) Unit

func (e *BuildConfig) Unit(unit string) *BuildConfig

type Config

type Config struct {
	Name             string `json:"name,omitempty"`
	Icon             string `json:"icon,omitempty"`
	UniqueID         string `json:"unique_id,omitempty"`
	EnabledByDefault *bool  `json:"enabled_by_default,omitempty"`

	JsonAttributesTopic string `json:"json_attributes_topic,omitempty"`
	ValueTemplate       string `json:"value_template,omitempty"`

	// `diagnostic`, `config`
	EntityCategory string `json:"entity_category,omitempty"`
	EntityPicture  string `json:"entity_picture,omitempty"`

	UnitOfMeasurement         string `json:"unit_of_measurement,omitempty"`
	SuggestedDisplayPrecision int    `json:"suggested_display_precision,omitempty"`

	Min  float64 `json:"min,omitempty"`
	Max  float64 `json:"max,omitempty"`
	Step float64 `json:"step,omitempty"`

	// https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes
	StateClass string `json:"state_class,omitempty"`

	// https://www.home-assistant.io/integrations/sensor/#device-class
	DeviceClass string `json:"device_class,omitempty"`
	// https://www.home-assistant.io/integrations/sensor.mqtt/#options
	Options []string `json:"options,omitempty"`

	filters.Filters `yaml:",inline"`
	UpdateInterval  time.Duration `yaml:"update_interval"`

	PayloadOn      string `json:"payload_on,omitempty"`
	PayloadOff     string `json:"payload_off,omitempty"`
	PayloadInstall string `json:"payload_install,omitempty"`
	PayloadLock    string `json:"payload_lock,omitempty"`
	PayloadUnlock  string `json:"payload_unlock,omitempty"`

	// set too false to disable availability
	Availability *bool `json:"availability,omitempty"`
	Retain       *bool `json:"retain,omitempty"`
}

type DiscoveryConfig

type DiscoveryConfig struct {
	Name             string `json:"name,omitempty"`
	Icon             string `json:"icon,omitempty"`
	UniqueID         string `json:"unique_id,omitempty"`
	EnabledByDefault *bool  `json:"enabled_by_default,omitempty"`

	ValueTemplate string `json:"value_template,omitempty"`

	EntityCategory string `json:"entity_category,omitempty"`
	EntityPicture  string `json:"entity_picture,omitempty"`

	UnitOfMeasurement         string `json:"unit_of_measurement,omitempty"`
	SuggestedDisplayPrecision int    `json:"suggested_display_precision,omitempty"`

	Min  float64 `json:"min,omitempty"`
	Max  float64 `json:"max,omitempty"`
	Step float64 `json:"step,omitempty"`

	// https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes
	StateClass string `json:"state_class,omitempty"`
	// https://www.home-assistant.io/integrations/sensor/#device-class
	DeviceClass string   `json:"device_class,omitempty"`
	Options     []string `json:"options,omitempty"`

	StateTopic          string `json:"state_topic,omitempty"`
	ImageTopic          string `json:"image_topic,omitempty"`
	CommandTopic        string `json:"command_topic,omitempty"`
	JsonAttributesTopic string `json:"json_attributes_topic,omitempty"`

	PayloadOn      string `json:"payload_on,omitempty"`
	PayloadOff     string `json:"payload_off,omitempty"`
	PayloadInstall string `json:"payload_install,omitempty"`
	PayloadLock    string `json:"payload_lock,omitempty"`
	PayloadUnlock  string `json:"payload_unlock,omitempty"`

	Availability []AvailabilityItem  `json:"availability,omitempty"`
	Device       config.DeviceConfig `json:"device,omitempty"`
	Retain       *bool               `json:"retain,omitempty"`
}

type Domain

type Domain struct {
	// contains filtered or unexported fields
}

func (Domain) String

func (d Domain) String() string

type Entity

type Entity struct {
	// contains filtered or unexported fields
}

func (*Entity) DiscoveryConfig

func (e *Entity) DiscoveryConfig() DiscoveryConfig

func (*Entity) Entity

func (e *Entity) Entity() *Entity

Entity access shared root type on inherited models

func (*Entity) Job added in v1.2.0

func (e *Entity) Job() gocron.Job

func (*Entity) Name

func (e *Entity) Name() string

func (*Entity) OnCleanup

func (e *Entity) OnCleanup(fn SetupFn) *Entity

func (*Entity) PublishAttributes added in v1.4.0

func (e *Entity) PublishAttributes(client mqtt.Client, attributes interface{}) error

func (*Entity) PublishRawState

func (e *Entity) PublishRawState(client mqtt.Client, state interface{}) error

func (*Entity) PublishState

func (e *Entity) PublishState(client mqtt.Client, state interface{}) error

func (*Entity) RunJob added in v1.2.0

func (e *Entity) RunJob() error

func (*Entity) StartJob added in v1.2.0

func (e *Entity) StartJob(scheduler gocron.Scheduler) error

func (*Entity) StopJob added in v1.2.0

func (e *Entity) StopJob(scheduler gocron.Scheduler) error

func (*Entity) UpdateJob added in v1.2.0

func (e *Entity) UpdateJob(scheduler gocron.Scheduler, jobDefinition gocron.JobDefinition) error

type MessageFn

type MessageFn = func(entity *Entity, client mqtt.Client, scheduler gocron.Scheduler, message mqtt.Message)

type SetupFn

type SetupFn = func(entity *Entity, client mqtt.Client, scheduler gocron.Scheduler) error

Jump to

Keyboard shortcuts

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