What's Changed
New Features
- GeoJSON/KML/KMZ overlay layer support — Upload geospatial files as map overlays with per-layer styling, visibility toggles, and simplestyle-spec support. KML/KMZ files are automatically converted to GeoJSON on upload. Files placed in
/data/geojson/are auto-discovered. (#2488, closes #2487)
Bug Fixes
- Duplicate cron jobs after reconnects — Timer triggers (auto-welcome, scheduled scripts) fired multiple times after device reconnects due to callback accumulation in the configComplete handler (#2489)
- Audit log FK constraint on channel migration — Channel migration at startup used userId 0 which doesn't exist, causing SQLITE_CONSTRAINT_FOREIGNKEY error (#2486, reported in #2425)
New Dependencies
@tmcw/togeojson— KML to GeoJSON conversion@xmldom/xmldom— XML parsing for KMLjszip— KMZ (ZIP archive) extraction
Full Changelog: v3.10.4...v3.11.0