Config Builder – Stazione Meteo

Nessun preset applicato. I valori attuali sono quelli salvati lato server.

Cadenzari

Quiet hours (no upload)

Abilita quiet hours ?
Blocca anche OTA in quiet ?
Hard-off modem in quiet ?

Limiti & code

OTA scheduled at time (alternativa all'intervallo): se attivo, il check OTA parte solo all'ora locale specificata, una volta al giorno.

Flags

BME abilitato ?
BME anche su wake da tip ?
Gas / qualità aria (BME680) ?
Abilita check OTA ?
Forza upload al prossimo wake ?

Comandi remoti one-shot

Spunta il comando e salva — la conf_version si bumpa in automatico. Il device esegue il comando al prossimo wake. Dal FW 2.0.27 i flag rimasti attivi per errore scadono localmente dopo alcune ore, ma conviene comunque disattivarli nel save successivo.

Reset counter diagnostici ?
Force OTA check immediato ?
Dump log su server ?
Dump code dati locali ?
LED onboard accesi ?

Logging persistente

Protezione batteria

Sotto vbat_low_mv: skip OTA + sleep esteso, ma i sensori restano attivi. Sotto vbat_critical_mv: critical solo dopo conferme consecutive, i sensori continuano a salvare in coda locale e batch/HB restano bloccati fino ad alba + offset. L'alba viene calcolata da coordinate configurate o GPS home; se mancano usa l'ora fallback.

SMS (alert critici)

Canale di emergenza indipendente dal backend: usa solo la registrazione GSM (CREG), quindi funziona anche quando il dato/HTTPS è giù. Invia SMS al numero indicato in 4 scenari: offline prolungato, batteria critica, recovery, reset+OTA. Protetto da cooldown per-tipo e cap giornaliero globale. Default OFF.

Abilita SMS ?
Alert batteria critica ?
Alert recovery ?
Alert reset + OTA ?

SMS RX — comandi (Fase 2)

Canale comandi out-of-band: invia un SMS al device con <PIN> <COMANDO> (es. 1234 RECOVER oppure PIN:1234 QUIET OFF). Sicurezza: il mittente deve essere il numero destinatario qui sopra E il messaggio deve iniziare col PIN. Senza PIN impostato l'RX resta disattivato. Comandi fire-and-forget (nessuna risposta SMS): STATUS (heartbeat se GPRS pronto), UPLOAD (flush coda se GPRS pronto), REBOOT/RECOVER/HARDRESET/MODEMRESET (hard-off modem + restart ESP), SOFTREBOOT (solo restart ESP), QUIET ON|OFF (override quiet con TTL locale). Dal FW 2.0.27, se il device è offline oltre soglia, prova anche un polling rescue solo GSM durante quiet/DND.

Comando SMSEffetto
<PIN> RECOVERRecovery consigliata: spegne il modem con hard-off, riavvia ESP32 e avvia self-test rete/heartbeat.
<PIN> REBOOTAlias di RECOVER: modem hard-off + restart ESP32.
<PIN> HARDRESETAlias rescue di RECOVER.
<PIN> MODEMRESETAlias rescue di RECOVER, utile quando sospetti modem/SIM bloccati.
<PIN> SOFTREBOOTSolo restart ESP32, senza hard-off modem. Da usare solo per test.
<PIN> STATUSForza heartbeat se GPRS e HTTPS sono pronti; se è disponibile solo GSM viene loggato ma non invia dati.
<PIN> UPLOADForza flush coda dati se GPRS e HTTPS sono pronti.
<PIN> QUIET OFFDisattiva temporaneamente quiet/DND; l'override ha TTL locale e una nuova config remota lo azzera.
<PIN> QUIET ONAttiva temporaneamente quiet/DND; l'override ha TTL locale e una nuova config remota lo azzera.
Abilita RX comandi ?

Modem / HTTP / TLS (avanzati)

Verifica certificato TLS server ?

GPS / GNSS

Fix GPS al primo avvio ?
Ricalcola quota (one-shot) ?
⚠️ Lost Mode (anti-furto)
Quando attiva, il device prende un fix GPS ad ogni report e lo spedisce al server. Consuma ~10× più batteria del normale. Si auto-spegne dopo la durata massima impostata se il device va offline.
Attiva Lost Mode ?

NTP & offsets

Reed & pioggia

Ricarica Download JSON
Anteprima JSON File: /config/ESP32-RAIN-1.json
{
    "conf_version": 8,
    "device": "ESP32-RAIN-1",
    "sampling": {
        "bme_enable": true,
        "bme_on_gpio": false,
        "bme_every_sec": 300
    },
    "upload": {
        "batch_every_sec": 300,
        "rain_flush_max_sec": 900,
        "heartbeat_every_sec": 43200,
        "quiet": {
            "enable": true,
            "start_h": 0,
            "end_h": 6,
            "block_ota": true
        }
    },
    "limits": {
        "min_sleep_sec": 60,
        "max_queue_lines": 3000,
        "max_batch_lines": 500
    },
    "flags": {
        "enable_ota_check": true,
        "silent_logs": false,
        "force_upload_now": false
    },
    "net": {
        "ntp_server": "pool.ntp.org",
        "ntp_gmt_offset": 3600,
        "ntp_dst_offset": 3600,
        "ota_check_every_sec": 3600
    },
    "reed": {
        "debounce_ms": 300,
        "debounce_isr_ms": 120
    },
    "rain": {
        "recent_window_sec": 600
    },
    "stay_awake": {
        "base_ms": 1500,
        "max_ms": 5000
    },
    "valid_from": 0,
    "etag": "77c6190bd9459367d7f9cb96ca2cb07ac875d377"
}