This guide will walk you through installing the Notion Garden Care custom integration for Home Assistant.
Once this integration is added to HACS, you'll be able to install it with one click:
- Open HACS in Home Assistant
- Go to "Integrations"
- Click "+ Explore & Download Repositories"
- Search for "Notion Garden Care"
- Click "Download"
- Restart Home Assistant
-
Download the Integration
Clone or download this repository:
cd /config # or wherever your Home Assistant config directory is git clone https://github.com/pfalzcraft/notion-garden-care.git
-
Copy Files to Custom Components
# Create custom_components directory if it doesn't exist mkdir -p custom_components # Copy the integration cp -r notion-garden-care/custom_components/notion_garden_care custom_components/
Your directory structure should look like this:
config/ ├── custom_components/ │ └── notion_garden_care/ │ ├── __init__.py │ ├── config_flow.py │ ├── const.py │ ├── manifest.json │ ├── sensor.py │ ├── services.yaml │ ├── strings.json │ └── translations/ │ └── en.json ├── configuration.yaml └── ... -
Restart Home Assistant
Go to Settings → System → Restart
- Go to https://www.notion.so/my-integrations
- Click "+ New integration"
- Fill in the required fields:
- Name:
Home Assistant Garden - Associated workspace: Select your Notion workspace
- Type: Leave as Internal
- Name:
- Under Capabilities, enable at minimum:
- ✅ Read content
- ✅ Update content
- ✅ Insert content
- Click "Save"
- Copy the token (starts with
ntn_...) from the Secrets tab
Note: Without the content capabilities enabled, the integration will not be able to read or write to your Notion database.
If you want the integration to create the database automatically:
- Open Notion
- Create a new blank page (e.g., "Gardening")
- Important: Connect your integration to this page:
- Click "..." (three dots, top right)
- Select "Connections" or "Verbindungen"
- Click "+ Add connection"
- Select "Home Assistant Garden"
- Click "Confirm"
- Copy the page URL from your browser
- Go to Settings → Devices & Services
- Click "+ Add Integration"
- Search for "Notion Garden Care"
- Click on it to start the setup
- Paste your Notion Integration Token (from Step 1)
- Click "Submit"
You have two options:
Option A: Automatic Setup (Recommended)
- Paste your Parent Page URL (from Step 2)
- Keep "Create Garden Care database automatically" checked
- Keep "Add example plants" checked to get started with examples
- Click "Submit"
The integration will:
- ✅ Create the "Garden Care" database with all properties
- ✅ Set up formula fields for automatic calculations
- ✅ Add 4 example plants (Tomatoes, Rose Bush, Apple Tree, Basil)
Option B: Use Existing Database
- Uncheck "Create Garden Care database automatically"
- Click "Submit"
- On the next screen, paste your existing database URL or ID
- Click "Submit"
After setup, you should see:
-
New Sensors:
sensor.notion_garden_care_database- Raw database datasensor.plants_to_water- Plants needing watersensor.plants_to_fertilize- Plants needing fertilizersensor.plants_to_prune- Plants to prune this monthsensor.active_plants_count- Total active plants
-
New Services:
notion_garden_care.mark_as_waterednotion_garden_care.mark_as_fertilizednotion_garden_care.mark_as_prunednotion_garden_care.refresh_database
- Copy the dashboard configuration from
homeassistant/config/dashboard.yaml - Go to Settings → Dashboards
- Click your dashboard → "..." → "Edit Dashboard"
- Click "+ Add Card" → "Manual" or "Raw Configuration Editor"
- Paste the YAML configuration
- Click "Save"
Add these cards to your dashboard:
-
Statistics Glance Card:
- Type: Glance
- Entities: All 4 sensor entities
-
Conditional Markdown Cards:
- For each task type (watering, fertilizing, pruning)
- Show only when count > 0
The integration includes blueprints for easy automation setup:
- Go to Settings → Automations & Scenes
- Click "+ Create Automation"
- Select "Start with a blueprint"
- Choose one of:
- Garden Care - Watering Reminder
- Garden Care - Fertilizing Reminder
- Garden Care - Pruning Reminder (Monthly)
- Configure:
- Notification time
- Notification service (e.g.,
notify.mobile_app_your_phone) - Custom title if desired
- Click "Save"
Copy automations from homeassistant/config/automations.yaml to your automations.yaml file.
action: notion_garden_care.mark_as_watered
data:
plant_name: "Tomatoes" # or use page_id insteadaction: notion_garden_care.mark_as_fertilized
data:
page_id: "abc123def456" # or use plant_name insteadaction: notion_garden_care.mark_as_pruned
data:
plant_name: "Rose Bush"action: notion_garden_care.refresh_databaseProblem: Can't find "Notion Garden Care" in the integrations list
Solution:
- Verify files are in
custom_components/notion_garden_care/ - Check
manifest.jsonexists and is valid JSON - Restart Home Assistant
- Check logs: Settings → System → Logs
Problem: Sensors are unavailable or show no data
Solution:
- Check if the integration is connected in Notion:
- Open your database in Notion
- Click "..." → "Connections"
- Verify "Home Assistant Garden" is connected
- Check the Notion token is valid
- Try refreshing: Call
notion_garden_care.refresh_database - Check Home Assistant logs for API errors
Problem: Setup completed but no database in Notion
Solution:
- Verify the parent page exists in Notion
- Check the integration is connected to the parent page
- Try manual setup with database ID instead
Problem: "API Error: Unauthorized" or similar
Solution:
- Regenerate the Notion integration token
- Remove and re-add the integration in Home Assistant
- Ensure the integration has access to the page/database
HACS will notify you when updates are available. Click "Update" to install.
cd /config/notion-garden-care
git pull
cp -r custom_components/notion_garden_care /config/custom_components/Then restart Home Assistant.
- Go to Settings → Devices & Services
- Find "Notion Garden Care"
- Click "..." → "Delete"
- Remove the integration folder:
rm -rf /config/custom_components/notion_garden_care
- Restart Home Assistant
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: README.md
Happy Gardening! 🌱