<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sia-server/tools/websocket.go, branch v0.2.0</title>
<subtitle>IoT backend server</subtitle>
<id>https://cgit.xengineering.eu/sia-server/atom?h=v0.2.0</id>
<link rel='self' href='https://cgit.xengineering.eu/sia-server/atom?h=v0.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/'/>
<updated>2026-03-23T15:55:47Z</updated>
<entry>
<title>tools: websocket: Implement cover close / open</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-22T09:44:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=589425d307cd7d06d3f7d052f6ea1a5245688d0d'/>
<id>urn:sha1:589425d307cd7d06d3f7d052f6ea1a5245688d0d</id>
<content type='text'>
This implements the minimal functionality to control covers with the Sia
server in the development tool.

Based on that the actual Sia server software can be adapted.
</content>
</entry>
<entry>
<title>tools: websocket: Add empty line before RX log</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-22T09:26:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=10ef120da246e0e0eb2245e160792ed29e623a30'/>
<id>urn:sha1:10ef120da246e0e0eb2245e160792ed29e623a30</id>
<content type='text'>
This makes it easier to distinguish the JSON messages visually.
</content>
</entry>
<entry>
<title>tools: websocket: Quote and prettify RX JSON</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-22T09:21:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=5bae36f4ccee5e699969770948a02f70e8fed9b0'/>
<id>urn:sha1:5bae36f4ccee5e699969770948a02f70e8fed9b0</id>
<content type='text'>
This makes the responses from the Shelly device readable.
</content>
</entry>
<entry>
<title>tools: websocket: Log pretty-printed TX JSON</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-22T09:12:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=f4cdb605863c883f77ff3a6dab6a5ead8930b0fc'/>
<id>urn:sha1:f4cdb605863c883f77ff3a6dab6a5ead8930b0fc</id>
<content type='text'>
This allows to more easily see what is sent to the Shelly device.
</content>
</entry>
<entry>
<title>tools: websocket: Implement Sys.GenConfig</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-22T08:54:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=9ef837ba3816c57dccc35c39318824851896ff11'/>
<id>urn:sha1:9ef837ba3816c57dccc35c39318824851896ff11</id>
<content type='text'>
This is the first working command for the Shelly 2PM Gen3.
</content>
</entry>
<entry>
<title>tools: websocket: Remove needless braces</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-21T16:09:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=8ee2df7b5f85b2914c074bf07da5557d5dbe4ebf'/>
<id>urn:sha1:8ee2df7b5f85b2914c074bf07da5557d5dbe4ebf</id>
<content type='text'>
Programming in too many languages ... of course not needed in Go.
</content>
</entry>
<entry>
<title>tools: websocket: Add wait for CTRL-C</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-21T16:02:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=c68b6988d6a6e18efc73d2a979ab427c20ef2108'/>
<id>urn:sha1:c68b6988d6a6e18efc73d2a979ab427c20ef2108</id>
<content type='text'>
Now the connection is immediately established but just closed on SIGTERM
and SIGINT.

This allows to keep the connection for some time and lets the user
decide when to stop.
</content>
</entry>
<entry>
<title>tools: websocket: Add connection set up / tear down</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-21T15:38:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=c47c0736bceff60de31c0afc7005c51c5bf1daa6'/>
<id>urn:sha1:c47c0736bceff60de31c0afc7005c51c5bf1daa6</id>
<content type='text'>
This was validated by sniffing the communication with Wireshark. The
following is executed:

- TCP initial handshake
- GET /rpc from tool
- HTTP 101 Switching Protocols (to Websocket) from Shelly
- ACK by tool
- TCP connection close initiated by tool

This shows that the tool is able to make Websocket connections.
</content>
</entry>
<entry>
<title>tools: websocket: Add dummy and build integration</title>
<updated>2026-03-23T15:55:47Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-21T15:06:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=1a953af65ca5b3a83e7a50407a0c480ab22cc924'/>
<id>urn:sha1:1a953af65ca5b3a83e7a50407a0c480ab22cc924</id>
<content type='text'>
Adding support for Shelly devices requires usage of the Websocket API.

To make development easier a debug tool is created.

Since it is not relevant for users it is not an artefact included into
the deploy file archive. This also avoids later removing it which is by
definition of the public API (see README.md) a breaking change.
</content>
</entry>
</feed>
