Mumbling about computers

Simplifying the IOT framework's API

2019-07-11 [ iot changelog ]

This post is more of a changelog combined with an explanation of my thought process for the changes.

c50b112 - Use the publish function only from common instead of directly from mqtt . Doing this removes the requirement from the client to verify if the mqtt object has been initialized.

d6df15c , 8a3d443 - Add logging on OTA updates & log using explicit indexes on OTA updates, this allows extra fields to be sent (and ignored).

f576c69 - Require subscription topics to be provided as a list, this simplifies client setup. Move OTA logic out of mqtt client creation

f2b03bb , 219e560 - Ignore and remove _id argument in loop – we can now obtain that from a file called HOSTNAME (or fall back to the device's MAC address).

5a59852 , fba9be8 - Make rebooting optional while doing OTA. This allows you to push changes across multiple files, that otherwise would be backwards incompatible.

1a93289 , a9a6911 - Restructure layout for easier multi-file update

$ tree firmware
├── curtains
│   ├── -> ../
│   ├── HOSTNAME
│   ├──
│   └── -> ../

With this setup, you can cd into a device's directory and run
mpfshell ttyUSB0 -c 'put; put; put; put HOSTNAME; repl'
to bootstrap a new device.
Subsequent updates can be done OTA.

fdf76d9 - Set hostname in AP config – this change makes it more clear which device is which on network inspection, there's no longer a list of ESP-8D... devices.