Pulse/scripts
rcourtman 2a79d57f73 Add SMART temperature collection for physical disks (related to #652)
Extends temperature monitoring to collect SMART temps for SATA/SAS disks,
addressing issue #652 where physical disk temperatures showed as empty.

Architecture:
- Deploys pulse-sensor-wrapper.sh as SSH forced command on Proxmox nodes
- Wrapper collects both CPU/GPU temps (sensors -j) and disk temps (smartctl)
- Implements 30-min cache with background refresh to avoid performance impact
- Uses smartctl -n standby,after to skip sleeping drives without waking them
- Returns unified JSON: {sensors: {...}, smart: [...]}

Backend changes:
- Add DiskTemp model with device, serial, WWN, temperature, lastUpdated
- Extend Temperature model with SMART []DiskTemp field and HasSMART flag
- Add WWN field to PhysicalDisk for reliable disk matching
- Update parseSensorsJSON to handle both legacy and new wrapper formats
- Rewrite mergeNVMeTempsIntoDisks to match SMART temps by WWN → serial → devpath
- Preserve legacy NVMe temperature support for backward compatibility

Performance considerations:
- SMART data cached for 30 minutes per node to avoid excessive smartctl calls
- Background refresh prevents blocking temperature requests
- Respects drive standby state to avoid spinning up idle arrays
- Staggered disk scanning with 0.1s delay to avoid saturating SATA controllers

Install script:
- Deploys wrapper to /usr/local/bin/pulse-sensor-wrapper.sh
- Updates SSH forced command from "sensors -j" to wrapper script
- Backward compatible - falls back to direct sensors output if wrapper missing

Testing note:
- Requires real hardware with smartmontools installed for full functionality
- Empty smart array returned gracefully when smartctl unavailable
- Legacy sensor-only nodes continue working without changes
2025-11-07 11:46:57 +00:00
..
dev Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
lib feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
systemd feat: add automatic SSH key cleanup when nodes are removed 2025-10-18 07:03:05 +00:00
tests feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
.go-version Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
backup-claude-md.sh Fix critical version embedding issues for 4.26 release 2025-11-06 11:42:52 +00:00
build-release.sh Fix duplicate checksum in build-release.sh 2025-11-06 22:19:16 +00:00
bundle.manifest feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
bundle.sh feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
clean-mock-alerts.sh Add guest agent caching and update doc hints (refs #560) 2025-10-16 08:15:49 +00:00
cleanup.sh Refactor: Code cleanup and localStorage consolidation 2025-11-04 21:50:46 +00:00
codex-router.sh Update Pulse install flow and related components 2025-10-21 19:58:53 +00:00
create-sensor-user.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
docker-build.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
harden-sensor-proxy.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
hot-dev.sh chore: snapshot current changes 2025-11-02 22:47:55 +00:00
install-container-agent.sh Refactor: Code cleanup and localStorage consolidation 2025-11-04 21:50:46 +00:00
install-docker-agent-v2.sh Refactor: Code cleanup and localStorage consolidation 2025-11-04 21:50:46 +00:00
install-docker-agent.sh Improve Alpine Linux support and agent startup validation 2025-11-05 19:01:09 +00:00
install-docker.sh Refactor: Code cleanup and localStorage consolidation 2025-11-04 21:50:46 +00:00
install-go-toolchain.sh Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
install-host-agent.ps1 Improve host agent onboarding flow 2025-10-25 09:37:29 +00:00
install-host-agent.sh chore: snapshot current changes 2025-11-02 22:47:55 +00:00
install-sensor-proxy.sh Add SMART temperature collection for physical disks (related to #652) 2025-11-07 11:46:57 +00:00
package-helm-chart.sh release: prepare v4.25.0 2025-10-22 10:46:18 +00:00
pulse-auto-update.sh Refactor: Code cleanup and localStorage consolidation 2025-11-04 21:50:46 +00:00
pulse-proxy-rotate-keys.sh refactor: Rename pulse-temp-proxy to pulse-sensor-proxy 2025-10-13 13:17:05 +00:00
pulse-sensor-cleanup.sh Fix temperature monitoring for standalone Proxmox nodes and add multi-arch sensor proxy builds 2025-11-05 19:41:09 +00:00
pulse-sensor-proxy.service refactor: Rename pulse-temp-proxy to pulse-sensor-proxy 2025-10-13 13:17:05 +00:00
run-tests-mock.sh Adopt multi-token auth across docs, UI, and tooling 2025-10-14 15:47:49 +00:00
secure-sensor-files.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
setup-log-forwarding.sh security: complete Phase 1 sensor proxy hardening 2025-10-20 15:13:37 +00:00
sync-production-config.sh refactor: remove legacy DISABLE_AUTH flag and enhance authentication UX 2025-10-27 19:46:51 +00:00
test-vm-disk.sh Update Proxmox guest agent permissions docs and tooling (refs #548) 2025-10-14 10:21:52 +00:00
toggle-mock.sh refactor: remove legacy DISABLE_AUTH flag and enhance authentication UX 2025-10-27 19:46:51 +00:00
uninstall-host-agent.ps1 feat: add native Windows service support and expandable host details 2025-10-23 22:11:56 +00:00
uninstall-host-agent.sh feat: enhance macOS/Linux agent installation to match Windows quality 2025-10-23 22:23:23 +00:00
validate-release.sh Add comprehensive release validation to prevent missing artifacts 2025-11-06 16:33:49 +00:00