homekitwatcher

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2020 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Machine

type Machine interface {
	Name() string
	Identity() string
	InstanceID() string
	Version() string
	State() string
	Directory() string
	TimeStampSeconds() int64
	NotifyWatcherState(string, interface{})
	Transition(t string, args ...interface{}) error
	Infof(name string, format string, args ...interface{})
	Errorf(name string, format string, args ...interface{})
}

type State

type State int
const (
	Unknown State = iota
	On
	Off
	// used to indicate that an external event - rpc or other watcher - initiated a transition
	OnNoTransition
	OffNoTransition
)

type StateNotification

type StateNotification struct {
	Protocol        string `json:"protocol"`
	Identity        string `json:"identity"`
	ID              string `json:"id"`
	Version         string `json:"version"`
	Timestamp       int64  `json:"timestamp"`
	Type            string `json:"type"`
	Machine         string `json:"machine"`
	Name            string `json:"name"`
	Path            string `json:"path"`
	PreviousOutcome string `json:"previous_outcome"`
}

StateNotification describes the current state of the watcher described by io.choria.machine.watcher.homekit.v1.state

func (*StateNotification) CloudEvent

func (s *StateNotification) CloudEvent() cloudevents.Event

CloudEvent creates a CloudEvent from the state notification

func (*StateNotification) JSON

func (s *StateNotification) JSON() ([]byte, error)

JSON creates a JSON representation of the notification

func (*StateNotification) SenderID

func (s *StateNotification) SenderID() string

SenderID is the identity of the event producer

func (*StateNotification) String

func (s *StateNotification) String() string

String is a string representation of the notification suitable for printing

func (*StateNotification) WatcherType

func (s *StateNotification) WatcherType() string

WatcherType is the type of watcher the notification is for - exec, file etc

type Watcher

type Watcher struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func New

func New(machine Machine, name string, states []string, failEvent string, successEvent string, ai time.Duration, properties map[string]interface{}) (watcher *Watcher, err error)

func (*Watcher) AnnounceInterval

func (w *Watcher) AnnounceInterval() time.Duration

func (*Watcher) CurrentState

func (w *Watcher) CurrentState() interface{}

func (*Watcher) Delete

func (w *Watcher) Delete()

func (*Watcher) Name

func (w *Watcher) Name() string

func (*Watcher) NotifyStateChance

func (w *Watcher) NotifyStateChance()

func (*Watcher) Run

func (w *Watcher) Run(ctx context.Context, wg *sync.WaitGroup)

func (*Watcher) Type

func (w *Watcher) Type() string

Jump to

Keyboard shortcuts

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