Releases: circuitdojo/solar-monitor
Releases · circuitdojo/solar-monitor
Release list
v0.4.3
Full Changelog: v0.4.2...v0.4.3
Full Changelog: v0.4.2...v0.4.3
v0.4.2
Changed
- Device ids are server-minted UUIDs. The Add Device form no longer asks for
an ID —POST /api/v1/devicesgenerates one and returns it, and
PUT /api/v1/devices/{id}is update-only (404 for unknown ids) instead of
upserting, so a create can no longer silently overwrite an existing device.
AddDeviceRequestDtoloses itsidfield (API/TypeScript wire change).
Existing devices keep their ids; export/import still preserves ids.
Full Changelog: v0.4.1...v0.4.2
v0.4.1
Fixed
- Transient Modbus timeouts no longer drop poll samples. The 6000XP
occasionally skips a request even on a healthy bus; the port actor now
enforces a 50 ms quiet gap between transactions, retries each request once
on timeout, and reopens the port between attempts so a late-arriving
response can't be misattributed to the next request (RTU responses carry
no address field). AWARNpoll failure now means both attempts timed
out; single timeouts log atdebug.
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Fixed
- Serial port recovery after a USB replug. The Modbus port actor previously
opened its serial fd once and held it forever, so an unplugged cable left
every poll failing withInput/output error (os error 5)until the service
was restarted. The actor now opens the port lazily and drops it on
transport errors, reopening on the next poll; Modbus exceptions and
timeouts do not churn the port. - Requests arriving while the port is unavailable get an error reply instead
of being silently dropped.
Changed
- Serial ports are identified by a stable spec:
usb-serial:<SN>when the
adapter reports a USB serial number, the raw device path otherwise. Port
enumeration returns specs, device configs store them, and the actor
re-resolves the spec to the current device node on every reopen — so
recovery works even when the kernel renumbers the port (ttyUSB0→
ttyUSB1). Existing configs holding a raw path keep working but do not
survive renumbering; re-select the port in the device editor to adopt the
spec. apiandbinno longer depend onserialportdirectly; enumeration
goes through thetokio-serialre-exports in the protocols crate.
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Added
- Hourly downsampling with configurable retention (
--retention-days,
default 30): full-resolution rows fold into avg/min/max hourly buckets,
and data queries transparently merge both tables.
Changed
- Workspace migrated to Rust edition 2024.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Added
- App version in the web UI footer.
- Release workflow: pushing a version tag builds and publishes binaries.
Full Changelog: https://github.com/circuitdojo/solar-monitor/commits/v0.2.0