Water Level Monitor (Real-time)
All values delayed 5 minutes. For real-time data, contact enterprise sales.
Last 24 Hours (5-minute intervals)
Aggregated view with mean, min, max
All Historical Data (1-hour intervals)
Complete history with hourly aggregates
Consumption Rate Trends
Water consumption rate (slope) for each detected segment over time
Consumption Segments & Refill Events
Detected consumption periods with linear fits, showing refill events (minima) and needs-refill points (maxima)
About
Water level data reflects the distance from water surface to a VL6180X time-of-flight laser interferometer distance ranging sensor situated at the rim of my Christmas tree stand. These readings are collected by an ESP8266 micocontroller and posted via wifi to an MQTT server on a Raspberry Pi on the local network. Separately, Yolink sensors collect water and air environmental readings and post them to a separate local MQTT server. A dockerized process on a Terramaster NAS observes the MQTT messages and writes them to a duckdb file. A separate docker process periodically queries the duckdb file, aggregates data into varying levels of precision, and analyzes changes in the rate of water consumption via a process that involves outlier removal, data smoothing, detection of local minima/maxima, and linear regression. The results are assembled into a JSON file, gzipped, and uploaded to S3 with appropriate ACLs using IAM best practices.
Raw data is expressed in millimeters; all volumetric measurements should be considered approximate.
Watering performed using Rocky Mountain Goods Christmas Tree Food.
Last updated: --