diff --git a/fusion_iot/CLAUDE.md b/fusion_iot/CLAUDE.md index 6cd35c5d..129d8372 100644 --- a/fusion_iot/CLAUDE.md +++ b/fusion_iot/CLAUDE.md @@ -11,11 +11,39 @@ and any other device Odoo's IoT framework supports. ``` fusion_iot/ -├── iot_base/ # Repackaged from Odoo S.A. — shared JS utils -├── iot/ # Repackaged from Odoo S.A. — IoT Box mgmt models + UI -└── fusion_plating_iot/ # Our wrapper — sensor→tank mapping + out-of-spec holds +├── iot_base/ # Repackaged from Odoo S.A. — shared JS utils +├── iot/ # Repackaged from Odoo S.A. — IoT Box mgmt models + UI +├── fusion_plating_iot/ # Our wrapper — sensor→tank mapping + out-of-spec holds +├── pi/ # Pi-side: lightweight systemd poller (no iot_drivers) +│ ├── fp_iot_poller.py +│ └── fp-iot-poller.service +└── scripts/ # One-shot setup + smoke tests ``` +## Live deployments + +### Pi #1 — pilot probe (DS18B20, Tank TK-EN-01) + +| Attribute | Value | +|-----------|-------| +| Hostname | `fp-iot-01` | +| LAN IP | `192.168.10.112` | +| **Tailscale IP** | **`100.108.41.97`** | +| SSH | `ssh fp-iot-01` (aliased in `~/.ssh/config`, key-based via Tailscale — no password, no sshpass) | +| User | `fp` | +| Probe serial | `28-000000b276e4` (DS18B20) | +| Poller service | `fp-iot-poller.service` — posts to entech every 30s | +| Poller config | `/etc/fp-iot/poller.conf` | +| Poller logs | `journalctl -u fp-iot-poller -f` | + +**Tailscale auth**: pre-authed to the `gurpreet6672@` tailnet. Survives reboots (`tailscaled` enabled). + +### entech LXC (Odoo server) + +- `iot_base` + `iot` + `fusion_plating_iot` all installed +- Ingest endpoint: `POST http://10.200.1.26:8069/fp/iot/ingest` +- Token lives in `ir.config_parameter['fusion_plating_iot.ingest_token']` — rotated via `scripts/fp_iot_setup_live_sensor.py` at setup time; rotate again in Settings → Technical → System Parameters as needed + ## Repackaging notes — `iot_base` + `iot` Both copied as-is from `/Users/gurpreet/Github/RePackaged-Odoo/_dependencies/`