docs(fusion_iot): Tailscale + SSH cheat sheet for the pilot Pi

fp-iot-01 is now on Tailscale at 100.108.41.97. SSH config on the
Mac aliases `ssh fp-iot-01` to the Tailscale IP with key-based auth
(no more sshpass + password flying around in shell history).

Also noted the Pi-side folder structure (pi/ + scripts/) and the
live deployment facts (probe serial, systemd unit, config path)
so future sessions can pick up from zero without re-investigating.

Verified end-to-end with real hardware:
- Physical probe heated to 79.94°C → auto-raised HOLD-0015
- 30 subsequent out-of-spec readings → no duplicate holds (as designed)
- hold_id correctly linked back to the triggering reading

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-20 15:47:18 -04:00
parent 19a49acba0
commit efb11df983

View File

@@ -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/`