32 lines
740 B
Go
32 lines
740 B
Go
package kiosk
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
type handler func(area string, present bool)
|
|
|
|
type configObj struct {
|
|
logger *slog.Logger
|
|
broker string
|
|
username string
|
|
password string
|
|
presenceTopic string
|
|
}
|
|
|
|
var config = configObj{}
|
|
|
|
func Run(rootLogger *slog.Logger, exitch chan bool, ctx context.Context) {
|
|
config.logger = rootLogger.With("component", "kiosk")
|
|
config.broker = viper.GetString("mqtt_broker_url")
|
|
config.username = viper.GetString("mqtt_broker_user")
|
|
config.password = viper.GetString("mqtt_broker_password")
|
|
config.presenceTopic = viper.GetString("mqtt_presence_topic")
|
|
config.logger.Info("starting MQTT broker client")
|
|
brokerConsume(ctx)
|
|
exitch <- true
|
|
}
|