summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-08-13 17:37:31 +0200
committerxengineering <me@xengineering.eu>2025-08-13 17:43:25 +0200
commitc48811f9b52a3929a85ba3b9d69b685fc1320edf (patch)
tree292eea4ace7c7e1ac9a722361e53b0917f054efe
parent4883d87426e555b970c94ac18911777f3e3056bb (diff)
downloadiot-contact-c48811f9b52a3929a85ba3b9d69b685fc1320edf.tar
iot-contact-c48811f9b52a3929a85ba3b9d69b685fc1320edf.tar.zst
iot-contact-c48811f9b52a3929a85ba3b9d69b685fc1320edf.zip
doc: api: future: Simplify with mDNS
Removing the full configurability of the device and replacing everything with (m)DNS makes the API way easier. There is no need for HTTP, settings parsing and storage and all related efforts. Instead the device finds updates via a hard-coded domain name, and all local services via mDNS. Configuration might come later for security (setting a TLS-PSK key or similar) or for fine-tuning but is in general not required.
-rw-r--r--doc/api/future.md69
1 files changed, 7 insertions, 62 deletions
diff --git a/doc/api/future.md b/doc/api/future.md
index 7486529..9090ab6 100644
--- a/doc/api/future.md
+++ b/doc/api/future.md
@@ -4,72 +4,17 @@ This is based on the Zephyr shell. It is not part of the public API as defined
by semantic versioning and has no stability guarantees. It is a pure
development and debugging tool.
-# IPv6
+# IP
-The device will assign itself the link-local address based on its
-hardware-provided EUI-48 MAC address without privacy extension.
+The device will automatically set its IP configuration based on DHCPv4 and IPv6
+SLAAC.
-This makes the device discoverable in the network with a ping to the all-nodes
-IPv6 multicast address. The following example assumes the network interface for
-the discovery is `eth0`.
+# mDNS
-```
-ping -c 1 ff02::1%eth0
-```
-
-If the EUI-48 MAC address of the target device is known the device can also be
-accessed directly with its link-local address.
-
-# HTTP Server
-
-- `GET /` `application/json` (returns device info, see below)
-
-- `GET /settings` `application/json`
-- `PUT /settings` `application/json`
-
-# Device Info
+The device will find the following services based on mDNS:
-```
-{
- "hostname": "mydevice",
- "type": {
- "text": "iot-contact",
- "uuid": "eeb58c52-8e25-489c-9a1a-c4662fc9318a"
- },
- "version": {
- "hardware": "v1.2.3",
- "firmware": "v4.5.6"
- },
- "address": {
- "mac": {
- "eui-48": "00:00:5e:00:53:01"
- }
- }
-}
-```
-
-# Settings
-
-```
-{
- "hostname": "mydevice",
- "update": {
- "url": "https://deploy.xengineering.eu/git/iot-contact/latest/"
- },
- "mqtt": {
- "url": "mqtt://mqtt.example.com/path/to/root"
- },
- "syslog": {
- "target": {
- "ip": "192.168.1.12",
- "port": 514
- }
- },
- "blind": {
- "time_up_down_ms": 12000
- }
-}
-```
+- MQTT broker
+- syslog server
# MQTT