Initial project: XIAO ESP32S3 + SX1262 LoRa sensor link hytte–hjem

- cabin_node: subscribes to local MQTT (ESPHome sensors), sends
  temperature, battery voltage/SOC and switch states over LoRa SF12
- cabin_gw: receives LoRa packets, publishes JSON to home MQTT broker
- Bidirectional: gateway forwards ON/OFF commands from home HA to node
- cabin_node always in RX mode (12V powered) — commands arrive instantly
- ESPHome config for ESP32 on teknisk rom: Victron MPPT BLE + JBD BMS
  BLE + DS18B20 temperatures + GPIO switches for varme/VVB

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 23:11:35 +01:00
commit a544594769
11 changed files with 756 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
# hytte_link
LoRa-basert sensorlink mellom hytte og hjemme. Sender temperatur (inne/ute),
batterispenning og SOC fra 12V-anlegg på hytta til MQTT-broker hjemme (alu).
## Arkitektur
```
Hytte:
DS18B20 (inne/ute) ──┐
Victron MPPT (BLE) ──┤
JBD BMS (BLE) ────── ESP32 (ESPHome, cabin_tech) ──WiFi──► MQTT (lokal HA)
XIAO ESP32S3 + Wio-SX1262 ◄──MQTT────┘
(cabin_node)
│ LoRa SF12 868 MHz
▼ 1520 km
Hjemme: XIAO ESP32S3 + Wio-SX1262
(cabin_gw)
│ MQTT publish
mosquitto (alu, 192.168.86.31)
Home Assistant hjemme
```
## Bygging (PlatformIO)
```bash
pio run -e cabin_node # hytte-node
pio run -e cabin_gw # hjemme-gateway
pio run -e cabin_node -t upload
pio run -e cabin_gw -t upload
```
## ESPHome (cabin_tech)
```bash
esphome run esphome/cabin_tech.yaml
```
## Secrets
Kopier `include/secrets.example.h``include/secrets.h` og fyll inn.
Kopier `esphome/secrets.yaml.example``esphome/secrets.yaml` og fyll inn.
## LoRa-parametere
| Parameter | Verdi |
|-------------|--------|
| Frekvens | 868 MHz |
| SF | 12 |
| BW | 125 kHz |
| CR | 4/5 |
| Sync word | 0xAB |
| Airtime | ~1.3 s |
## Pakkeformat (CabinPacket, 12 bytes)
| Felt | Type | Enhet |
|--------------|---------|-----------|
| magic | uint8 | 0xCA |
| seq | uint8 | rullende |
| temp_in_x10 | int16 | °C × 10 |
| temp_out_x10 | int16 | °C × 10 |
| batt_mv | uint16 | mV |
| batt_pct | uint8 | 0100 |
| sig | uint32 | HMAC-SHA256 (trunkert) |
## Pinner (Wio-SX1262 på XIAO ESP32S3)
Verifiser mot Seeed-skjema før flashing:
- NSS: GPIO44 (D7)
- RST: GPIO43 (D6)
- DIO1: GPIO2 (D1)
- BUSY: GPIO1 (D0)
## MQTT-topics
| Topic | Retning |
|------------------------|----------------------|
| hytte/sensor/temp_inne | ESPHome → cabin_node |
| hytte/sensor/temp_ute | ESPHome → cabin_node |
| hytte/sensor/batt_mv | ESPHome → cabin_node |
| hytte/sensor/batt_pct | ESPHome → cabin_node |
| hytte/lora/status | cabin_gw → alu |