You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
2 years ago
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
MQTT "github.com/eclipse/paho.mqtt.golang"
|
||
|
mqtt "github.com/eclipse/paho.mqtt.golang"
|
||
|
)
|
||
|
|
||
|
func publish(client MQTT.Client, bps float32) {
|
||
|
|
||
|
topic := "WirelessBandwidth/state"
|
||
|
//Payload := "{\"Mbps\":\"" + fmt.Sprintf("%f", bps) + "\"}"
|
||
|
token := client.Publish(topic, 1, false, Payload)
|
||
|
token.Wait()
|
||
|
//fmt.Println(fmt.Sprintf("%f",bps))
|
||
|
}
|
||
|
|
||
|
func subscribe(client MQTT.Client, bps float32) {
|
||
|
|
||
|
topic := "home/rgbboard"
|
||
|
//Payload := "{\"Mbps\":\"" + fmt.Sprintf("%f", bps) + "\"}"
|
||
|
sub := client.Subscribe()
|
||
|
token := client.Publish(topic, 1, false, Payload)
|
||
|
token.Wait()
|
||
|
//fmt.Println(fmt.Sprintf("%f",bps))
|
||
|
}
|
||
|
|
||
|
var messagePubHandler MQTT.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
||
|
fmt.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic())
|
||
|
}
|
||
|
|
||
|
var connectHandler MQTT.OnConnectHandler = func(client mqtt.Client) {
|
||
|
fmt.Println("Connected")
|
||
|
//topic := "homeassistant/sensor/WirelessBandwidth/config"
|
||
|
//Payload := "{\"name\":\"WirelessBandwidth\",\"state_class\":\"measurement\",\"unit_of_measurement\":\"Mbps\", \"device_class\":\"monetary\", \"state_topic\":\"WirelessBandwidth/state\",\"unique_id\":\"WirelessBandwidth\",\"value_template\":\"{{ value_json.Mbps }}\"}"
|
||
|
//token := client.Publish(topic, 1, false, Payload)
|
||
|
//token.Wait()
|
||
|
}
|
||
|
|
||
|
var connectLostHandler MQTT.ConnectionLostHandler = func(client mqtt.Client, err error) {
|
||
|
fmt.Printf("Connect lost: %v", err)
|
||
|
|
||
|
}
|