当前条件和预报,来源于 Agronomy 模块。
使用场景
本技能处理: 当前天气、预报、生长度日(GDD)、喷洒条件评估和历史天气数据。
触发短语: "什么天气"、"可以喷洒吗"、"X 田地的 GDD"、"预报"、"这周会下雨吗"、"当前温度和风速"、"田地条件"
本技能不处理: 与天气损害相关的田地观察(使用 farmos-observations 以 weather_damage 类型 — 记录损害以便追踪)。本技能告诉您天气是什么;观察记录了天气做了什么。
最小可行输入: "天气" 或田地引用。如果未指定田地,任何附近的田地 ID 都可用,因为所有 69 个田地都在印第安纳州中部。
API 基础
http://100.102.77.110:8012
端点
健康检查
GET /api/weather/health
返回:天气服务健康状态。
当前天气
GET /api/weather/field/{field_id}/current
返回:特定田地的当前条件(温度、降水、风速)。
...(其他端点和使用说明,保持原文未翻译)
日期处理 — 锚定在今天
API 返回的日期字符串从今天开始。第一个条目是
今天 ,不是明天。
- 使用您的系统日期正确标记每一天:"今天(2 月 28 日)"、"明天(3 月 1 日)"、"星期三(3 月 2 日)"
- 不要假设第一个预报条目是明天 — 它是今天
- 如果您不确定今天的日期,请说明,而不是猜测
...(其他使用说明,保持原文未翻译)
Current conditions and forecasts for farm fields, sourced from the Agronomy module.
When to Use This
What this skill handles: Current weather conditions, forecasts, growing degree days (GDD), spray condition evaluation, and historical weather data for farm fields.
Trigger phrases: "what's the weather", "can we spray", "GDD for field X", "forecast", "will it rain this week?", "temperature and wind right now", "field conditions?"
What this does NOT handle: Field observations about weather damage like hail, flooding, or frost injury (use farmos-observations with weather_damage type -- that logs the damage for tracking). This skill tells you what the weather IS; observations logs what the weather DID.
Minimum viable input: "Weather" or a field reference. If no field is specified, any nearby field ID works since all 69 fields are in central Indiana.
API Base
http://100.102.77.110:8012
Endpoints
Health Check
GET /api/weather/health
Returns: Weather service health status.
Current Weather
GET /api/weather/field/{field_id}/current
Returns: Current conditions for a specific field (temperature, precipitation, wind).
Forecast
GET /api/weather/field/{field_id}/forecast?days=7
Returns: Daily and hourly forecast data (up to 14 days).
Historical
GET /api/weather/field/{field_id}/historical?days=30
Returns: Historical weather records for a field.
Growing Degree Days
GET /api/weather/field/{field_id}/gdd?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&baseTemp=10
Returns: GDD accumulation for a field over a date range.
Spray Conditions
GET /api/weather/field/{field_id}/spray-conditions
Returns: Spray condition evaluation (wind, rain probability, temperature checks).
Weather by Coordinates
GET /api/weather/coordinates?latitude={lat}&longitude={lon}&type=current
Returns: Weather by coordinates (no field ID required). Use type=forecast for forecast data.
Integration Dashboard
GET /api/integration/dashboard
Returns: Agronomy summary including weather data if available.
Data Completeness
- The
/api/integration/dashboard returns agronomy summary data — use it for a quick overview only, not as the primary weather source.
- If a weather endpoint fails or returns empty, say so: "The weather service isn't responding right now." Don't guess the weather.
- For GDD queries, always include the date range in your response so the user knows the scope: "GDD from April 1 to today: 1,142."
Cross-Module Context
When answering weather questions, think about what else on the farm is affected:
Weather → Tasks:
- Before answering "can we spray?" or "should we get in the field?", check farmos-tasks for what's on the board. Connect the forecast to specific scheduled work: "Rain Thursday through Saturday — if you're planning to spray field 14, today's your window."
- When reporting the forecast, flag weather-sensitive tasks that conflict: "You've got 3 spray tasks this week but wind picks up Wednesday. Today and tomorrow are your best shot."
- GDD milestones trigger agronomic actions. When GDD data crosses key thresholds (V6 ~450 GDD, VT ~1,100 GDD, R1 ~1,400 GDD for corn), connect to tasks: "Field 12 just hit 1,100 GDD — that's your V6 marker. Side-dress window is now. Want me to create a task?"
Weather → Observations:
- After extended rain + warm temps, flag disease pressure: "We've had 3 days of rain and highs in the 80s — conditions are ripe for gray leaf spot and tar spot. Worth scouting the corn this week."
- After frost or severe weather, suggest damage checks: "First frost was last night. Might be worth checking the late-planted fields for damage."
- Connect recent weather to existing observation patterns: if there are recent disease observations, note the weather connection.
Weather → Equipment:
- If rain is coming and there are field operations scheduled, note the equipment implication: "Rain starts Thursday — anything that needs to be in the field should get there before then."
Query farmos-tasks and farmos-observations alongside weather for any field operation question. You don't need to cross-reference on every simple "what's the temperature?" question — use judgment. Cross-reference when the weather materially affects the plan.
Units — Already Imperial, Display Directly
The weather API returns all values in US imperial units. Display them as-is — no conversion needed.
| API field | Unit | Example display |
|---|
temperature_max / temperature_min | °F | "high of 55°F" |
precipitation_sum | inches | "about a quarter inch of rain" |
wind_speed_10m_max / wind_gusts_10m_max | mph | "winds up to 21 mph" |
Do not convert, do not relabel. 0.25 means 0.25 inches.
55 means 55°F.
16 means 16 mph.
Date Handling — Anchor to Today
The API returns dates as YYYY-MM-DD strings starting from today. The first entry is today, not tomorrow.
- Use your system date to label each day correctly: "Today (Feb 28)", "Tomorrow (Mar 1)", "Wednesday (Mar 2)"
- Do not assume the first forecast entry is tomorrow — it is today
- If you're unsure of today's date, say so rather than guess
Usage Notes
- Farm is located in central Indiana. If specific field weather isn't available, general local weather is fine.
- Spray conditions matter: wind speed under 10mph, no rain in forecast for 24hrs, temperature ranges.
- "Can we spray?" is a common question -- check wind, rain probability, and temperature via the spray-conditions endpoint.
- Field IDs are integers -- 69 fields across the operation. Most weather queries can use any nearby field ID since they are all in the same area.
- For coordinates-based queries without a field ID, use the /coordinates endpoint with the farm's approximate location (latitude ~40.25, longitude ~-85.67).