The legacy cleanup section in TEMPERATURE_MONITORING.md only covered 1 of the 5 systemd units and referenced an outdated binary path. Users following these docs still had the selfheal timer running, generating recurring TASK ERROR entries in the Proxmox task log. Updated with the complete set of units, correct file paths, and a note that upgrading the Pulse container does not remove the sensor proxy from the host. Added a sensor proxy removal section to UPGRADE_v5.md so users see the warning during upgrade. Related to #817
4.0 KiB
Temperature Monitoring
Pulse can collect host temperatures in two supported ways:
- Pulse agent on Proxmox hosts (recommended)
- SSH-based collection from the Pulse server (fallback or for non-agent hosts)
If you are upgrading from older releases that used pulse-sensor-proxy, see the legacy cleanup section below. The sensor proxy is no longer supported in Pulse.
Recommended: Pulse Agent (Proxmox)
The unified agent runs on each Proxmox host and reports temperatures locally with no SSH keys needed.
curl -fsSL http://<pulse-ip>:7655/install.sh | \
bash -s -- --url http://<pulse-ip>:7655 --token <api-token> --enable-proxmox
Notes:
- Install
lm-sensorson each host (apt install lm-sensors && sensors-detect --auto). - Temperatures appear automatically once the agent reports.
SSH-Based Collection (Fallback)
Pulse can also collect temperatures by SSHing into each host and running sensors -j, with a fallback to /sys/class/thermal/thermal_zone0/temp when available (for example, on Raspberry Pi).
Requirements
- SSH connectivity from the Pulse server to each host
lm-sensorsinstalled andsensors -jreturning JSON on the host- A restricted SSH key entry that only allows
sensors -j
Setup
- Generate the node setup command from the UI: Settings -> Proxmox -> Add Node
- Run the command on each Proxmox host. The setup script can:
- Create the required API user and permissions
- Add a restricted SSH key entry for temperature collection
- Install
lm-sensors(optional)
The SSH entry added to authorized_keys is restricted to sensors -j, for example:
command="sensors -j",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <public-key> # pulse-sensors
If you use a non-standard SSH port, set SSH_PORT (system-wide) or configure it in Settings -> System.
Containerized Pulse
SSH-based collection from inside a container is not recommended for production. Prefer the agent method or run Pulse on the host. For dev/test, you can allow SSH from the container with:
PULSE_DEV_ALLOW_CONTAINER_SSH=true
Verification
From the Pulse server, verify that SSH and sensors output work:
ssh -i /path/to/key root@node "sensors -j"
For platforms that expose a thermal zone file:
ssh -i /path/to/key root@node "cat /sys/class/thermal/thermal_zone0/temp"
Troubleshooting
- If
sensors -jreturns empty output, runsensors-detect --autoand retry. - If temperatures show as unavailable, confirm the host actually exposes sensor data.
- Ensure the SSH key entry is present and restricted to
sensors -j.
Legacy Cleanup (If Upgrading)
If you still have the old sensor proxy installed from prior releases, remove it from each Proxmox host (not the Pulse container):
# Stop and disable all sensor-proxy systemd units
sudo systemctl disable --now pulse-sensor-proxy pulse-sensor-proxy-selfheal.timer pulse-sensor-proxy-selfheal.service pulse-sensor-cleanup.path pulse-sensor-cleanup.service 2>/dev/null
# Remove systemd unit files
sudo rm -f /etc/systemd/system/pulse-sensor-proxy.service
sudo rm -f /etc/systemd/system/pulse-sensor-proxy-selfheal.timer
sudo rm -f /etc/systemd/system/pulse-sensor-proxy-selfheal.service
sudo rm -f /etc/systemd/system/pulse-sensor-cleanup.service
sudo rm -f /etc/systemd/system/pulse-sensor-cleanup.path
sudo systemctl daemon-reload
# Remove sensor-proxy files
sudo rm -rf /opt/pulse/sensor-proxy
sudo rm -rf /etc/pulse-sensor-proxy
sudo rm -rf /var/lib/pulse-sensor-proxy
sudo rm -rf /var/log/pulse/sensor-proxy
sudo rm -rf /run/pulse-sensor-proxy
# Optional: remove sensor-proxy SSH keys from authorized_keys
sudo sed -i '/# pulse-managed-key$/d;/# pulse-proxy-key$/d' /root/.ssh/authorized_keys
Reinstalling or upgrading the Pulse container does not remove the sensor proxy from the host — they are separate installations. If you skip this cleanup, the selfheal timer will keep running and may generate recurring TASK ERROR entries in the Proxmox task log.