Skip to content

Troubleshooting


Hub offline / not connecting to cloud

Symptom: Dashboard shows hub as offline. Cloud Link tab shows "not linked to cloud".

Check 1 — Is the Pi powered and running?

Try opening http://chillcheck.local from a device on the same network. If the page loads, the Pi is running but may have lost its credentials.

If the page does not load:

  • Check the Pi has power (green LED should be on)
  • Check ethernet cable is firmly connected
  • Wait 90 seconds after powering on — boot takes time

Check 2 — Check service status

SSH into the Pi and run:

sudo systemctl status chillcheck-subscriber

If it shows failed:

sudo journalctl -u chillcheck-subscriber -n 50

Look for error messages. Common causes:

  • SUPABASE_URL not set — the Pi has lost its credentials; re-link via the hub UI
  • Connection refused — network issue; check internet connectivity

Check 3 — Check internet connectivity

curl -s https://app.chillcheck.online/api/health

Should return {"status":"ok"}. If it hangs or returns an error, the Pi cannot reach the internet.

ping 8.8.8.8

If this works but the curl doesn't, it's a DNS issue:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Check 4 — Re-link the hub

If the Pi has network access but is still showing offline, the credentials may be corrupted. Generate a new pairing code from Settings → Devices and re-link via the Cloud Link tab.


Sensor not appearing after pairing

Symptom: You put the sensor into pairing mode but it never appears in the hub UI.

Check 1 — Is the sensor close enough?

During initial pairing, bring the sensor within 1–2 metres of the Pi. ZigBee range is reduced when the sensor is not yet part of the mesh network.

Check 2 — Is the sensor in pairing mode?

The LED should flash rapidly (triple-blink pattern) when in pairing mode. If the LED is not flashing, press and hold the reset button for the full 5 seconds.

Check 3 — Is the pairing window open?

The hub only accepts new sensors for 120 seconds after you click + Pair sensor. If the window has expired, start the pairing process again.

Check 4 — Check Zigbee2MQTT logs

sudo journalctl -u zigbee2mqtt -n 50 -f

You should see activity when a sensor tries to join. If you see Not allowing new devices to join, the pairing window is not open — try starting pairing from the hub UI again.

Check 5 — Battery

The sensor needs a charged CR2450 battery. If the LED does not flash at all, replace the battery.


Not receiving alerts

Symptom: A cabinet is clearly too warm/cold but no alert email or SMS arrived.

Check 1 — Is the sensor assigned?

Unassigned sensors do not trigger alerts. Check Settings → Devices in the cloud dashboard and confirm the sensor is assigned to a cabinet.

Check 2 — Check your contacts

Go to Settings → Contacts. Confirm at least one contact has a valid email address.

Check 3 — Check your spam folder

Alert emails come from alerts@chillcheck.online. Add this address to your safe senders list.

Check 4 — Are thresholds set correctly?

Go to Settings → Alert Rules. Check the target temperature and offsets for the cabinet in question. If the threshold is set very high (e.g. critical at +20°C), alerts won't fire until temperatures are dangerously high.

Check 5 — Check active alerts in the dashboard

Go to the Alerts page. If an alert is shown as active but no notification was sent, check the subscriber logs:

sudo journalctl -u chillcheck-subscriber -n 100 | grep alert

Hub shows "Update available" but update fails

Symptom: Clicking Install starts the update but it rolls back or the page never reloads.

Check services after update:

sudo journalctl -u chillcheck-subscriber -n 30
sudo journalctl -u chillcheck-local-ui -n 30

Look for errors in the logs. Most update failures are caused by network issues during the download — try again when connectivity is stable.

Check update log:

cat /var/log/chillcheck/update.log

The last few lines will show whether the update succeeded, rolled back, or failed at a specific step.


4G failover setup

If your site's broadband is unreliable, a 4G USB dongle provides a backup uplink. The Pi will automatically route through it when broadband drops and switch back when it recovers.

Hardware required:

  • A HiLink-mode 4G USB dongle — see hardware guide for tested models
  • A data SIM (1 GB/month is ample — ChillCheck uses less than 200 MB/month at typical sensor density)

Automatic setup (hubs set up with the latest setup.sh):

The setup script installs a NetworkManager dispatcher that detects any USB-ethernet adapter and automatically assigns it a high route metric (700), making it a true failback. No manual steps are needed — just plug in the dongle and insert the SIM.

To verify the dongle is detected and the failover metric is in place:

# Check the dongle interface is visible
ip link show

# Confirm route metrics — eth0 should be ~100, the dongle ~700
ip route show default

You should see two default routes: one via eth0 with a lower metric and one via the dongle interface (usb0, eth1, or similar) with metric 700. NetworkManager will automatically remove the dongle route if the dongle is unplugged and restore it when it's plugged back in.

Verify failover is working:

# Unplug the ethernet cable, wait 5 seconds, then:
curl -s https://app.chillcheck.online/api/health
# Should return {"status":"ok"} via 4G

Manual setup (older hubs, or if auto-detection doesn't apply):

If your hub was set up before automatic failover was added, or if your dongle uses a non-standard interface name:

  1. Identify the dongle interface:

    ip link show
    
    Look for an interface named usb0, eth1, or enx... that appeared when you plugged in the dongle.

  2. Configure it as a secondary route (replace usb0 with your actual interface name):

    # Find the connection name NetworkManager assigned
    nmcli connection show
    
    # Set a high metric on the connection (replace "Wired connection 2" with yours)
    sudo nmcli connection modify "Wired connection 2" ipv4.route-metric 700
    sudo nmcli connection up "Wired connection 2"
    

  3. Verify:

    ip route show default
    # eth0 route should have a lower metric; dongle route metric 700
    

If the dongle isn't detected at all:

Some cheaper dongles ship in "storage mode" (they present as a USB mass storage device first). Run usb-modeswitch to switch them to modem mode:

sudo apt install -y usb-modeswitch
# Unplug and re-plug the dongle; usb-modeswitch runs automatically via udev
ip link show   # dongle interface should now appear

The Huawei E3372h in HiLink mode does not need this — it presents directly as an ethernet adapter.


SD card corruption

Symptom: Pi fails to boot after a power cut.

This is rare but can happen if the Pi loses power while writing to the SD card. Prevention:

  • Use a UPS to ensure clean shutdowns during power cuts
  • Use a high-endurance SD card (Samsung Endurance or SanDisk Endurance)

Recovery:

If the Pi will not boot, re-flash the SD card (Flash the SD card) and run the setup script again. Your data (readings, alerts) is safe in the cloud — only the Pi configuration is lost.

After re-flashing, re-link the hub with a new pairing code from Settings → Devices.


Still stuck?

Contact support at hello@chillcheck.online with:

  • Your organisation name
  • The hub device ID (shown in Settings → Devices in the dashboard)
  • The output of cat /var/log/chillcheck/update.log and sudo journalctl -u chillcheck-subscriber -n 100