ApiLogController :: aiReceive
Request
GET Parameters
None
POST Parameters
None
Uploaded Files
None
Request Attributes
| Key | Value |
|---|---|
| _controller | "App\Controller\ApiLogController::aiReceive" |
| _firewall_context | "security.firewall.map.context.main" |
| _request_start_time | 1784095322.7025 |
| _route | "api_receive_report" |
| _route_params | [] |
| _security_authenticators | [] |
| _security_firewall_run | "_security_main" |
| _security_skipped_authenticators | [ Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator {#540 -supports: false -passport: null -duration: null -stub: "App\Security\AppLoginAuthenticator" -authenticated: null -exception: null -authenticator: App\Security\AppLoginAuthenticator {#488 …} } Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator {#541 -supports: false -passport: null -duration: null -stub: "Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator" -authenticated: null -exception: null -authenticator: Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator {#542 …} } ] |
| _stopwatch_token | "465a6b" |
Request Headers
| Header | Value |
|---|---|
| accept | "*/*" |
| accept-encoding | "gzip, deflate, zstd" |
| connection | "keep-alive" |
| content-length | "23588" |
| content-type | "application/json" |
| host | "dev.sensoria.cat" |
| user-agent | "python-requests/2.32.5" |
| x-php-ob-level | "1" |
Request Content
Pretty
{
"oficina_id": "4badb165-6e9b-4ea6-8183-56251102df2e",
"timestamp": "15\/07\/26 06:01",
"sensor_status": {
"estado": "FUERA_DE_HORARIO",
"ultima_lectura": "15\/07\/26 07:31",
"tiempo_sin_datos_horas": -1.5,
"nivel_alerta": "NORMAL"
},
"analisis_temporal": {
"indices_bienestar_comparativos": {
"es_confiable": true,
"mejor_dia_historico": {
"fecha": "10\/07\/26",
"fecha_explicativa": {
"es": "Viernes, Prom. 1069",
"en": "Report avg. 1069 ppm on Friday."
},
"co2_ppm": 1069,
"temperatura_celsius": 23.3,
"humedad_porcentaje": 56,
"indice_bienestar": 72
},
"peor_dia_historico": {
"fecha": "14\/07\/26",
"fecha_explicativa": {
"es": "Martes, Prom. 1270",
"en": "Show avg. 1270 ppm on Tuesday."
},
"co2_ppm": 1270,
"temperatura_celsius": 23.8,
"humedad_porcentaje": 57,
"indice_bienestar": 59
},
"hoy_vs_mejor_dia_historico": {
"co2_diferencia_ppm": 401,
"co2_diferencia_porcentaje": 37.5,
"temperatura_diferencia_celsius": 4.3,
"humedad_diferencia_puntos": -8,
"bienestar_perdido_puntos": 27.5
},
"promedio_bienestar_actual": 45,
"rango_bienestar_historico": {
"mejor": 72,
"peor": 59,
"amplitud": 13
}
},
"patrones_semanales_detallados": {
"es_confiable": true,
"dias": [
{
"dia": "1",
"co2_actual_ppm": 1268,
"co2_desviacion_ppm": 268,
"temperatura_actual_celsius": 23.8,
"temperatura_desviacion_celsius": -0.7,
"humedad_actual_porcentaje": 57,
"humedad_desviacion_puntos": 4.5,
"horas_beneficio_potencial": 0.7,
"beneficio_potencial_eur": 12
},
{
"dia": "2",
"co2_actual_ppm": 1346,
"co2_desviacion_ppm": 346,
"temperatura_actual_celsius": 23.8,
"temperatura_desviacion_celsius": -0.7,
"humedad_actual_porcentaje": 56,
"humedad_desviacion_puntos": 3.5,
"horas_beneficio_potencial": 0.7,
"beneficio_potencial_eur": 12
},
{
"dia": "3",
"co2_actual_ppm": 1224,
"co2_desviacion_ppm": 224,
"temperatura_actual_celsius": 23.7,
"temperatura_desviacion_celsius": -0.8,
"humedad_actual_porcentaje": 52,
"humedad_desviacion_puntos": -0.5,
"horas_beneficio_potencial": 0.4,
"beneficio_potencial_eur": 11
},
{
"dia": "4",
"co2_actual_ppm": 1201,
"co2_desviacion_ppm": 201,
"temperatura_actual_celsius": 23.9,
"temperatura_desviacion_celsius": -0.6,
"humedad_actual_porcentaje": 54,
"humedad_desviacion_puntos": 1.5,
"horas_beneficio_potencial": 0.4,
"beneficio_potencial_eur": 11
},
{
"dia": "5",
"co2_actual_ppm": 1076,
"co2_desviacion_ppm": 76,
"temperatura_actual_celsius": 23.4,
"temperatura_desviacion_celsius": -1.1,
"humedad_actual_porcentaje": 54,
"humedad_desviacion_puntos": 1.5,
"horas_beneficio_potencial": 0.4,
"beneficio_potencial_eur": 11
}
],
"hoy_vs_historico": {
"co2_diferencia_porcentaje": 18.1,
"temperatura_diferencia_porcentaje": -2.8,
"humedad_diferencia_porcentaje": 7.4,
"horas_beneficio_potencial_hoy": 0,
"horas_beneficio_potencial_promedio_semanal": 0,
"beneficio_potencial_hoy_eur": 47,
"beneficio_potencial_promedio_semanal_eur": 234
}
}
},
"predicciones_y_horarios": {
"horarios_criticos_especificos": {
"es_confiable": true,
"_validation": {
"is_valid": true,
"valid_parameters": [
"co2",
"temperatura",
"humedad"
],
"invalid_parameters": [],
"reason": null
},
"co2_picos_historicos": {
"peor_hora": "17:00",
"segunda_peor": "16:00",
"tercera_peor": "15:00",
"proximo_pico_predicho": {
"hora": "15:00",
"valor_esperado_ppm": 1787,
"tiempo_restante_horas": 9,
"clasificacion": "critica"
},
"_validation": {
"is_valid": true,
"completeness_score": 1,
"missing_fields": [],
"reason": null
}
},
"temperatura_picos_historicos": {
"peor_hora": "15:00",
"segunda_peor": "16:00",
"tercera_peor": "14:00",
"proximo_pico_predicho": {
"hora": "14:00",
"valor_esperado_celsius": 28.6,
"tiempo_restante_horas": 8,
"clasificacion": "preventiva"
},
"_validation": {
"is_valid": true,
"completeness_score": 1,
"missing_fields": [],
"reason": null
}
},
"humedad_picos_historicos": {
"peor_hora": "8:00",
"segunda_peor": "9:00",
"tercera_peor": "10:00",
"proximo_pico_predicho": {
"hora": "8:00",
"valor_esperado_porcentaje": 54,
"tiempo_restante_horas": 2,
"clasificacion": "preventiva"
},
"_validation": {
"is_valid": true,
"completeness_score": 1,
"missing_fields": [],
"reason": null
}
}
},
"predicciones_negocio_7_30_dias": {
"predicciones_7_dias": {
"dias_criticos": [
{
"dia": "1",
"es_confiable": true,
"valores": {
"co2": {
"valor": 1200,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.5,
"unidad": "\u00b0C",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
}
}
},
{
"dia": "2",
"es_confiable": true,
"valores": {
"co2": {
"valor": 1270,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
}
}
},
{
"dia": "3",
"es_confiable": true,
"valores": {
"co2": {
"valor": 1172,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 17,
"hr_end": 18,
"es_critico": false
}
}
},
{
"dia": "4",
"es_confiable": true,
"valores": {
"co2": {
"valor": 1181,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
}
}
},
{
"dia": "5",
"es_confiable": true,
"valores": {
"co2": {
"valor": 1069,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.3,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 56,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
}
}
}
],
"resumen_tendencias": {
"co2": {
"tendencia_general": "-7.6%",
"impacto_negocio": {
"es": "Mejora significativa de 10.2% en la calidad del aire. Los niveles de CO\u2082 se mantienen consistentemente por debajo de 800 ppm, proporcionando condiciones ideales para tareas de alta exigencia cognitiva.",
"en": "Achieve 10.2% boost in air quality. CO\u2082 stays consistently below 800 ppm. Ideal for high-cognitive tasks."
},
"recomendacion_planificacion": {
"es": "Aprovechar la mejora del 10.2% general manteniendo ventilaci\u00f3n preventiva en Lunes Tarde temprana (16-17h) (Prom. 1200), donde a\u00fan se observan valores superiores.",
"en": "Capitalize on 10.2% air quality boost. Maintain preventive ventilation early Monday afternoon (16-17h). Avg. 1200 ppm still elevated."
}
},
"temperature": {
"tendencia_general": "-0.1%",
"impacto_negocio": {
"es": "\u00daltimas jornadas muestran variabilidad t\u00e9rmicas de +1.4%, con fluctuaciones perceptibles en 5 d\u00edas. El entorno se mantiene relativamente estable, aunque una calibraci\u00f3n del sistema mejorar\u00eda la uniformidad t\u00e9rmica.",
"en": "Register +1.4% thermal fluctuations over 5 days. Environment remains fairly stable. System calibration would even out temperature."
},
"recomendacion_planificacion": {
"es": "Ajustar puntualmente la climatizaci\u00f3n en los d\u00edas con variaciones (+1.4%). El equilibrio t\u00e9rmico el resto de la semana es excelente.",
"en": "Fine-tune HVAC on days with +1.4% thermal variation. Thermal balance excellent rest of week."
}
},
"humidity": {
"tendencia_general": "-0.6%",
"impacto_negocio": {
"es": "Variaciones en humedad de +6.7% detectadas en 5 jornadas. La media permanece en el rango saludable ASHRAE (40-60%), sin riesgos inmediatos.",
"en": "Detect +6.7% humidity swings across 5 days. Avg. remains within healthy ASHRAE range (40-60%). No immediate risk."
},
"recomendacion_planificacion": {
"es": "Niveles de humedad equilibrados (+6.7% de variaci\u00f3n). Mantener la rutina actual de ventilaci\u00f3n sin necesidad de ajustes adicionales.",
"en": "Keep humidity balanced despite +6.7% variation. Maintain current ventilation setup. No adjustments needed."
}
}
}
},
"predicciones_30_dias": {
"semanas_disponibles": 4,
"dias_criticos": {
"semana_1": [
{
"dia_mes": 3,
"semana_mes": 1,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1200,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.5,
"unidad": "\u00b0C",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
}
}
},
{
"dia_mes": 4,
"semana_mes": 1,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1270,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
}
}
},
{
"dia_mes": 5,
"semana_mes": 1,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1172,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 17,
"hr_end": 18,
"es_critico": false
}
}
},
{
"dia_mes": 6,
"semana_mes": 1,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1181,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.8,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 57,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
}
}
},
{
"dia_mes": 7,
"semana_mes": 1,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1069,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.3,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 56,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
}
}
}
],
"semana_2": [
{
"dia_mes": 10,
"semana_mes": 2,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1146,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 23.6,
"unidad": "\u00b0C",
"hr_start": 11,
"hr_end": 12,
"es_critico": false
},
"humidity": {
"valor": 70,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": true
}
}
},
{
"dia_mes": 11,
"semana_mes": 2,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1133,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 24.1,
"unidad": "\u00b0C",
"hr_start": 10,
"hr_end": 12,
"es_critico": false
},
"humidity": {
"valor": 51,
"unidad": "%",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
}
}
},
{
"dia_mes": 12,
"semana_mes": 2,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1250,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 25.4,
"unidad": "\u00b0C",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
},
"humidity": {
"valor": 72,
"unidad": "%",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
}
}
},
{
"dia_mes": 13,
"semana_mes": 2,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1107,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 22.8,
"unidad": "\u00b0C",
"hr_start": 8,
"hr_end": 10,
"es_critico": false
},
"humidity": {
"valor": 71,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": true
}
}
},
{
"dia_mes": 14,
"semana_mes": 2,
"es_confiable": true,
"valores": {
"co2": {
"valor": 881,
"unidad": "ppm",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
},
"temperature": {
"valor": 21.9,
"unidad": "\u00b0C",
"hr_start": 8,
"hr_end": 10,
"es_critico": false
}
}
}
],
"semana_3": [
{
"dia_mes": 17,
"semana_mes": 3,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1156,
"unidad": "ppm",
"hr_start": 14,
"hr_end": 15,
"es_critico": true
},
"temperature": {
"valor": 25,
"unidad": "\u00b0C",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
}
}
},
{
"dia_mes": 18,
"semana_mes": 3,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1062,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 25.3,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 58,
"unidad": "%",
"hr_start": 11,
"hr_end": 13,
"es_critico": false
}
}
},
{
"dia_mes": 19,
"semana_mes": 3,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1159,
"unidad": "ppm",
"hr_start": 15,
"hr_end": 16,
"es_critico": true
},
"temperature": {
"valor": 24.5,
"unidad": "\u00b0C",
"hr_start": 16,
"hr_end": 17,
"es_critico": false
},
"humidity": {
"valor": 65,
"unidad": "%",
"hr_start": 17,
"hr_end": 18,
"es_critico": false
}
}
},
{
"dia_mes": 20,
"semana_mes": 3,
"es_confiable": true,
"valores": {
"co2": {
"valor": 992,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": false
},
"temperature": {
"valor": 23.5,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 72,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": true
}
}
},
{
"dia_mes": 21,
"semana_mes": 3,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1095,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": true
},
"temperature": {
"valor": 23.1,
"unidad": "\u00b0C",
"hr_start": 8,
"hr_end": 10,
"es_critico": false
},
"humidity": {
"valor": 70,
"unidad": "%",
"hr_start": 12,
"hr_end": 13,
"es_critico": true
}
}
}
],
"semana_4": [
{
"dia_mes": 24,
"semana_mes": 4,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1253,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 23.3,
"unidad": "\u00b0C",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
},
"humidity": {
"valor": 56,
"unidad": "%",
"hr_start": 12,
"hr_end": 13,
"es_critico": false
}
}
},
{
"dia_mes": 25,
"semana_mes": 4,
"es_confiable": true,
"valores": {
"co2": {
"valor": 1214,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": true
},
"temperature": {
"valor": 22.8,
"unidad": "\u00b0C",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
},
"humidity": {
"valor": 54,
"unidad": "%",
"hr_start": 9,
"hr_end": 11,
"es_critico": false
}
}
},
{
"dia_mes": 26,
"semana_mes": 4,
"es_confiable": true,
"valores": {
"co2": {
"valor": 995,
"unidad": "ppm",
"hr_start": 15,
"hr_end": 16,
"es_critico": false
},
"temperature": {
"valor": 24.4,
"unidad": "\u00b0C",
"hr_start": 15,
"hr_end": 16,
"es_critico": false
},
"humidity": {
"valor": 65,
"unidad": "%",
"hr_start": 17,
"hr_end": 18,
"es_critico": false
}
}
},
{
"dia_mes": 27,
"semana_mes": 4,
"es_confiable": true,
"valores": {
"co2": {
"valor": 994,
"unidad": "ppm",
"hr_start": 16,
"hr_end": 17,
"es_critico": false
},
"temperature": {
"valor": 24.7,
"unidad": "\u00b0C",
"hr_start": 8,
"hr_end": 10,
"es_critico": false
},
"humidity": {
"valor": 69,
"unidad": "%",
"hr_start": 13,
"hr_end": 14,
"es_critico": true
}
}
},
{
"dia_mes": 28,
"semana_mes": 4,
"es_confiable": true,
"valores": {
"co2": {
"valor": 954,
"unidad": "ppm",
"hr_start": 17,
"hr_end": 18,
"es_critico": false
},
"temperature": {
"valor": 25.3,
"unidad": "\u00b0C",
"hr_start": 10,
"hr_end": 12,
"es_critico": false
},
"humidity": {
"valor": 47,
"unidad": "%",
"hr_start": 14,
"hr_end": 15,
"es_critico": false
}
}
}
]
},
"resumen_tendencias": {
"co2": {
"tendencia_general": "-2.3%",
"patron_largo_plazo": {
"es": "mejora gradual controlada",
"en": "Deliver gradual, controlled improvement."
},
"impacto_negocio": {
"es": "Variaci\u00f3n mensual contenida en -2.3%. La estabilidad observada facilita una planificaci\u00f3n de acciones correctivas sin necesidad de intervenciones urgentes.",
"en": "Contain monthly variation at -2.3%. Stability supports planned corrective actions without urgent intervention."
},
"recomendacion_inversion": {
"es": "El sistema de ventilaci\u00f3n actual se muestra adecuado para el nivel de ocupaci\u00f3n presente. Mantener el mantenimiento anual preventivo ayudar\u00e1 a preservar esta eficiencia a largo plazo.",
"en": "Confirm ventilation system suits current occupancy. Uphold annual preventive maintenance to preserve efficiency long-term."
}
},
"temperature": {
"tendencia_general": "+2.5%",
"patron_largo_plazo": {
"es": "ligero incremento con variaciones",
"en": "Note slight increase with fluctuations."
},
"impacto_negocio": {
"es": "Variaci\u00f3n t\u00e9rmica mensual m\u00ednima de +2.5%. La estabilidad t\u00e9rmica permite mantener un consumo energ\u00e9tico predecible y facilita la planificaci\u00f3n de recursos.",
"en": "Report minimal +2.5% monthly thermal variation. Stable thermal conditions enable predictable energy use and resource planning."
},
"recomendacion_inversion": {
"es": "El comportamiento t\u00e9rmico del espacio es estable y predecible. No se requieren ajustes significativos en el sistema de climatizaci\u00f3n durante este periodo.",
"en": "Maintain stable, predictable thermal environment. No major HVAC adjustments required this period."
}
},
"humidity": {
"tendencia_general": "+2.2%",
"patron_largo_plazo": {
"es": "ligero incremento con variaciones",
"en": "Observe slight increase with fluctuations."
},
"impacto_negocio": {
"es": "Las condiciones de humedad han permanecido equilibradas durante el mes con variaci\u00f3n de +2.2%. Este comportamiento estable dentro del rango ASHRAE favorece el bienestar y la conservaci\u00f3n del espacio.",
"en": "Sustain balanced humidity with +2.2% monthly variation. Stability within ASHRAE range supports comfort and asset preservation."
},
"recomendacion_inversion": {
"es": "Los niveles de humedad est\u00e1n bien gestionados con los sistemas actuales. Continuar con la ventilaci\u00f3n habitual y realizar revisiones peri\u00f3dicas para mantener este equilibrio.",
"en": "Manage humidity well with current systems. Continue regular ventilation and periodic reviews to uphold balance."
}
}
}
}
}
},
"recomendaciones_y_alertas": {
"recomendaciones_accionables": [
{
"prioridad": 1,
"accion": {
"es": "Prevenci\u00f3n pico CO2",
"en": "CO2 Peak Prevention"
},
"descripcion": {
"es": "Detectamos concentraci\u00f3n cr\u00edtica de CO\u2082 que afectar\u00e1 gravemente el rendimiento. Proyecci\u00f3n: 1787 ppm en 9h (+1038 ppm, +138.6% respecto al valor actual de 749 ppm). Este nivel supera ampliamente el l\u00edmite cr\u00edtico de 1500 ppm. Recomendamos ventilar 30\u201360 minutos antes del horario de mayor ocupaci\u00f3n.",
"en": "We have detected a critical concentration of CO\u2082 that will severely impact performance. Projection: 1787 ppm in 9 hours (+1038 ppm, +138.6% compared to the current value of 749 ppm). This level far exceeds the critical limit of 1500 ppm. We recommend ventilating for 30\u201360 minutes before peak occupancy hours."
},
"momento_ejecucion": {
"es": "Renovar aire antes del mediod\u00eda (hacia las 14:00h\u201315:00h). Establecer ventilaci\u00f3n sistem\u00e1tica si el patr\u00f3n persiste.",
"en": "Renew air before midday (around 2:00 PM\u20133:00 PM). Establish systematic ventilation if the pattern persists."
},
"parametro_objetivo": "co2",
"valor_critico": 1787
},
{
"prioridad": 2,
"accion": {
"es": "Prevenci\u00f3n pico Temperature",
"en": "Peak Temperature Prevention"
},
"descripcion": {
"es": "Prevemos incremento t\u00e9rmico que causar\u00e1 incomodidad generalizada. Proyecci\u00f3n: 28.6\u00b0C en 8h (actual: 28.9\u00b0C, +-0.3\u00b0C). Superar\u00e1 el rango \u00f3ptimo de 21\u201324\u00b0C. Recomendamos ajustar la climatizaci\u00f3n de forma preventiva ma\u00f1ana por la ma\u00f1ana.",
"en": "We anticipate a thermal increase that will cause widespread discomfort. Projection: 28.6\u00b0C in 8 hours (current: 28.9\u00b0C, \u00b10.3\u00b0C). This will exceed the optimal range of 21\u201324\u00b0C. We recommend adjusting the air conditioning proactively tomorrow morning."
},
"momento_ejecucion": {
"es": "Intervenir antes del mediod\u00eda, sobre las 13:00h. Monitorear patrones t\u00e9rmicos semanales.",
"en": "Intervene before noon, around 1:00 PM. Monitor weekly thermal patterns."
},
"parametro_objetivo": "temperature",
"valor_critico": 28.6
},
{
"prioridad": 3,
"accion": {
"es": "Prevenci\u00f3n pico Humidity",
"en": "Peak Humidity Prevention"
},
"descripcion": {
"es": "Observamos ligera variaci\u00f3n de humedad sin impacto notable. Proyecci\u00f3n: 54% en 2h (-2%). El rango \u00f3ptimo es 40\u201360%. Sugerimos monitoreo preventivo.",
"en": "We observed a slight variation in humidity with no significant impact. Projection: 54% in 2 hours (-2%). The optimal range is 40\u201360%. We recommend preventive monitoring."
},
"momento_ejecucion": {
"es": "Actuar en horario matinal, hacia las 07:00h. Observar evoluci\u00f3n durante los pr\u00f3ximos 3-5 d\u00edas.",
"en": "Operate in the morning, around 7:00 AM. Monitor progress over the next 3-5 days."
},
"parametro_objetivo": "humidity",
"valor_critico": 54
}
],
"alertas_temporales_criticas": [
{
"tipo": "alerta_critica",
"mensaje": {
"es": "El aire se volver\u00e1 denso causando fatiga severa y somnolencia (CO\u2082: 1787 ppm, l\u00edmite cr\u00edtico: 1000 ppm). Ventilar el espacio en las pr\u00f3ximas 12 horas.",
"en": "The air will become dense, causing severe fatigue and drowsiness (CO\u2082: 1787 ppm, critical limit: 1000 ppm). Ventilate the space within the next 12 hours."
},
"parametro": "co2",
"tiempo_restante": {
"es": "Renovar aire antes del mediod\u00eda (hacia las 14:00h\u201315:00h). Establecer ventilaci\u00f3n sistem\u00e1tica si el patr\u00f3n persiste.",
"en": "Renew air before noon (around 2:00\u20133:00 PM). Establish systematic ventilation if the pattern persists."
},
"valor_critico": 1787
},
{
"tipo": "alerta_preventiva",
"mensaje": {
"es": "Sensaci\u00f3n de calor e incomodidad generalizada (Temperatura: 28.6\u00b0C, umbral: 27\u00b0C). Ajustar climatizaci\u00f3n en las pr\u00f3ximas 12 horas.",
"en": "Sensation of heat and general discomfort (Temperature: 28.6\u00b0C, threshold: 27\u00b0C). Adjust air conditioning within the next 12 hours."
},
"parametro": "temperature",
"tiempo_restante": {
"es": "Intervenir antes del mediod\u00eda, sobre las 13:00h. Monitorear patrones t\u00e9rmicos semanales.",
"en": "Intervene before midday, around 1:00 PM. Monitor weekly thermal patterns."
},
"valor_critico": 28.6
}
]
},
"impacto_economico_y_productividad": {
"impacto_economico_solo_laborables": {
"metodologia": {
"es": "An\u00e1lisis hist\u00f3rico ponderado cient\u00edfico (22 d\u00edas laborables\/mes)",
"en": "Base analysis on weighted scientific data (22 working days\/month)."
},
"ocupacion_oficina": 1,
"beneficios_diarios": {
"es_confiable": true,
"beneficio_potencial_diario_eur": 47,
"horas_beneficio_potencial_diarias": 3.38
},
"beneficios_semanales": {
"es_confiable": true,
"beneficio_potencial_semanal_eur": 234
},
"beneficios_mensuales": {
"es_confiable": true,
"beneficio_potencial_mensual_eur": 1013,
"dias_laborales_mes": 22
},
"beneficios_anuales": {
"es_confiable": true,
"beneficio_potencial_anual_eur": 12159,
"dias_laborales_anyo": 234
},
"metadatos": {
"metodologia": "An\u00e1lisis hist\u00f3rico ponderado cient\u00edfico (22 d\u00edas laborables\/mes)",
"ocupacion_oficina": 1
}
}
},
"calidad_y_confianza_datos": {
"calidad_predicciones": {
"es_confiable": true,
"confianza_co2_porcentaje": 83.6,
"confianza_temperatura_porcentaje": 94.6,
"confianza_humedad_porcentaje": 94.3,
"calidad_general_porcentaje": 95,
"confianza_global_porcentaje": 90.1,
"registros_analizados": 3469,
"periodo_analizado": "3469 registros (\u00faltimos 313 d\u00edas)",
"explicacion": {
"es": "Mayor confianza = predicciones m\u00e1s fiables. CO2 variable por ocupaci\u00f3n, temperatura\/humedad m\u00e1s estables",
"en": "Build greater confidence with reliable predictions. CO\u2082 varies by occupancy; temperature and humidity remain stable."
}
}
},
"sensor_device_team": {
"bienestar_7": 41,
"bienestar_30": 47,
"tendencia_7d": "negativa",
"tendencia_30d": "constante"
}
}
Raw
{"oficina_id": "4badb165-6e9b-4ea6-8183-56251102df2e", "timestamp": "15/07/26 06:01", "sensor_status": {"estado": "FUERA_DE_HORARIO", "ultima_lectura": "15/07/26 07:31", "tiempo_sin_datos_horas": -1.5, "nivel_alerta": "NORMAL"}, "analisis_temporal": {"indices_bienestar_comparativos": {"es_confiable": true, "mejor_dia_historico": {"fecha": "10/07/26", "fecha_explicativa": {"es": "Viernes, Prom. 1069", "en": "Report avg. 1069 ppm on Friday."}, "co2_ppm": 1069, "temperatura_celsius": 23.3, "humedad_porcentaje": 56, "indice_bienestar": 72}, "peor_dia_historico": {"fecha": "14/07/26", "fecha_explicativa": {"es": "Martes, Prom. 1270", "en": "Show avg. 1270 ppm on Tuesday."}, "co2_ppm": 1270, "temperatura_celsius": 23.8, "humedad_porcentaje": 57, "indice_bienestar": 59}, "hoy_vs_mejor_dia_historico": {"co2_diferencia_ppm": 401, "co2_diferencia_porcentaje": 37.5, "temperatura_diferencia_celsius": 4.3, "humedad_diferencia_puntos": -8, "bienestar_perdido_puntos": 27.5}, "promedio_bienestar_actual": 45.0, "rango_bienestar_historico": {"mejor": 72, "peor": 59, "amplitud": 13}}, "patrones_semanales_detallados": {"es_confiable": true, "dias": [{"dia": "1", "co2_actual_ppm": 1268, "co2_desviacion_ppm": 268, "temperatura_actual_celsius": 23.8, "temperatura_desviacion_celsius": -0.7, "humedad_actual_porcentaje": 57, "humedad_desviacion_puntos": 4.5, "horas_beneficio_potencial": 0.7, "beneficio_potencial_eur": 12}, {"dia": "2", "co2_actual_ppm": 1346, "co2_desviacion_ppm": 346, "temperatura_actual_celsius": 23.8, "temperatura_desviacion_celsius": -0.7, "humedad_actual_porcentaje": 56, "humedad_desviacion_puntos": 3.5, "horas_beneficio_potencial": 0.7, "beneficio_potencial_eur": 12}, {"dia": "3", "co2_actual_ppm": 1224, "co2_desviacion_ppm": 224, "temperatura_actual_celsius": 23.7, "temperatura_desviacion_celsius": -0.8, "humedad_actual_porcentaje": 52, "humedad_desviacion_puntos": -0.5, "horas_beneficio_potencial": 0.4, "beneficio_potencial_eur": 11}, {"dia": "4", "co2_actual_ppm": 1201, "co2_desviacion_ppm": 201, "temperatura_actual_celsius": 23.9, "temperatura_desviacion_celsius": -0.6, "humedad_actual_porcentaje": 54, "humedad_desviacion_puntos": 1.5, "horas_beneficio_potencial": 0.4, "beneficio_potencial_eur": 11}, {"dia": "5", "co2_actual_ppm": 1076, "co2_desviacion_ppm": 76, "temperatura_actual_celsius": 23.4, "temperatura_desviacion_celsius": -1.1, "humedad_actual_porcentaje": 54, "humedad_desviacion_puntos": 1.5, "horas_beneficio_potencial": 0.4, "beneficio_potencial_eur": 11}], "hoy_vs_historico": {"co2_diferencia_porcentaje": 18.1, "temperatura_diferencia_porcentaje": -2.8, "humedad_diferencia_porcentaje": 7.4, "horas_beneficio_potencial_hoy": 0, "horas_beneficio_potencial_promedio_semanal": 0, "beneficio_potencial_hoy_eur": 47, "beneficio_potencial_promedio_semanal_eur": 234}}}, "predicciones_y_horarios": {"horarios_criticos_especificos": {"es_confiable": true, "_validation": {"is_valid": true, "valid_parameters": ["co2", "temperatura", "humedad"], "invalid_parameters": [], "reason": null}, "co2_picos_historicos": {"peor_hora": "17:00", "segunda_peor": "16:00", "tercera_peor": "15:00", "proximo_pico_predicho": {"hora": "15:00", "valor_esperado_ppm": 1787, "tiempo_restante_horas": 9, "clasificacion": "critica"}, "_validation": {"is_valid": true, "completeness_score": 1.0, "missing_fields": [], "reason": null}}, "temperatura_picos_historicos": {"peor_hora": "15:00", "segunda_peor": "16:00", "tercera_peor": "14:00", "proximo_pico_predicho": {"hora": "14:00", "valor_esperado_celsius": 28.6, "tiempo_restante_horas": 8, "clasificacion": "preventiva"}, "_validation": {"is_valid": true, "completeness_score": 1.0, "missing_fields": [], "reason": null}}, "humedad_picos_historicos": {"peor_hora": "8:00", "segunda_peor": "9:00", "tercera_peor": "10:00", "proximo_pico_predicho": {"hora": "8:00", "valor_esperado_porcentaje": 54, "tiempo_restante_horas": 2, "clasificacion": "preventiva"}, "_validation": {"is_valid": true, "completeness_score": 1.0, "missing_fields": [], "reason": null}}}, "predicciones_negocio_7_30_dias": {"predicciones_7_dias": {"dias_criticos": [{"dia": "1", "es_confiable": true, "valores": {"co2": {"valor": 1200, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.5, "unidad": "\u00b0C", "hr_start": 12, "hr_end": 13, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 12, "hr_end": 13, "es_critico": false}}}, {"dia": "2", "es_confiable": true, "valores": {"co2": {"valor": 1270, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 9, "hr_end": 11, "es_critico": false}}}, {"dia": "3", "es_confiable": true, "valores": {"co2": {"valor": 1172, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 14, "hr_end": 15, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 17, "hr_end": 18, "es_critico": false}}}, {"dia": "4", "es_confiable": true, "valores": {"co2": {"valor": 1181, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": false}}}, {"dia": "5", "es_confiable": true, "valores": {"co2": {"valor": 1069, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.3, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 56, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": false}}}], "resumen_tendencias": {"co2": {"tendencia_general": "-7.6%", "impacto_negocio": {"es": "Mejora significativa de 10.2% en la calidad del aire. Los niveles de CO\u2082 se mantienen consistentemente por debajo de 800 ppm, proporcionando condiciones ideales para tareas de alta exigencia cognitiva.", "en": "Achieve 10.2% boost in air quality. CO\u2082 stays consistently below 800 ppm. Ideal for high-cognitive tasks."}, "recomendacion_planificacion": {"es": "Aprovechar la mejora del 10.2% general manteniendo ventilaci\u00f3n preventiva en Lunes Tarde temprana (16-17h) (Prom. 1200), donde a\u00fan se observan valores superiores.", "en": "Capitalize on 10.2% air quality boost. Maintain preventive ventilation early Monday afternoon (16-17h). Avg. 1200 ppm still elevated."}}, "temperature": {"tendencia_general": "-0.1%", "impacto_negocio": {"es": "\u00daltimas jornadas muestran variabilidad t\u00e9rmicas de +1.4%, con fluctuaciones perceptibles en 5 d\u00edas. El entorno se mantiene relativamente estable, aunque una calibraci\u00f3n del sistema mejorar\u00eda la uniformidad t\u00e9rmica.", "en": "Register +1.4% thermal fluctuations over 5 days. Environment remains fairly stable. System calibration would even out temperature."}, "recomendacion_planificacion": {"es": "Ajustar puntualmente la climatizaci\u00f3n en los d\u00edas con variaciones (+1.4%). El equilibrio t\u00e9rmico el resto de la semana es excelente.", "en": "Fine-tune HVAC on days with +1.4% thermal variation. Thermal balance excellent rest of week."}}, "humidity": {"tendencia_general": "-0.6%", "impacto_negocio": {"es": "Variaciones en humedad de +6.7% detectadas en 5 jornadas. La media permanece en el rango saludable ASHRAE (40-60%), sin riesgos inmediatos.", "en": "Detect +6.7% humidity swings across 5 days. Avg. remains within healthy ASHRAE range (40-60%). No immediate risk."}, "recomendacion_planificacion": {"es": "Niveles de humedad equilibrados (+6.7% de variaci\u00f3n). Mantener la rutina actual de ventilaci\u00f3n sin necesidad de ajustes adicionales.", "en": "Keep humidity balanced despite +6.7% variation. Maintain current ventilation setup. No adjustments needed."}}}}, "predicciones_30_dias": {"semanas_disponibles": 4, "dias_criticos": {"semana_1": [{"dia_mes": 3, "semana_mes": 1, "es_confiable": true, "valores": {"co2": {"valor": 1200, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.5, "unidad": "\u00b0C", "hr_start": 12, "hr_end": 13, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 12, "hr_end": 13, "es_critico": false}}}, {"dia_mes": 4, "semana_mes": 1, "es_confiable": true, "valores": {"co2": {"valor": 1270, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 9, "hr_end": 11, "es_critico": false}}}, {"dia_mes": 5, "semana_mes": 1, "es_confiable": true, "valores": {"co2": {"valor": 1172, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 14, "hr_end": 15, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 17, "hr_end": 18, "es_critico": false}}}, {"dia_mes": 6, "semana_mes": 1, "es_confiable": true, "valores": {"co2": {"valor": 1181, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.8, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 57, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": false}}}, {"dia_mes": 7, "semana_mes": 1, "es_confiable": true, "valores": {"co2": {"valor": 1069, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.3, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 56, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": false}}}], "semana_2": [{"dia_mes": 10, "semana_mes": 2, "es_confiable": true, "valores": {"co2": {"valor": 1146, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 23.6, "unidad": "\u00b0C", "hr_start": 11, "hr_end": 12, "es_critico": false}, "humidity": {"valor": 70, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": true}}}, {"dia_mes": 11, "semana_mes": 2, "es_confiable": true, "valores": {"co2": {"valor": 1133, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 24.1, "unidad": "\u00b0C", "hr_start": 10, "hr_end": 12, "es_critico": false}, "humidity": {"valor": 51, "unidad": "%", "hr_start": 9, "hr_end": 11, "es_critico": false}}}, {"dia_mes": 12, "semana_mes": 2, "es_confiable": true, "valores": {"co2": {"valor": 1250, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 25.4, "unidad": "\u00b0C", "hr_start": 14, "hr_end": 15, "es_critico": false}, "humidity": {"valor": 72, "unidad": "%", "hr_start": 17, "hr_end": 18, "es_critico": true}}}, {"dia_mes": 13, "semana_mes": 2, "es_confiable": true, "valores": {"co2": {"valor": 1107, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 22.8, "unidad": "\u00b0C", "hr_start": 8, "hr_end": 10, "es_critico": false}, "humidity": {"valor": 71, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": true}}}, {"dia_mes": 14, "semana_mes": 2, "es_confiable": true, "valores": {"co2": {"valor": 881, "unidad": "ppm", "hr_start": 14, "hr_end": 15, "es_critico": false}, "temperature": {"valor": 21.9, "unidad": "\u00b0C", "hr_start": 8, "hr_end": 10, "es_critico": false}}}], "semana_3": [{"dia_mes": 17, "semana_mes": 3, "es_confiable": true, "valores": {"co2": {"valor": 1156, "unidad": "ppm", "hr_start": 14, "hr_end": 15, "es_critico": true}, "temperature": {"valor": 25.0, "unidad": "\u00b0C", "hr_start": 12, "hr_end": 13, "es_critico": false}}}, {"dia_mes": 18, "semana_mes": 3, "es_confiable": true, "valores": {"co2": {"valor": 1062, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 25.3, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 58, "unidad": "%", "hr_start": 11, "hr_end": 13, "es_critico": false}}}, {"dia_mes": 19, "semana_mes": 3, "es_confiable": true, "valores": {"co2": {"valor": 1159, "unidad": "ppm", "hr_start": 15, "hr_end": 16, "es_critico": true}, "temperature": {"valor": 24.5, "unidad": "\u00b0C", "hr_start": 16, "hr_end": 17, "es_critico": false}, "humidity": {"valor": 65, "unidad": "%", "hr_start": 17, "hr_end": 18, "es_critico": false}}}, {"dia_mes": 20, "semana_mes": 3, "es_confiable": true, "valores": {"co2": {"valor": 992, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": false}, "temperature": {"valor": 23.5, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 72, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": true}}}, {"dia_mes": 21, "semana_mes": 3, "es_confiable": true, "valores": {"co2": {"valor": 1095, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": true}, "temperature": {"valor": 23.1, "unidad": "\u00b0C", "hr_start": 8, "hr_end": 10, "es_critico": false}, "humidity": {"valor": 70, "unidad": "%", "hr_start": 12, "hr_end": 13, "es_critico": true}}}], "semana_4": [{"dia_mes": 24, "semana_mes": 4, "es_confiable": true, "valores": {"co2": {"valor": 1253, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 23.3, "unidad": "\u00b0C", "hr_start": 12, "hr_end": 13, "es_critico": false}, "humidity": {"valor": 56, "unidad": "%", "hr_start": 12, "hr_end": 13, "es_critico": false}}}, {"dia_mes": 25, "semana_mes": 4, "es_confiable": true, "valores": {"co2": {"valor": 1214, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": true}, "temperature": {"valor": 22.8, "unidad": "\u00b0C", "hr_start": 9, "hr_end": 11, "es_critico": false}, "humidity": {"valor": 54, "unidad": "%", "hr_start": 9, "hr_end": 11, "es_critico": false}}}, {"dia_mes": 26, "semana_mes": 4, "es_confiable": true, "valores": {"co2": {"valor": 995, "unidad": "ppm", "hr_start": 15, "hr_end": 16, "es_critico": false}, "temperature": {"valor": 24.4, "unidad": "\u00b0C", "hr_start": 15, "hr_end": 16, "es_critico": false}, "humidity": {"valor": 65, "unidad": "%", "hr_start": 17, "hr_end": 18, "es_critico": false}}}, {"dia_mes": 27, "semana_mes": 4, "es_confiable": true, "valores": {"co2": {"valor": 994, "unidad": "ppm", "hr_start": 16, "hr_end": 17, "es_critico": false}, "temperature": {"valor": 24.7, "unidad": "\u00b0C", "hr_start": 8, "hr_end": 10, "es_critico": false}, "humidity": {"valor": 69, "unidad": "%", "hr_start": 13, "hr_end": 14, "es_critico": true}}}, {"dia_mes": 28, "semana_mes": 4, "es_confiable": true, "valores": {"co2": {"valor": 954, "unidad": "ppm", "hr_start": 17, "hr_end": 18, "es_critico": false}, "temperature": {"valor": 25.3, "unidad": "\u00b0C", "hr_start": 10, "hr_end": 12, "es_critico": false}, "humidity": {"valor": 47, "unidad": "%", "hr_start": 14, "hr_end": 15, "es_critico": false}}}]}, "resumen_tendencias": {"co2": {"tendencia_general": "-2.3%", "patron_largo_plazo": {"es": "mejora gradual controlada", "en": "Deliver gradual, controlled improvement."}, "impacto_negocio": {"es": "Variaci\u00f3n mensual contenida en -2.3%. La estabilidad observada facilita una planificaci\u00f3n de acciones correctivas sin necesidad de intervenciones urgentes.", "en": "Contain monthly variation at -2.3%. Stability supports planned corrective actions without urgent intervention."}, "recomendacion_inversion": {"es": "El sistema de ventilaci\u00f3n actual se muestra adecuado para el nivel de ocupaci\u00f3n presente. Mantener el mantenimiento anual preventivo ayudar\u00e1 a preservar esta eficiencia a largo plazo.", "en": "Confirm ventilation system suits current occupancy. Uphold annual preventive maintenance to preserve efficiency long-term."}}, "temperature": {"tendencia_general": "+2.5%", "patron_largo_plazo": {"es": "ligero incremento con variaciones", "en": "Note slight increase with fluctuations."}, "impacto_negocio": {"es": "Variaci\u00f3n t\u00e9rmica mensual m\u00ednima de +2.5%. La estabilidad t\u00e9rmica permite mantener un consumo energ\u00e9tico predecible y facilita la planificaci\u00f3n de recursos.", "en": "Report minimal +2.5% monthly thermal variation. Stable thermal conditions enable predictable energy use and resource planning."}, "recomendacion_inversion": {"es": "El comportamiento t\u00e9rmico del espacio es estable y predecible. No se requieren ajustes significativos en el sistema de climatizaci\u00f3n durante este periodo.", "en": "Maintain stable, predictable thermal environment. No major HVAC adjustments required this period."}}, "humidity": {"tendencia_general": "+2.2%", "patron_largo_plazo": {"es": "ligero incremento con variaciones", "en": "Observe slight increase with fluctuations."}, "impacto_negocio": {"es": "Las condiciones de humedad han permanecido equilibradas durante el mes con variaci\u00f3n de +2.2%. Este comportamiento estable dentro del rango ASHRAE favorece el bienestar y la conservaci\u00f3n del espacio.", "en": "Sustain balanced humidity with +2.2% monthly variation. Stability within ASHRAE range supports comfort and asset preservation."}, "recomendacion_inversion": {"es": "Los niveles de humedad est\u00e1n bien gestionados con los sistemas actuales. Continuar con la ventilaci\u00f3n habitual y realizar revisiones peri\u00f3dicas para mantener este equilibrio.", "en": "Manage humidity well with current systems. Continue regular ventilation and periodic reviews to uphold balance."}}}}}}, "recomendaciones_y_alertas": {"recomendaciones_accionables": [{"prioridad": 1, "accion": {"es": "Prevenci\u00f3n pico CO2", "en": "CO2 Peak Prevention"}, "descripcion": {"es": "Detectamos concentraci\u00f3n cr\u00edtica de CO\u2082 que afectar\u00e1 gravemente el rendimiento. Proyecci\u00f3n: 1787 ppm en 9h (+1038 ppm, +138.6% respecto al valor actual de 749 ppm). Este nivel supera ampliamente el l\u00edmite cr\u00edtico de 1500 ppm. Recomendamos ventilar 30\u201360 minutos antes del horario de mayor ocupaci\u00f3n.", "en": "We have detected a critical concentration of CO\u2082 that will severely impact performance. Projection: 1787 ppm in 9 hours (+1038 ppm, +138.6% compared to the current value of 749 ppm). This level far exceeds the critical limit of 1500 ppm. We recommend ventilating for 30\u201360 minutes before peak occupancy hours."}, "momento_ejecucion": {"es": "Renovar aire antes del mediod\u00eda (hacia las 14:00h\u201315:00h). Establecer ventilaci\u00f3n sistem\u00e1tica si el patr\u00f3n persiste.", "en": "Renew air before midday (around 2:00 PM\u20133:00 PM). Establish systematic ventilation if the pattern persists."}, "parametro_objetivo": "co2", "valor_critico": 1787}, {"prioridad": 2, "accion": {"es": "Prevenci\u00f3n pico Temperature", "en": "Peak Temperature Prevention"}, "descripcion": {"es": "Prevemos incremento t\u00e9rmico que causar\u00e1 incomodidad generalizada. Proyecci\u00f3n: 28.6\u00b0C en 8h (actual: 28.9\u00b0C, +-0.3\u00b0C). Superar\u00e1 el rango \u00f3ptimo de 21\u201324\u00b0C. Recomendamos ajustar la climatizaci\u00f3n de forma preventiva ma\u00f1ana por la ma\u00f1ana.", "en": "We anticipate a thermal increase that will cause widespread discomfort. Projection: 28.6\u00b0C in 8 hours (current: 28.9\u00b0C, \u00b10.3\u00b0C). This will exceed the optimal range of 21\u201324\u00b0C. We recommend adjusting the air conditioning proactively tomorrow morning."}, "momento_ejecucion": {"es": "Intervenir antes del mediod\u00eda, sobre las 13:00h. Monitorear patrones t\u00e9rmicos semanales.", "en": "Intervene before noon, around 1:00 PM. Monitor weekly thermal patterns."}, "parametro_objetivo": "temperature", "valor_critico": 28.6}, {"prioridad": 3, "accion": {"es": "Prevenci\u00f3n pico Humidity", "en": "Peak Humidity Prevention"}, "descripcion": {"es": "Observamos ligera variaci\u00f3n de humedad sin impacto notable. Proyecci\u00f3n: 54% en 2h (-2%). El rango \u00f3ptimo es 40\u201360%. Sugerimos monitoreo preventivo.", "en": "We observed a slight variation in humidity with no significant impact. Projection: 54% in 2 hours (-2%). The optimal range is 40\u201360%. We recommend preventive monitoring."}, "momento_ejecucion": {"es": "Actuar en horario matinal, hacia las 07:00h. Observar evoluci\u00f3n durante los pr\u00f3ximos 3-5 d\u00edas.", "en": "Operate in the morning, around 7:00 AM. Monitor progress over the next 3-5 days."}, "parametro_objetivo": "humidity", "valor_critico": 54}], "alertas_temporales_criticas": [{"tipo": "alerta_critica", "mensaje": {"es": "El aire se volver\u00e1 denso causando fatiga severa y somnolencia (CO\u2082: 1787 ppm, l\u00edmite cr\u00edtico: 1000 ppm). Ventilar el espacio en las pr\u00f3ximas 12 horas.", "en": "The air will become dense, causing severe fatigue and drowsiness (CO\u2082: 1787 ppm, critical limit: 1000 ppm). Ventilate the space within the next 12 hours."}, "parametro": "co2", "tiempo_restante": {"es": "Renovar aire antes del mediod\u00eda (hacia las 14:00h\u201315:00h). Establecer ventilaci\u00f3n sistem\u00e1tica si el patr\u00f3n persiste.", "en": "Renew air before noon (around 2:00\u20133:00 PM). Establish systematic ventilation if the pattern persists."}, "valor_critico": 1787}, {"tipo": "alerta_preventiva", "mensaje": {"es": "Sensaci\u00f3n de calor e incomodidad generalizada (Temperatura: 28.6\u00b0C, umbral: 27\u00b0C). Ajustar climatizaci\u00f3n en las pr\u00f3ximas 12 horas.", "en": "Sensation of heat and general discomfort (Temperature: 28.6\u00b0C, threshold: 27\u00b0C). Adjust air conditioning within the next 12 hours."}, "parametro": "temperature", "tiempo_restante": {"es": "Intervenir antes del mediod\u00eda, sobre las 13:00h. Monitorear patrones t\u00e9rmicos semanales.", "en": "Intervene before midday, around 1:00 PM. Monitor weekly thermal patterns."}, "valor_critico": 28.6}]}, "impacto_economico_y_productividad": {"impacto_economico_solo_laborables": {"metodologia": {"es": "An\u00e1lisis hist\u00f3rico ponderado cient\u00edfico (22 d\u00edas laborables/mes)", "en": "Base analysis on weighted scientific data (22 working days/month)."}, "ocupacion_oficina": 1, "beneficios_diarios": {"es_confiable": true, "beneficio_potencial_diario_eur": 47, "horas_beneficio_potencial_diarias": 3.38}, "beneficios_semanales": {"es_confiable": true, "beneficio_potencial_semanal_eur": 234}, "beneficios_mensuales": {"es_confiable": true, "beneficio_potencial_mensual_eur": 1013, "dias_laborales_mes": 22}, "beneficios_anuales": {"es_confiable": true, "beneficio_potencial_anual_eur": 12159, "dias_laborales_anyo": 234}, "metadatos": {"metodologia": "An\u00e1lisis hist\u00f3rico ponderado cient\u00edfico (22 d\u00edas laborables/mes)", "ocupacion_oficina": 1}}}, "calidad_y_confianza_datos": {"calidad_predicciones": {"es_confiable": true, "confianza_co2_porcentaje": 83.6, "confianza_temperatura_porcentaje": 94.6, "confianza_humedad_porcentaje": 94.3, "calidad_general_porcentaje": 95.0, "confianza_global_porcentaje": 90.1, "registros_analizados": 3469, "periodo_analizado": "3469 registros (\u00faltimos 313 d\u00edas)", "explicacion": {"es": "Mayor confianza = predicciones m\u00e1s fiables. CO2 variable por ocupaci\u00f3n, temperatura/humedad m\u00e1s estables", "en": "Build greater confidence with reliable predictions. CO\u2082 varies by occupancy; temperature and humidity remain stable."}}}, "sensor_device_team": {"bienestar_7": 41, "bienestar_30": 47, "tendencia_7d": "negativa", "tendencia_30d": "constante"}}
Response
Response Headers
| Header | Value |
|---|---|
| cache-control | "no-cache, private" |
| content-type | "application/json" |
| date | "Wed, 15 Jul 2026 06:02:02 GMT" |
| x-debug-token | "e44221" |
Cookies
Request Cookies
No request cookies
Response Cookies
No response cookies
Session 1
Session Metadata
No session metadata
Session Attributes
No session attributes
Session Usage
1
Usages
Stateless check enabled
| Usage |
|---|
Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage:39
[
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-core/Authentication/Token/Storage/UsageTrackingTokenStorage.php"
"line" => 39
"function" => "getMetadataBag"
"class" => "Symfony\Component\HttpFoundation\Session\Session"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Authenticator/RememberMeAuthenticator.php"
"line" => 79
"function" => "getToken"
"class" => "Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Authenticator/Debug/TraceableAuthenticator.php"
"line" => 67
"function" => "supports"
"class" => "Symfony\Component\Security\Http\Authenticator\RememberMeAuthenticator"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Authentication/AuthenticatorManager.php"
"line" => 109
"function" => "supports"
"class" => "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticator"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Firewall/AuthenticatorManagerListener.php"
"line" => 32
"function" => "supports"
"class" => "Symfony\Component\Security\Http\Authentication\AuthenticatorManager"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Authenticator/Debug/TraceableAuthenticatorManagerListener.php"
"line" => 35
"function" => "supports"
"class" => "Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-bundle/Debug/WrappedLazyListener.php"
"line" => 38
"function" => "supports"
"class" => "Symfony\Component\Security\Http\Authenticator\Debug\TraceableAuthenticatorManagerListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Firewall/AbstractListener.php"
"line" => 25
"function" => "supports"
"class" => "Symfony\Bundle\SecurityBundle\Debug\WrappedLazyListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-bundle/Security/LazyFirewallContext.php"
"line" => 61
"function" => "__invoke"
"class" => "Symfony\Component\Security\Http\Firewall\AbstractListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-bundle/Debug/TraceableFirewallListener.php"
"line" => 91
"function" => "__invoke"
"class" => "Symfony\Bundle\SecurityBundle\Security\LazyFirewallContext"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/security-http/Firewall.php"
"line" => 92
"function" => "callListeners"
"class" => "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/event-dispatcher/Debug/WrappedListener.php"
"line" => 115
"function" => "onKernelRequest"
"class" => "Symfony\Component\Security\Http\Firewall"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 206
"function" => "__invoke"
"class" => "Symfony\Component\EventDispatcher\Debug\WrappedListener"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/event-dispatcher/EventDispatcher.php"
"line" => 56
"function" => "callListeners"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php"
"line" => 126
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\EventDispatcher"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 159
"function" => "dispatch"
"class" => "Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/http-kernel/HttpKernel.php"
"line" => 76
"function" => "handleRaw"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/http-kernel/Kernel.php"
"line" => 182
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\HttpKernel"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php"
"line" => 35
"function" => "handle"
"class" => "Symfony\Component\HttpKernel\Kernel"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/vendor/autoload_runtime.php"
"line" => 29
"function" => "run"
"class" => "Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner"
"type" => "->"
]
[
"file" => "/var/www/dev.sensoria/public/index.php"
"line" => 5
"args" => [
"/var/www/dev.sensoria/vendor/autoload_runtime.php"
]
"function" => "require_once"
]
]
|
Flashes
Flashes
No flash messages were created.
Server Parameters
Server Parameters
Defined in .env
| Key | Value |
|---|---|
| API_BEARER_TOKEN | "Sensai2026" |
| APP_DEBUG | "1" |
| APP_EMAIL_FROM | "no+reply@sensoria.cat" |
| APP_ENV | "dev" |
| APP_SECRET | "myDirtyLittleSecret" |
| BASIC_SIMDATASTREAM_PASSWORD | "MyFuckingPassword" |
| DATABASE_URL | "mysql://root:Fasfasnar!1@127.0.0.1:3306/dev_sensoria?charset=utf8mb4" |
| GOOGLE_MAPS_API_KEY | "AIzaSyBjaMu_UmBoc7_OXRlm3Y5BJ6qSHgNPr1E" |
| LOCK_DSN | "flock" |
| MAILER_DSN | "smtp://AKIA32BDDOXQKASGCOXB:BLKgu%2F+oKRdPrLPB4mianGCDDHZgjtUUn1Wpcmu%2FO6PS@email-smtp.eu-central-1.amazonaws.com:2587" |
| MAILJET_KEY | "5a7e4ed74879dad6145ab00e167c05c3" |
| MAILJET_LIST_ID | "10510976" |
| MAILJET_SECRET | "7ae27de8322cc60a1d5cfe209117e596" |
| OPENWEATHER_CURRENT_APIKEY | "5a0b6e408d916b66c5c7bb16d14541fa" |
| OPENWEATHER_CURRENT_URL | "https://api.openweathermap.org/data/2.5/weather" |
Defined as regular env variables
| Key | Value |
|---|---|
| CONTENT_LENGTH | "23588" |
| CONTENT_TYPE | "application/json" |
| CONTEXT_DOCUMENT_ROOT | "/var/www/dev.sensoria/public" |
| CONTEXT_PREFIX | "" |
| DOCUMENT_ROOT | "/var/www/dev.sensoria/public" |
| FCGI_ROLE | "RESPONDER" |
| GATEWAY_INTERFACE | "CGI/1.1" |
| HOME | "/usr/share/httpd" |
| HTTPS | "on" |
| HTTP_ACCEPT | "*/*" |
| HTTP_ACCEPT_ENCODING | "gzip, deflate, zstd" |
| HTTP_CONNECTION | "keep-alive" |
| HTTP_HOST | "dev.sensoria.cat" |
| HTTP_USER_AGENT | "python-requests/2.32.5" |
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" |
| PHP_SELF | "/index.php" |
| QUERY_STRING | "" |
| REDIRECT_HTTPS | "on" |
| REDIRECT_SSL_TLS_SNI | "dev.sensoria.cat" |
| REDIRECT_STATUS | "200" |
| REDIRECT_UNIQUE_ID | "alciWs3BSTrzh7DhbSOBQgAAAVc" |
| REDIRECT_URL | "/api/ai/receive" |
| REMOTE_ADDR | "141.227.188.207" |
| REMOTE_PORT | "42430" |
| REQUEST_METHOD | "POST" |
| REQUEST_SCHEME | "https" |
| REQUEST_TIME | 1784095322 |
| REQUEST_TIME_FLOAT | 1784095322.6738 |
| REQUEST_URI | "/api/ai/receive" |
| SCRIPT_FILENAME | "/var/www/dev.sensoria/public/index.php" |
| SCRIPT_NAME | "/index.php" |
| SERVER_ADDR | "172.31.31.131" |
| SERVER_ADMIN | "martin@luckycloud.de" |
| SERVER_NAME | "dev.sensoria.cat" |
| SERVER_PORT | "443" |
| SERVER_PROTOCOL | "HTTP/1.1" |
| SERVER_SIGNATURE | "" |
| SERVER_SOFTWARE | "Apache/2.4.67 (Amazon Linux) OpenSSL/3.5.5" |
| SSL_TLS_SNI | "dev.sensoria.cat" |
| SYMFONY_DOTENV_PATH | "/var/www/dev.sensoria/.env" |
| SYMFONY_DOTENV_VARS | "APP_ENV,APP_SECRET,APP_DEBUG,DATABASE_URL,APP_EMAIL_FROM,BASIC_SIMDATASTREAM_PASSWORD,MAILER_DSN,LOCK_DSN,API_BEARER_TOKEN,GOOGLE_MAPS_API_KEY,OPENWEATHER_CURRENT_APIKEY,OPENWEATHER_CURRENT_URL,MAILJET_KEY,MAILJET_SECRET,MAILJET_LIST_ID" |
| UNIQUE_ID | "alciWs3BSTrzh7DhbSOBQgAAAVc" |
| USER | "apache" |
| proxy-nokeepalive | "1" |