Cloud MQTT→Supabase ingestor for plant sensors.
Consumes the Homey MQTT Hub (Homie convention) topic tree and writes readings to Supabase.
Subscribes to MQTT_TOPIC_BASE (default homie/homey/#). Each device publishes bare values on
per-capability topics:
homie/homey/<device-slug>/measure-moisture -> e.g. 61.5
homie/homey/<device-slug>/measure-temperature -> e.g. 23.4
homie/homey/<device-slug>/measure-battery -> e.g. 100
homie/homey/<device-slug>/$name -> friendly name (captured for hw_name)
Homie $-metadata topics are ignored (except the device-level $name). Because values arrive on
separate topics, the worker buffers each device and, after a short quiet window
(ASSEMBLE_WINDOW_MS, default 2000ms), inserts one combined row into readings.
fertility, light_lux, rssi, probe_type are not provided by these sensors and are written as null.
MQTT_URL,MQTT_USERNAME,MQTT_PASSWORDMQTT_TOPIC_BASE(defaulthomie/homey/#)SUPABASE_URL,SUPABASE_SERVICE_ROLEDEFAULT_PLANT_ID(unknown devices auto-register here)ASSEMBLE_WINDOW_MS(optional, default 2000)