1
0
mirror of https://github.com/Luzifer/culmqtt.git synced 2024-09-19 23:32:58 +00:00
culmqtt/mqtt.go

36 lines
791 B
Go
Raw Permalink Normal View History

2018-07-06 18:57:55 +00:00
package main
import (
"errors"
mqtt "github.com/eclipse/paho.mqtt.golang"
log "github.com/sirupsen/logrus"
)
2018-07-06 18:57:55 +00:00
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()
2018-07-06 18:57:55 +00:00
}