diff options
author | xengineering <me@xengineering.eu> | 2025-08-13 17:37:31 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2025-08-13 17:43:25 +0200 |
commit | c48811f9b52a3929a85ba3b9d69b685fc1320edf (patch) | |
tree | 292eea4ace7c7e1ac9a722361e53b0917f054efe | |
parent | 4883d87426e555b970c94ac18911777f3e3056bb (diff) | |
download | iot-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.md | 69 |
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 |