Tapped the X180T's CAN bus via CANable 2.0 at the monitor panel's terminator port. The bus is NOT RV-C — it's Lippert's proprietary IDS-CAN (250k, 11-bit IDs, (page<<8)|node, 1 Hz broadcasts). Read side fully mapped from live captures: - device classes (page-2 type byte: 0x0A tank, 0x1E switched load, 0x21 motor) - node map for this rig (Catalina 263BHSCK): tanks 27/E2/7D/FE, lights 2A/F8, heater 95, pump 61, awning 75 (+ direction & live motor current) - battery voltage on 29-bit extended frames Write side: commands are DLC-0 ext frames 0006<node><op>, but auth-gated by a rolling challenge-response (page 42/43). Replay confirmed dead (spoofed cansend did not actuate). Not the BLE TEA cypher. response=f(challenge) is deterministic (no session state) so crackable offline later — seeded 42 pairs in sniff/2A-auth-pairs.txt. Includes raw captures (sniff/*.log, force-added past *.log ignore), a read-only esp32_can ESPHome skeleton, and the log-can.sh sniff helper. Full writeup in canbus/README.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8 lines
324 B
Plaintext
8 lines
324 B
Plaintext
# Copy to secrets.yaml (gitignored) and fill in. Mirrors the gazebo-fan-proxy
|
|
# secrets so the same campsite WiFi + an ESPHome API key are used.
|
|
wifi_ssid: "OmnissiahsReach"
|
|
wifi_password: "REDACTED"
|
|
fallback_ap_password: "REDACTED"
|
|
# 32-byte base64 ESPHome API key (generate: `openssl rand -base64 32`)
|
|
api_key: "REDACTED"
|