ruuvi.gateway_esp.c
ruuvi.gateway_esp.c copied to clipboard
Edge computing features
Save bandwidth:
"don't transmit to server if any of the sensor values haven't changed compared to the last transmitted values"
or make reaction time faster with
"if unexpected sensor value changes (for example appended movement counter or a big temperature change), transmit instantly and don't wait until the next scheduled transmit window"
This requires parsing sensor data from transmissions and probably pretty big UI changes. Marking as 2.0 feature and wontfix for now.
If we'll implement this at some point, it's important to still refresh data every now ant then so that it wouldn't look like that a sensor just died if no new data in a long time.
Idea: algorithm that estimates final value
We know RuuviTag mass and response time, value changing with certain velocity, gateway would understand this and send second value that would be estimated end value, which could trigger alert from cloud even though real value was not reached yet
Idea: algorithm that estimates final value
We know RuuviTag mass and response time, value changing with certain velocity, gateway would understand this and send second value that would be estimated end value, which could trigger alert from cloud even though real value was not reached yet
I would rather implement this on RuuviTag since Gateway does not know what exactly the transmitting device is.
Kalman filtering would be my first idea, but that's not so simple either. Kalman filtering requires some level of understanding of environment to be effective, and we cannot know beforehand if tag is e.g. outdoors, in a sauna, in a freezer, etc.
The filtering would essentially improve on one use-case and make other worse. e.g. if we add detection for tag put in a freezer, the model estimates that environment can change from +20 to -20 in a step. This is not a valid assumption for a tag outside in the balcony, and balcony tag would get really noisy measurements.