package main
import (
"github.com/aws/aws-lambda-go/lambda"
smarthome "github.com/orktes/go-alexa-smarthome"
)
type mockPropertyHandler struct {
val interface {}
}
func (mockHandler * mockPropertyHandler ) GetValue () (interface {}, error ) {
fmt .Printf ("Getting value %+v\n " , mockHandler .val )
return mockHandler .val , nil
}
func (mockHandler * mockPropertyHandler ) SetValue (val interface {}) error {
fmt .Printf ("Received value %+v\n " , val )
mockHandler .val = val
return nil
}
func (mockHandler * mockPropertyHandler ) UpdateChannel () <- chan interface {} {
return nil
}
func main () {
sm := smarthome .New (smarthome .AuthorizationFunc (func (req smarthome.AcceptGrantRequest ) error {
return nil
}))
abstractTestDevice := smarthome .NewAbstractDevice (
"1" ,
"Fake switch" ,
"Homeautomation" ,
"Just a fake light" ,
)
abstractTestDevice .AddDisplayCategory ("SWITCH" )
capability := abstractTestDevice .NewCapability ("PowerController" )
capability .AddPropertyHandler ("powerState" , & mockPropertyHandler {val : "ON" })
sm .AddDevice (abstractTestDevice )
lambda .Start (sm .Handle )
}
High level APIs (device abstractions)