mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-15 04:12:02 -06:00
Merge branch 'main' of https://github.com/saml-dev/gome-assistant
This commit is contained in:
@@ -2,7 +2,7 @@ package internal
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"time"
|
||||
@@ -27,7 +27,9 @@ func GetId() int64 {
|
||||
func ParseTime(s string) carbon.Carbon {
|
||||
t, err := time.Parse("15:04", s)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to parse time string \"%s\"; format must be HH:MM.\n", s)
|
||||
parsingErr := fmt.Errorf("failed to parse time string \"%s\"; format must be HH:MM.: %w", s, err)
|
||||
slog.Error(parsingErr.Error())
|
||||
panic(parsingErr)
|
||||
}
|
||||
return carbon.Now().SetTimeMilli(t.Hour(), t.Minute(), 0, 0)
|
||||
}
|
||||
@@ -35,7 +37,9 @@ func ParseTime(s string) carbon.Carbon {
|
||||
func ParseDuration(s string) time.Duration {
|
||||
d, err := time.ParseDuration(s)
|
||||
if err != nil {
|
||||
log.Fatalf(fmt.Sprintf("Couldn't parse string duration: \"%s\" see https://pkg.go.dev/time#ParseDuration for valid time units\n", s))
|
||||
parsingErr := fmt.Errorf("couldn't parse string duration: \"%s\" see https://pkg.go.dev/time#ParseDuration for valid time units: %w", s, err)
|
||||
slog.Error(parsingErr.Error())
|
||||
panic(parsingErr)
|
||||
}
|
||||
return d
|
||||
}
|
||||
|
||||
@@ -3,8 +3,7 @@ package websocket
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
@@ -25,9 +24,8 @@ type ChanMsg struct {
|
||||
func ListenWebsocket(conn *websocket.Conn, ctx context.Context, c chan ChanMsg) {
|
||||
for {
|
||||
bytes, err := ReadMessage(conn, ctx)
|
||||
|
||||
if err != nil {
|
||||
log.Default().Println("Error reading from websocket:", err)
|
||||
slog.Error("Error reading from websocket:", err)
|
||||
close(c)
|
||||
break
|
||||
}
|
||||
@@ -38,7 +36,7 @@ func ListenWebsocket(conn *websocket.Conn, ctx context.Context, c chan ChanMsg)
|
||||
}
|
||||
json.Unmarshal(bytes, &base)
|
||||
if !base.Success {
|
||||
fmt.Println("WARNING: received unsuccessful response:", string(bytes))
|
||||
slog.Warn("Received unsuccessful response", "response", string(bytes))
|
||||
}
|
||||
chanMsg := ChanMsg{
|
||||
Type: base.Type,
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"log/slog"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -17,9 +17,7 @@ import (
|
||||
i "saml.dev/gome-assistant/internal"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrInvalidToken = errors.New("invalid authentication token")
|
||||
)
|
||||
var ErrInvalidToken = errors.New("invalid authentication token")
|
||||
|
||||
type AuthMessage struct {
|
||||
MsgType string `json:"type"`
|
||||
@@ -59,7 +57,7 @@ func SetupConnection(ip, port, authToken string) (*websocket.Conn, context.Conte
|
||||
conn, _, err := dialer.DialContext(ctx, fmt.Sprintf("ws://%s:%s/api/websocket", ip, port), nil)
|
||||
if err != nil {
|
||||
ctxCancel()
|
||||
log.Printf("ERROR: Failed to connect to websocket at ws://%s:%s/api/websocket. Check IP address and port\n", ip, port)
|
||||
slog.Error("Failed to connect to websocket at ws://%s:%s/api/websocket. Check IP address and port\n", ip, port)
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -67,7 +65,7 @@ func SetupConnection(ip, port, authToken string) (*websocket.Conn, context.Conte
|
||||
_, err = ReadMessage(conn, ctx)
|
||||
if err != nil {
|
||||
ctxCancel()
|
||||
log.Printf("Unknown error creating websocket client\n")
|
||||
slog.Error("Unknown error creating websocket client\n")
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -75,7 +73,7 @@ func SetupConnection(ip, port, authToken string) (*websocket.Conn, context.Conte
|
||||
err = SendAuthMessage(conn, ctx, authToken)
|
||||
if err != nil {
|
||||
ctxCancel()
|
||||
log.Printf("Unknown error creating websocket client\n")
|
||||
slog.Error("Unknown error creating websocket client\n")
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -83,7 +81,7 @@ func SetupConnection(ip, port, authToken string) (*websocket.Conn, context.Conte
|
||||
err = VerifyAuthResponse(conn, ctx)
|
||||
if err != nil {
|
||||
ctxCancel()
|
||||
log.Printf("ERROR: Auth token is invalid. Please double check it or create a new token in your Home Assistant profile\n")
|
||||
slog.Error("Auth token is invalid. Please double check it or create a new token in your Home Assistant profile\n")
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
@@ -143,7 +141,9 @@ func SubscribeToEventType(eventType string, conn *WebsocketWriter, ctx context.C
|
||||
}
|
||||
err := conn.WriteMessage(e, ctx)
|
||||
if err != nil {
|
||||
log.Fatalf("Error writing to websocket: %s\n", err)
|
||||
wrappedErr := fmt.Errorf("error writing to websocket: %w", err)
|
||||
slog.Error(wrappedErr.Error())
|
||||
panic(wrappedErr)
|
||||
}
|
||||
// m, _ := ReadMessage(conn, ctx)
|
||||
// log.Default().Println(string(m))
|
||||
|
||||
Reference in New Issue
Block a user