User Tools

Site Tools


projects:spejsiot

This is an old revision of the document!


SpejsIoT

Warsaw Hackerspace IoT something. Because NIH. Based on ESP8266. It all goes through central MQTT broker now.

Turns out someone did it kind of better - https://github.com/marvinroger/homie. It seems to have more-or-less the same ideas, but extended further a little bit. We'll just most probably rewrite it in Sming, as Arduino for esp8266 (for which official implementation of homie is implemented) sucks.

MQTT/HTTP documentation below stays here mostly for historical purposes.

Devices

  • Working
    • Vacuum cleaner (10.8.0.140)
    • Exhaust (10.8.0.22)
  • Planned
    • Valves
    • Lights

Queue topics

Topic Description
iot/ DEVICE_ID /control read: device control; restart - reboot device; ota - start OTA
iot/ DEVICE_ID /state write: online or offline, offline is set in last will
iot/ DEVICE_ID /type write: device type, eg. exhaust, vacuum
iot/ DEVICE_ID /ota write: OTA status, started, finished, failed
iot/ DEVICE_ID / ENDPOINT value to set, or state change report, eg. iot/123456/relay = 1

HTTP API

Spejsiot devices publish simple REST-like HTTP API:

Address Description
/metadata.json Simple device status and endpoints list
/api/1/ ENDPOINT / VALUE Set value to endpoint

Endpoints

Right now only used endpoint is relay, which takes 0, 1 or toggle values.

mDNS / Zeroconf / Avahi

Spejsiot devices advertise using Avahi/Zeroconf/mDNS/Bonjour on local network as services of type _spejsiot._tcp.

Some working code

projects/spejsiot.1479665169.txt.gz · Last modified: 2016/11/20 18:06 by informatic

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki