19 lines
708 B
Python
19 lines
708 B
Python
from dashboard_data.card_utils import safe_number
|
|
|
|
|
|
def build_water_need_prediction(sensor_id: str, context: dict | None = None, ai_bundle: dict | None = None) -> dict:
|
|
forecasts = (context or {}).get("forecasts", [])
|
|
daily_needs = []
|
|
for forecast in forecasts[:7]:
|
|
et0 = safe_number(forecast.et0, 4)
|
|
rain = safe_number(forecast.precipitation, 0)
|
|
need = max(0, round((et0 * 100) - (rain * 20)))
|
|
daily_needs.append(need)
|
|
|
|
return {
|
|
"totalNext7Days": sum(daily_needs),
|
|
"unit": "m³",
|
|
"categories": [f"روز {index}" for index in range(1, len(daily_needs) + 1)],
|
|
"series": [{"name": "نیاز آبی", "data": daily_needs}],
|
|
}
|