<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sia-server/mqtt.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-27T13:43:56Z</updated>
<entry>
<title>Add server version publishing</title>
<updated>2026-03-27T13:43:56Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-27T13:39:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=3158a0a132d6af4de78c9be90e45834350cfd414'/>
<id>urn:sha1:3158a0a132d6af4de78c9be90e45834350cfd414</id>
<content type='text'>
This makes it possible that the client adapts it's behaviour easily to
the server version making support of breaking API changes during early
development and debugging easier.
</content>
</entry>
<entry>
<title>Add `Retain` attribute to MQTTMessage</title>
<updated>2026-03-26T19:57:22Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-26T19:57:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=443ba52ab3f49a28e8874ebcb5476e36c3defb4c'/>
<id>urn:sha1:443ba52ab3f49a28e8874ebcb5476e36c3defb4c</id>
<content type='text'>
This allows the sending part of the code to decide about the retain
flag. The MQTT go routine will set it accordingly.
</content>
</entry>
<entry>
<title>Refactor and add routing concept</title>
<updated>2026-03-25T20:09:11Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-25T19:33:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=476db7047a9c650057c034c647ea66f3c38e8a53'/>
<id>urn:sha1:476db7047a9c650057c034c647ea66f3c38e8a53</id>
<content type='text'>
This scales better when additional receiving routes will be added.
</content>
</entry>
<entry>
<title>Add MQTT subscription for /cover/&lt;id&gt;/movement</title>
<updated>2026-03-25T20:09:11Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-23T19:53:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=1bd2833f81379f25b29ab5d929f14e51700fa471'/>
<id>urn:sha1:1bd2833f81379f25b29ab5d929f14e51700fa471</id>
<content type='text'>
This let's the Sia server receive cover movement commands. For now they
are simply logged.
</content>
</entry>
<entry>
<title>Add MQTTMessage.String()</title>
<updated>2026-03-25T20:09:11Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2026-03-23T19:46:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=64f8cf0630ce51349b94aca2f91617d373ee800d'/>
<id>urn:sha1:64f8cf0630ce51349b94aca2f91617d373ee800d</id>
<content type='text'>
This simplifies debugging.
</content>
</entry>
<entry>
<title>Use default config</title>
<updated>2025-12-20T13:11:13Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T13:11:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=224d52d1033d8ccce5087c9bee5a63457830a13a'/>
<id>urn:sha1:224d52d1033d8ccce5087c9bee5a63457830a13a</id>
<content type='text'>
The default config JSON is embedded as bytes into the executable.
Instead of constants the default values are now parsed from these
embedded bytes.
</content>
</entry>
<entry>
<title>Implement &lt;prefix&gt;/server/health</title>
<updated>2025-12-20T12:57:21Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T12:57:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=c6249f96b09d9862f160c439ac8a97a92edb8228'/>
<id>urn:sha1:c6249f96b09d9862f160c439ac8a97a92edb8228</id>
<content type='text'>
This indicates if the Sia server is available and connected to the MQTT
broker.

Using the MQTT Will messages these will also be sent if the Sia server
unexpectedly crashes.

Using the retained flag it is ensured that freshly connected MQTT
clients will receive these messages even when they missed the initial
one from the Sia server.
</content>
</entry>
<entry>
<title>Add MQTT keepalives</title>
<updated>2025-12-20T12:43:31Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T12:43:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=58d7c51baa053be8d6d4ec5f409fceef1c7c11b5'/>
<id>urn:sha1:58d7c51baa053be8d6d4ec5f409fceef1c7c11b5</id>
<content type='text'>
This issues ping request / response messages between the Sia server and
the MQTT broker making sure an interrupted connection is noticed.
</content>
</entry>
<entry>
<title>Implement MQTT reconnects</title>
<updated>2025-12-20T12:38:14Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T12:38:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc'/>
<id>urn:sha1:bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc</id>
<content type='text'>
This is a central requirement to ensure a restart of the MQTT broker
does not harm the Sia server operation.
</content>
</entry>
<entry>
<title>Log MQTT disconnect</title>
<updated>2025-12-20T12:32:55Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T12:32:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=12198f4d921eb6406d08a122e2e51971bf65e7fa'/>
<id>urn:sha1:12198f4d921eb6406d08a122e2e51971bf65e7fa</id>
<content type='text'>
This makes connection loss visible during debugging.
</content>
</entry>
<entry>
<title>Separate MQTT logic</title>
<updated>2025-12-20T12:27:42Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-12-20T12:27:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/sia-server/commit/?id=96299467958aaffdbef5cb8ae780d3abeddfcaba'/>
<id>urn:sha1:96299467958aaffdbef5cb8ae780d3abeddfcaba</id>
<content type='text'>
This reduces the coupling between the MQTT-related code and everything
else to a single `tx` channel of type `MQTTMessage`.

This improves the code quality significantly.
</content>
</entry>
</feed>
