AI UPDATE
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
from dashboard_data.card_utils import average, safe_number
|
||||
|
||||
|
||||
def build_farm_alerts_tracker(sensor_id: str, context: dict | None = None, ai_bundle: dict | None = None) -> dict:
|
||||
context = context or {}
|
||||
sensor = context.get("sensor")
|
||||
forecasts = context.get("forecasts", [])
|
||||
if sensor is None:
|
||||
return {"totalAlerts": 0, "radialBarValue": 0, "alertStats": []}
|
||||
|
||||
moisture = safe_number(sensor.soil_moisture, 0)
|
||||
humidity = average([forecast.humidity_mean for forecast in forecasts[:3]], default=0)
|
||||
frost_count = sum(1 for forecast in forecasts[:3] if safe_number(forecast.temperature_min, 10) <= 0)
|
||||
low_water_count = 2 if moisture < 45 else 0
|
||||
fungal_count = 1 if humidity > 70 and moisture > 60 else 0
|
||||
total = low_water_count + fungal_count + frost_count
|
||||
|
||||
return {
|
||||
"totalAlerts": total,
|
||||
"radialBarValue": min(100, total * 10),
|
||||
"alertStats": [
|
||||
{
|
||||
"title": "کمبود آب",
|
||||
"count": str(low_water_count),
|
||||
"avatarColor": "error",
|
||||
"avatarIcon": "tabler-droplet-half-2",
|
||||
},
|
||||
{
|
||||
"title": "ریسک قارچی",
|
||||
"count": str(fungal_count),
|
||||
"avatarColor": "warning",
|
||||
"avatarIcon": "tabler-mushroom",
|
||||
},
|
||||
{
|
||||
"title": "هشدار یخبندان",
|
||||
"count": str(frost_count),
|
||||
"avatarColor": "info",
|
||||
"avatarIcon": "tabler-snowflake",
|
||||
},
|
||||
],
|
||||
}
|
||||
Reference in New Issue
Block a user