mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-09 06:07:19 -06:00
checkin before rename
This commit is contained in:
4
internal/network/light/light.go
Normal file
4
internal/network/light/light.go
Normal file
@@ -0,0 +1,4 @@
|
||||
package light
|
||||
|
||||
type Light struct {
|
||||
}
|
||||
1
internal/network/service.go
Normal file
1
internal/network/service.go
Normal file
@@ -0,0 +1 @@
|
||||
package network
|
||||
55
internal/network/setup.go
Normal file
55
internal/network/setup.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package network
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"nhooyr.io/websocket"
|
||||
)
|
||||
|
||||
var ctx, ctxCancel = context.WithTimeout(context.Background(), time.Second*5)
|
||||
var conn, _, err = websocket.Dial(ctx, "ws://192.168.86.67:8123/api/websocket", nil)
|
||||
|
||||
type AuthMessage struct {
|
||||
MsgType string `json:"type"`
|
||||
AccessToken string `json:"access_token"`
|
||||
}
|
||||
|
||||
func SendAuthMessage() error {
|
||||
token := os.Getenv("AUTH_TOKEN")
|
||||
msgJson, err := json.Marshal(AuthMessage{MsgType: "auth", AccessToken: token})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = conn.Write(ctx, websocket.MessageText, msgJson)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func WriteMessage[T any](msg T) error {
|
||||
msgJson, err := json.Marshal(msg)
|
||||
fmt.Println(string(msgJson))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = conn.Write(ctx, websocket.MessageText, msgJson)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReadMessage() (string, error) {
|
||||
_, msg, err := conn.Read(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(msg), nil
|
||||
}
|
||||
Reference in New Issue
Block a user