func main() { flag.Parse() config, err := config.Configuration(*configFilePath) if err != nil { panic(err) } logging.SetLogLevel(config.LogLevel) gbot := gobot.NewGobot() broker := broker.NewMQTTBroker("edison processor", config.BrokerUrl) err = broker.Connect() if err != nil { panic(err) } logging.Log.Info("Successfully connected to broker") adapter := edison.NewEdisonAdaptor("edison") // adapter := testutils.NewMockAdapter("mockAdapter") service := sensors.Initialize(gbot, adapter, broker) for pin, stype := range config.Sensors { switch stype { case "touch": service.NewTouchSensor(pin) case "sound": service.NewSoundSensor(pin) } } logging.Log.Info("Starting gobot bot...") gbot.Start() }
func main() { flag.Parse() config, err := config.Configuration(*configFilePath) if err != nil { panic(err) } logging.SetLogLevel(config.LogLevel) alertChan := make(chan *event.Event, 100) mqttBroker := broker.NewMQTTBroker("wff_notification", config.BrokerUrl) subscriber := subscribe.New(mqttBroker, alertChan) // Subscribe to all available sensor keys go subscriber.Start() // Set up the Twilio notifier notifier := notifiers.NewTwilio(config.TwilioAccountSid, config.TwilioAuthToken, config.TwilioFromPhone, config.To) service := notification.New(notifier, alertChan, time.Duration(config.NotificationIntervalMinutes)*time.Minute) service.Start() }