summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2026-03-22 09:54:32 +0100
committerxengineering <me@xengineering.eu>2026-03-22 10:23:46 +0100
commitf752ba8296fa95f2e76977e4c5031af0ddecd501 (patch)
treee14e96d0c1db14fcef7e815196057f9abdee36f8 /tools
parentf9f2ed8911f867b97369129ae87cf21873172335 (diff)
downloadsia-server-f752ba8296fa95f2e76977e4c5031af0ddecd501.tar
sia-server-f752ba8296fa95f2e76977e4c5031af0ddecd501.tar.zst
sia-server-f752ba8296fa95f2e76977e4c5031af0ddecd501.zip
tools: websocket: Implement Sys.GenConfig
This is the first working command for the Shelly 2PM Gen3.
Diffstat (limited to 'tools')
-rw-r--r--tools/websocket.go31
1 files changed, 31 insertions, 0 deletions
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)
+ }
+}