summaryrefslogtreecommitdiff
path: root/doc/api/future.md
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 /doc/api/future.md
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.
Diffstat (limited to 'doc/api/future.md')
-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