0.4.2 - Early implementation of SLMs. WIP.

This commit is contained in:
serversdwn
2026-01-06 07:50:58 +00:00
parent 96cb27ef83
commit 4d74eda65f
36 changed files with 4211 additions and 12 deletions

View File

@@ -5,12 +5,59 @@ All notable changes to Seismo Fleet Manager will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.4.1] - 2026 1-5
### Added
- **SLM integration**: Sound Level meters are now managable in SFM
## [0.4.2] - 2026-01-05
## Fixed ##
- Fixed an issue where unit status wat loading from a saved cache and not based on when it was actually heard from last. Unit status is now accurate.
### Added
- **SLM Configuration Interface**: Sound Level Meters can now be configured directly from the SLM dashboard
- Configuration modal with comprehensive SLM parameter editing
- TCP port configuration for SLM control connections (default: 2255)
- FTP port configuration for SLM data retrieval (default: 21)
- Modem assignment for network access or direct IP connection support
- Test Modem button with ping-based connectivity verification (shows IP and response time)
- Test SLM Connection button for end-to-end connectivity validation
- Dynamic form fields that hide/show based on modem selection
- **SLM Dashboard Endpoints**: New API routes for SLM management
- `GET /api/slm-dashboard/config/{unit_id}` - Load SLM configuration form
- `POST /api/slm-dashboard/config/{unit_id}` - Save SLM configuration
- `GET /api/slm-dashboard/test-modem/{modem_id}` - Ping modem for connectivity test
- **Database Schema Updates**: Added `slm_ftp_port` column to roster table
- Migration script: `scripts/add_slm_ftp_port.py`
- Supports both TCP (control) and FTP (data) port configuration per SLM unit
- **Docker Environment Enhancements**:
- Added `iputils-ping` and `curl` packages to Docker image for network diagnostics
- Health check endpoint support via curl
### Fixed
- **Form Validation**: Fixed 400 Bad Request error when adding modem units
- Form fields for device-specific parameters now properly disabled when hidden
- Empty string values for integer fields no longer cause validation failures
- JavaScript now disables hidden form sections to prevent unwanted data submission
- **Unit Status Accuracy**: Fixed issue where unit status was loading from a saved cache instead of actual last-heard time
- Unit status now accurately reflects real-time connectivity
- Status determination based on actual `slm_last_check` timestamp
### Changed
- **Roster Form Behavior**: Device-specific form fields are now disabled (not just hidden) when not applicable
- Prevents SLM fields from submitting when adding modems
- Prevents modem fields from submitting when adding SLMs
- Cleaner form submissions with only relevant data
- **Port Field Handling**: Backend now accepts port fields as strings and converts to integers
- Handles empty string values gracefully
- Proper type conversion with None fallback for empty values
### Technical Details
- Added `setFieldsDisabled()` helper function for managing form field state
- Updated `toggleDeviceFields()` and `toggleEditDeviceFields()` to disable/enable fields
- Backend type conversion: `slm_tcp_port` and `slm_ftp_port` accept strings, convert to int with empty string handling
- Modem ping uses subprocess with 1 packet, 2-second timeout, returns response time in milliseconds
- Configuration form uses 3-column grid layout for TCP Port, FTP Port, and Direct IP fields
## [0.4.1] - 2026-01-05
### Added
- **SLM Integration**: Sound Level Meters are now manageable in SFM
### Fixed
- Fixed an issue where unit status was loading from a saved cache and not based on when it was actually heard from last. Unit status is now accurate.
## [0.4.0] - 2025-12-16
@@ -301,6 +348,8 @@ No database migration required for v0.4.0. All new features use existing databas
- Photo management per unit
- Automated status categorization (OK/Pending/Missing)
[0.4.2]: https://github.com/serversdwn/seismo-fleet-manager/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/serversdwn/seismo-fleet-manager/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/serversdwn/seismo-fleet-manager/compare/v0.3.3...v0.4.0
[0.3.3]: https://github.com/serversdwn/seismo-fleet-manager/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/serversdwn/seismo-fleet-manager/compare/v0.3.1...v0.3.2