1
0
Fork 0
mirror of https://github.com/Luzifer/culmqtt.git synced 2024-11-09 22:40:07 +00:00
culmqtt/mqtt.go
Knut Ahlers e617b92069
Properly check for errors
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-02-09 00:44:14 +01:00

35 lines
791 B
Go

package main
import (
"errors"
mqtt "github.com/eclipse/paho.mqtt.golang"
log "github.com/sirupsen/logrus"
)
var brokerClient mqtt.Client
func init() {
opts := mqtt.NewClientOptions().AddBroker(cfg.MQTTHost)
if cfg.MQTTUser != "" || cfg.MQTTPass != "" {
opts.SetUsername(cfg.MQTTUser).SetPassword(cfg.MQTTPass)
}
brokerClient = mqtt.NewClient(opts)
if err := mqttTokToErr(brokerClient.Connect()); err != nil {
log.WithError(err).Fatal("Connect to MQTT broker")
}
if err := mqttTokToErr(brokerClient.Subscribe("culmqtt/+/send", 0x01, publishFS20ToCUL)); err != nil {
log.WithError(err).Fatal("Subscribe to topic")
}
}
func mqttTokToErr(tok mqtt.Token) error {
if !tok.WaitTimeout(cfg.MQTTTimeout) {
return errors.New("command timed out")
}
return tok.Error()
}