Controller - Cache

Cache layer to collect data while offline

Controller details

Type: Controller

Name: Cache

Status: DEVELOPMENT

GitHub: C016.ino

Maintainer: TD-er

Change log

Changed in version 2.0:

added 2019/04/05 Initial pre-alpha version of this plugin.

Description

This controller is a cache layer to collect data while not connected to a network.

The data will first be stored in RTC memory, which will survive a crash/reboot and even an OTA update.

If this RTC buffer is full, it will be flushed to whatever is set here as storage.

Data Format

Each time a plugin sends data to this controller, a sample set is stored.

A typical sample set contains:

  • UNIX timestamp
  • task index delivering the data
  • 4 float values

Storage

The controller can save the samples from RTC memory to several places on the flash:

  • Files on SPIFFS
  • Part reserved for OTA update (TODO)
  • Unused flash after the partitioned space (TODO)

Data Delivery

The controller can deliver the data to:

  • Upload bin files to some server (HTTP post?) (TODO)
  • Provide a sample to any connected controller (TODO)
  • Do nothing and let some extern host pull the data from the node. (TODO)
  • JavaScript to process the data inside the browser. (TODO)
  • Feed it to some plugin (e.g. a display to show a chart) (TODO)