Core and biometrics troubleshooting
Core will not start
On the Pod, read the status and recent logs:
sp-status
journalctl -u sleepypod.service -n 200 --no-pagerFor installed key-only SSH access, the documented port is 8822:
ssh -p 8822 root@POD_IPDatabase or native-module errors can come from running the wrong Node.js binary. The service uses /usr/local/bin/node; use that binary for manual scripts when comparing behavior. Preserve databases before attempting a repair or reinstall.
Biometrics are empty
- Check the selected side and date. For live measurements, confirm the bed is occupied.
- Open System → Pipeline and identify the selected source. Use Health for module state and Sensors for live input.
- On NATS firmware, confirm fresh frames and output rows; an absent RAW archive is not an ingestion failure. Calibrator may need time to collect its initial live sample window.
- On RAW firmware, check the hot directory and firmware journal:
ls -la /persistent/biometrics/*.RAW
journalctl -u frank -n 100 --no-pager- For RAW readers, confirm
RAW_DATA_DIRpoints to the firmware’s hot directory. For either transport, check module logs and increasing biometrics rows. A healthy web UI does not prove processing is running.
See sensor pipeline and calibration for record types, source selection, and transport-specific limitations.
RAW archives are empty
This section applies to RAW firmware. NATS-only firmware need not create these files.
The firmware deletes rotated frames quickly. A linker timer pins frames until the archiver can compress them. Check both stages:
journalctl -u sleepypod-biometrics-linker -n 50 --no-pager
journalctl -u sleepypod-biometrics-archiver -n 50 --no-pager
df -P /persistentThe linker may be quiet when there is no new frame. Repeated failures, dropped frames, or a growing pending queue warrant checking storage and service health.
Powered, but not heating or cooling
Compare target, bed, and water-temperature trends. A stalled pump can leave power reported as on while temperature stays flat. Check thermal diagnostics, water level, and firmware logs. Repeatedly raising the target will not resolve a transport or pump fault.
Schedules do not run
Check the device clock, timezone, selected days, and side. Core waits for a valid clock after startup. Look for scheduler errors in the Core journal.
The upstream runbook below is the authoritative reference for device-specific paths and deeper diagnostics.
Source reference: NATS diagnostics · System navigation · Debugging runbook · Deployment and service details