Appearance
Установка
Требования
- Go версии 1.23 или выше.
- Терминал для работы с CLI утилитой.
- Текстовый редактор с поддержкой Go. Рекомендуется VSCode и GoLand.
Установка
shell
go get github.com/ValentinAlekhin/wb-go
Использование
После установки можно использовать команду для генерации.
shell
go run github.com/ValentinAlekhin/wb-go generate -b 192.168.1.10:1883 -o ./internal/device
Программа подключиться к MQTT брокеру по адресу 192.168.1.10:1883
и сгенерирует файлы устройств в папку ./internal/device
Работа с устройствами
go
package main
import (
"fmt"
"github.com/ValentinAlekhin/wb-go/examples/device"
"github.com/ValentinAlekhin/wb-go/pkg/control"
wb "github.com/ValentinAlekhin/wb-go/pkg/mqtt"
"log"
"os"
"os/signal"
"syscall"
)
func main() {
stop := make(chan os.Signal, 1)
signal.Notify(stop, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
// Подключение к брокеру
opt := wb.Options{
Broker: "192.168.1.150:1883",
ClientId: "client-wb-go-test",
}
client, err := wb.NewClient(opt)
if err != nil {
log.Fatal(err)
}
//Создание устройств
WbMswV4151 := device.NewWbMswV4151(client)
WbMr6Cu145 := device.NewWbMr6Cu145(client)
// Добавление скрипта
WbMswV4151.Controls.CurrentMotion.AddWatcher(func(payload control.ValueControlWatcherPayload) {
fmt.Printf("Получено новое сообщение: %f\n", payload.NewValue)
if payload.NewValue > 100 {
WbMr6Cu145.Controls.K1.TurnOff()
} else {
WbMr6Cu145.Controls.K1.TurnOn()
}
})
<-stop
// Отключениие от брокера и завершение программы
client.Disconnect(500)
fmt.Println("Программа завершена!")
}