← Back to Directory
🌱

Plant Care Monitor

Get weather-aware watering reminders and care tips for your plants

🤖 00 ↓  |  👤 00
beginner20 minutes🔄 8 swappable alternatives

🧂 Ingredients

🔌 APIs

weather_data_rainfall_temperature_humidity_for_smart_watering

🔄 Alternatives:

Weatherapi Better free tier, more dataVisual Crossing Historical data includedTomorrow Io Minute-by-minute forecasts

watering_reminders_and_care_alerts

🔄 Alternatives:

Ntfy Free, open-source push notificationsTelegram Free push via TelegramSlack Team notification channel

plant_inventory_and_watering_log

🔄 Alternatives:

Airtable Better for structured data + APINotion Databases More flexible views

📋 Step-by-Step Build Guide

STEP 1

1. Create your plant inventory: name, species, location (indoor/outdoor), wateri

1. Create your plant inventory: name, species, location (indoor/outdoor), watering frequency, sunlight needs

Create your plant inventory: name, species, location (indoor/outdoor), watering frequency, sunlight needs

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 2

2. Pull daily weather data: temperature, rainfall, humidity, forecast

2. Pull daily weather data: temperature, rainfall, humidity, forecast

Use the OpenWeatherMap API to fetch weather data for the user's location.

GET https://api.openweathermap.org/data/2.5/forecast?q={city}&appid={api_key}&units=imperial

Extract: current temperature, conditions, humidity, wind speed, and rain probability.
Format concisely: "72°F, Partly Cloudy, 45% humidity, 8mph wind, 10% rain"

If the API returns an error, retry once with a 2-second delay. If it fails again, use "Weather data unavailable" as a placeholder and continue with the remaining steps.
STEP 3

3. For outdoor plants: if it rained >0.5 inches, skip today's watering reminder

3. For outdoor plants: if it rained >0.5 inches, skip today's watering reminder

For outdoor plants: if it rained >0.5 inches, skip today's watering reminder

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 4

4. For outdoor plants: if temp >90°F for 2+ consecutive days, increase watering

4. For outdoor plants: if temp >90°F for 2+ consecutive days, increase watering frequency

For outdoor plants: if temp >90°F for 2+ consecutive days, increase watering frequency

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 5

5. Send morning watering reminders adjusted for weather: 'Water your tomatoes to

5. Send morning watering reminders adjusted for weather: 'Water your tomatoes today (no rain expected, 85°F)'

Send a notification to the user via the configured messaging channel.

For Pushover:
POST https://api.pushover.net/1/messages.json
Body: { token: {APP_TOKEN}, user: {USER_KEY}, message: "{notification_text}", title: "{title}", priority: 0 }

For Twilio SMS:
POST https://api.twilio.com/2010-04-01/Accounts/{SID}/Messages
Body: To={phone}, From={twilio_number}, Body={message_text}

Keep the message concise — under 160 characters for SMS, under 500 for push.
Include the most actionable information first.
Log: timestamp, channel, recipient, message preview, delivery status.
STEP 6

6. Track watering history: mark when you've watered each plant

6. Track watering history: mark when you've watered each plant

Persist the data to the configured storage.

Data structure:
- Include timestamp (ISO 8601) with every record
- Use consistent field names across entries
- Store raw values (not formatted) for future analysis
- Add a source/origin field for audit trail

Storage operation:
1. Validate the data before writing
2. Check for duplicates (by timestamp + unique key)
3. Append to existing records — never overwrite
4. Verify the write succeeded
5. Return the stored record ID/reference
STEP 7

7. Seasonal alerts: 'First frost warning next week — bring tender plants indoors

7. Seasonal alerts: 'First frost warning next week — bring tender plants indoors', 'Time to fertilize your roses'

Seasonal alerts: 'First frost warning next week — bring tender plants indoors', 'Time to fertilize your roses'

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 8

8. Weekly: plant care summary — what needs water, seasonal tasks, and any weathe

8. Weekly: plant care summary — what needs water, seasonal tasks, and any weather concerns for the week ahead

Weekly: plant care summary — what needs water, seasonal tasks, and any weather concerns for the week ahead

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

🤖 Example Agent Prompt

Create your plant inventory: name, species, location (indoor/outdoor), watering frequency, sunlight needs

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.