From f752ba8296fa95f2e76977e4c5031af0ddecd501 Mon Sep 17 00:00:00 2001 From: xengineering Date: Sun, 22 Mar 2026 09:54:32 +0100 Subject: tools: websocket: Implement Sys.GenConfig This is the first working command for the Shelly 2PM Gen3. --- tools/websocket.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/websocket.go b/tools/websocket.go index ea2ea86..c882ce2 100644 --- a/tools/websocket.go +++ b/tools/websocket.go @@ -33,6 +33,19 @@ func main() { } defer c.Close() + go func() { + for { + _, message, err := c.ReadMessage() + if err != nil { + log.Println("read:", err) + return + } + log.Printf("recv: %s", message) + } + }() + + getConfig(c) + Await(syscall.SIGTERM, syscall.SIGINT) } @@ -57,3 +70,21 @@ func Await(signals ...os.Signal) { sig := <-listener log.Printf("Received OS signal '%v'\n", sig) } + +func getConfig(c *websocket.Conn) { + request := ` +{ + "jsonrpc":"2.0", + "id": 1, + "src":"user_1", + "method":"Sys.GetConfig", + "params": { + "id":2 + } +} +` + err := c.WriteMessage(websocket.TextMessage, []byte(request)) + if err != nil { + log.Fatal(err) + } +} -- cgit v1.3