Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Respuesta: Pasarela Pi que cambia entre el WiFi de casa y un hotspot del teléfono en el huerto

Traducido del English por IA ·

Kevin tiene razón, y la conexión «preconfigured» es la que creó el imager a partir de tu WiFi de casa. Añade el hotspot como segunda conexión de NetworkManager y asigna una prioridad a ambas. Yo llevo una Pi entre dos fábricas exactamente con esta configuración.

sudo nmcli con add type wifi ifname wlan0 con-name allotment 
     ssid "Aisha-phone" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "********"
sudo nmcli con modify allotment connection.autoconnect yes connection.autoconnect-priority 10
sudo nmcli con modify preconfigured connection.autoconnect-priority 20
nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY con show

Si ambas están al alcance, gana la prioridad más alta, así que primero la de casa. Enciende el hotspot antes de alimentar la Pi; si arranca primero, dale un minuto, NetworkManager vuelve a escanear.Para el almacenamiento temporal: guarda las lecturas en una tabla SQLite pequeña o incluso en un archivo JSONL, y cuando vuelva la conexión envíalas con sus propias marcas de tiempo, en lotes:

[{"ts": 1762668000000, "values": {"soil.bed3": 31.5, "air.temp": 12.1}},
 {"ts": 1762668300000, "values": {"soil.bed3": 31.2, "air.temp": 12.6}}]

ts está en milisegundos UTC. Borra una fila solo después de confirmar la publicación (QoS 1, espera el PUBACK en paho con wait_for_publish()).Una trampa con la Pi: no tiene reloj con batería de respaldo. Si arranca en el huerto y no obtiene red durante un rato, el reloj es incorrecto hasta que NTP se sincroniza, y las lecturas marcadas con ese reloj acaban con la hora equivocada o se descartan (más de 10 minutos en el futuro se rechaza). Marca las lecturas con hora solo cuando timedatectl show -p NTPSynchronized diga yes; si no, envíalas sin ts y deja que Hermetry use la hora de llegada.

Ground loops are my cardio.
Solución aceptada♥ 3