{"ok":true,"location":"Lab Location 1","wifiSignal":{"samples":100,"current":-59,"min":-59,"max":-59,"avg":-59,"stddev":0,"history":[{"rssi":-59,"ts":"2026-08-19T06:37:42.750Z"},{"rssi":-59,"ts":"2026-08-19T06:38:42.696Z"},{"rssi":-59,"ts":"2026-08-19T06:39:42.703Z"},{"rssi":-59,"ts":"2026-08-19T06:40:42.688Z"},{"rssi":-59,"ts":"2026-08-19T06:41:42.690Z"},{"rssi":-59,"ts":"2026-08-19T06:42:42.719Z"},{"rssi":-59,"ts":"2026-08-19T06:43:42.693Z"},{"rssi":-59,"ts":"2026-08-19T06:44:42.750Z"},{"rssi":-59,"ts":"2026-08-19T06:45:42.690Z"},{"rssi":-59,"ts":"2026-08-19T06:46:42.692Z"},{"rssi":-59,"ts":"2026-08-19T06:47:42.695Z"},{"rssi":-59,"ts":"2026-08-19T06:48:42.744Z"},{"rssi":-59,"ts":"2026-08-19T06:49:42.703Z"},{"rssi":-59,"ts":"2026-08-19T06:50:42.701Z"},{"rssi":-59,"ts":"2026-08-19T06:51:42.704Z"},{"rssi":-59,"ts":"2026-08-19T06:53:04.188Z"},{"rssi":-59,"ts":"2026-08-19T06:53:42.694Z"},{"rssi":-59,"ts":"2026-08-19T06:54:42.697Z"},{"rssi":-59,"ts":"2026-08-19T06:55:42.697Z"},{"rssi":-59,"ts":"2026-08-19T06:56:42.699Z"}]},"blePresence":{"samples":100,"current":25,"min":25,"max":25,"avg":25,"history":[{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5852850,"reason":"BLE data is 5852850s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T05:41:44.991Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5853836,"reason":"BLE data is 5853836s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T05:58:10.964Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5858043,"reason":"BLE data is 5858043s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T07:08:18.190Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5860762,"reason":"BLE data is 5860762s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T07:53:36.865Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5860876,"reason":"BLE data is 5860876s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T07:55:30.812Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5867783,"reason":"BLE data is 5867783s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T09:50:37.848Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5867829,"reason":"BLE data is 5867829s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T09:51:24.205Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5868027,"reason":"BLE data is 5868027s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T09:54:41.807Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5868524,"reason":"BLE data is 5868524s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T10:02:59.225Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5871967,"reason":"BLE data is 5871967s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T11:00:22.962Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5873150,"reason":"BLE data is 5873150s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T11:20:04.813Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5873300,"reason":"BLE data is 5873300s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T11:22:34.709Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5874623,"reason":"BLE data is 5874623s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T11:44:37.553Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5881896,"reason":"BLE data is 5881896s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T13:45:51.554Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5884334,"reason":"BLE data is 5884334s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T14:26:28.781Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5884654,"reason":"BLE data is 5884654s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T14:31:49.056Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5889281,"reason":"BLE data is 5889281s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T15:48:55.634Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-58,"temp":45.1,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":5892617,"reason":"BLE data is 5892617s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-17T16:44:32.314Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-59,"temp":44.5,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":6012047,"reason":"BLE data is 6012047s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-19T01:55:01.657Z"},{"bleCount":25,"strongBle":6,"wifiRssi":-59,"temp":44.5,"power":0,"estimate":{"level":"STALE","confidence":0,"age_s":6030176,"reason":"BLE data is 6030176s old (freshness threshold 300s). No live presence estimate possible - redeploy/restart the BLE push script on the Shelly for fresh data.","peopleEstimate":null},"ts":"2026-08-19T06:57:11.452Z"}]},"analysis":{"wifiStability":"stable","hint":"Stable WiFi RSSI = no movement near plug. Varying = people/objects moving. More BLE devices = more people nearby.","exercises":["Plot WiFi RSSI over time - look for patterns (morning activity, evening quiet)","Correlate BLE count with time of day - when are most devices nearby?","Calculate WiFi RSSI standard deviation - high stddev = active environment","Build an anomaly detector: alert when BLE count deviates >2x from average","Create a daily presence profile: which hours have most/least activity?"]}}