{"dev-01":{"zone":"lote1","status":{"online":1,"device":"dev-01","name":"Nodo microclima lote 1 (ESP32+DHT22+LDR)","type":"real","power":"on","interval_s":10,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:07Z","weather_live":0,"emulado":1,"fw":"emulator-1.0"},"last":{"ts":"2026-11-12T04:57:20Z","type":"real","seq":122,"temp_c":25.53,"hr_pct":81.9,"luz_lux":4,"rssi_dbm":-64,"led":0},"last_seen_s":5},"dev-02":{"zone":"lote1","status":{"online":1,"device":"dev-02","name":"Nodo suelo y riego (ESP32+capacitivo+relé)","type":"real","power":"on","interval_s":10,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:07Z","weather_live":0,"emulado":1,"fw":"emulator-1.0","valvula":0,"umbral_pct":35},"last":{"ts":"2026-11-12T04:57:20Z","type":"real","seq":122,"humedad_suelo_pct":47.74,"valvula":0,"bateria_v":4.055,"umbral_pct":35},"last_seen_s":4},"dev-03":{"zone":"clima","status":{"online":1,"device":"dev-03","name":"Estación meteo exterior (Azure Maps Current Conditions)","type":"api","power":"on","interval_s":600,"mode":"auto","lat":6.8817,"lon":-73.4103,"ts":"2026-11-12T04:47:36Z","source":"Azure Maps Weather v1.1"},"last":{"ts":"2026-11-12T04:47:36Z","type":"api","seq":2,"temp_c":26.2,"sensacion_c":29.1,"punto_rocio_c":22.2,"hr_pct":78,"uv_index":0,"viento_kmh":6.8,"viento_dir_deg":135,"rafaga_kmh":17.1,"nubosidad_pct":41,"presion_hpa":1016,"visibilidad_km":11.3,"lluvia_1h_mm":0,"lluvia_24h_mm":2.4,"es_dia":0,"condition":"Parcialmente nublado"},"last_seen_s":588},"dev-04":{"zone":"clima","status":{"online":1,"device":"dev-04","name":"Pronóstico de precipitación (Azure Maps Hourly Forecast)","type":"api","power":"on","interval_s":900,"mode":"auto","lat":6.8817,"lon":-73.4103,"ts":"2026-11-12T04:52:36Z","source":"Azure Maps Weather v1.1","ahorro_agua":1},"last":{"ts":"2026-11-12T04:52:36Z","type":"api","seq":2,"prob_lluvia_pct":5,"prob_lluvia_3h_pct":6,"prob_lluvia_max_12h":55,"precip_12h_mm":1,"horas_lluvia_12h":2,"nubosidad_pct":39,"temp_prox_h_c":27.1,"uv_max_12h":4,"ahorro_agua":1,"condition":"Parcialmente nublado"},"last_seen_s":288},"dev-05":{"zone":"lote1","status":{"online":1,"device":"dev-05","name":"Polisombra motorizada","type":"twin","power":"on","interval_s":30,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:04Z","weather_live":0,"objetivo_pct":30},"last":{"ts":"2026-11-12T04:57:04Z","type":"twin","seq":41,"cierre_pct":30,"corriente_a":0.057,"rad_ext_wm2":0,"rad_filtrada_wm2":0,"uv_index":0,"objetivo_pct":30},"last_seen_s":20},"dev-06":{"zone":"lote1","status":{"online":1,"device":"dev-06","name":"Bomba y caudalímetro de goteo","type":"twin","power":"on","interval_s":15,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:04Z","weather_live":0,"bomba":0,"caudal_obj":30,"fuga":0},"last":{"ts":"2026-11-12T04:57:21Z","type":"twin","seq":82,"caudal_lpm":0,"presion_psi":3.96,"consumo_l":0,"consumo_total_l":0,"bomba":0,"fuga":0,"emergencia":0},"last_seen_s":4},"dev-07":{"zone":"beneficio","status":{"online":1,"device":"dev-07","name":"Cajón de fermentación #1","type":"twin","power":"on","interval_s":60,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:04Z","weather_live":0,"ciclo":1,"volteos":0,"horas":0},"last":{"ts":"2026-11-12T04:57:06Z","type":"twin","seq":21,"temp_masa_c":25.94,"ph_mucilago":3.81,"horas_fermentacion":0.33,"temp_ambiente_c":25.2,"volteos":0,"ciclo":1,"phase":"anaerobica"},"last_seen_s":18},"dev-08":{"zone":"beneficio","status":{"online":1,"device":"dev-08","name":"Marquesina de secado solar","type":"twin","power":"on","interval_s":60,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:04Z","weather_live":0,"lote":1,"batch_start":1794458224,"extractores":0,"compuertas":1},"last":{"ts":"2026-11-12T04:57:06Z","type":"twin","seq":21,"humedad_grano_pct":54.94,"temp_interna_c":26.05,"hr_interna_pct":77.8,"extractores":0,"compuertas":1,"horas_secado":0.33,"lote":1},"last_seen_s":18},"dev-09":{"zone":"historico","status":{"online":1,"device":"dev-09","name":"Histórico climático cosecha 2025","type":"dataset","power":"on","interval_s":60,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:05Z","paused":0,"speed":1,"replay":"sync"},"last":{"ts":"2026-11-12T04:57:05Z","type":"dataset","seq":21,"temp_ref_c":22.144,"hr_ref_pct":94.806,"humedad_suelo_ref_pct":48.195,"humedad_suelo_20cm_pct":50.605,"et0_mm_h":0,"et0_dia_mm":3.09,"precipitacion_mm":0,"radiacion_wm2":0,"nubosidad_pct":100,"viento_kmh":3.108,"anomalia":0,"dataset_hora":2025111123},"last_seen_s":19},"dev-10":{"zone":"historico","status":{"online":1,"device":"dev-10","name":"Curva ideal de secado (benchmark)","type":"dataset","power":"on","interval_s":60,"mode":"auto","offsets":{},"ts":"2026-11-12T04:37:05Z","paused":0,"profile":"sol_intenso","http_ok":0},"last":{"ts":"2026-11-12T04:57:06Z","type":"dataset","seq":21,"humedad_objetivo_pct":54.73,"temp_optima_c":33.75,"tasa_secado_pct_h":0.952,"indice_calidad":90,"hora_curva":0.33,"profile":"sol_intenso"},"last_seen_s":19}}