Commit Graph

4 Commits

Author SHA1 Message Date
tarcourt dd8e7602f5 fix: v2 Light multiplier x3 was 2014 (PDF OCR error) should be 512 2026-07-03 18:22:39 +02:00
tarcourt 035d4fed26 feat: v2 event_count for Light/Door/Move/Reed; unified naming 2026-07-03 18:17:48 +02:00
tarcourt 1549d4a73e feat: Sens'it v2 decoder + auto-detection v2/v3
Sens'it v2 has a totally different payload layout than Discovery v3:
- Bit order LSB→MSB (was MSB→LSB in v3)
- Mode in bits 0-2 (was bits 7-3 in v3)
- Battery split across bytes 0 & 1 (was 5 contiguous bits in v3)
- Temperature always sent (in T° MSB byte 1) even outside temp mode

Auto-detection uses byte 0 reserved bits: 0b110 = v3, otherwise = v2.
Frontend updated to render new fields: move_events, reed_events, fw_major/minor.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-03 18:02:44 +02:00
tarcourt a77776d6d8 feat: web dashboard for live device data
Small companion service that receives SNEK callbacks, decodes Sens'it
Discovery payloads for all 6 modes (Standby, Temperature, Light, Door,
Vibration, Magnet), stores in SQLite, and serves a responsive dashboard.

Backend (Python Flask):
- POST /webhook: receive SNEK callback
- GET /api/devices, /api/messages, /api/decode
- GET /events: Server-Sent Events for live push
- SQLite persistence at /data/messages.db

Frontend:
- Tailwind CSS via CDN, Chart.js for temp/humidity graph
- Live updates via SSE
- Device cards with icons per mode
- Message log with human-readable summaries

Deploy:
- Separate deployment (snek-dashboard) with own PVC
- LoadBalancer on 192.168.1.213:80
- SNEK callback URL: http://snek-dashboard.snek.svc.cluster.local/webhook

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-03 17:43:11 +02:00