diff --git a/kiosk/kiosk.go b/kiosk/kiosk.go new file mode 100644 index 0000000..e5ee8e0 --- /dev/null +++ b/kiosk/kiosk.go @@ -0,0 +1,29 @@ +package kiosk + +import ( + "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) { + 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") + brokerConsume() + exitch <- true +} diff --git a/kiosk/mqtt.go b/kiosk/mqtt.go new file mode 100644 index 0000000..88d6749 --- /dev/null +++ b/kiosk/mqtt.go @@ -0,0 +1,27 @@ +package kiosk + +import ( + "fmt" + "os" + + MQTT "github.com/eclipse/paho.mqtt.golang" +) + +func brokerConsume() { + opts := MQTT.NewClientOptions() + opts.AddBroker(config.broker) + hostname, err := os.Hostname() + if err != nil { + panic(err) + } + opts.SetClientID(fmt.Sprintf("hasskiosk-%s-%d", hostname, os.Getpid())) + opts.SetUsername(config.username) + opts.SetPassword(config.password) + opts.SetDefaultPublishHandler(func(client MQTT.Client, msg MQTT.Message) { + + }) +} + +func defaultMQTTHandler(client MQTT.Client, msg MQTT.Message) { + +} diff --git a/mqtt/mqtt.go b/mqtt/mqtt.go deleted file mode 100644 index 4d563b5..0000000 --- a/mqtt/mqtt.go +++ /dev/null @@ -1,7 +0,0 @@ -package mqtt - -import mqtt "github.com/eclipse/paho.mqtt.golang" - -func init() { - mqtt.NewClient() -}