Willow
The Willow integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] allows you to monitor the health of your indoor plants in Home Assistant using Willow sensors.
Willow sensors periodically collect environmental and soil measurements and upload them to the Willow cloud platform. Home Assistant retrieves this information from the Willow cloud service, allowing you to visualize plant conditions and create automations based on sensor readings.
This integration communicates with the Willow cloud API using the open source pywillow Python library (available on PyPI).
Supported devices
The following devices are supported by the integration:
- Willow Sensor
Prerequisites
Before setting up the integration, you need:
- A Willow account.
- At least one Willow sensor paired with your account.
- An active internet connection.
Configuration
To add the Willow hub to your Home Assistant instance, use this My button:
Manual configuration steps
If the above My button doesn’t work, you can also perform the following steps manually:
-
Browse to your Home Assistant instance.
-
In the bottom right corner, select the
Add Integration button. -
From the list, select Willow.
-
Follow the instructions on screen to complete the setup.
After authentication is complete, Home Assistant automatically discovers and creates entities for all Willow sensors associated with your account.
Supported functionality
Each Willow sensor provides the following sensor entities in Home Assistant:
Sensors
- Temperature: Ambient temperature around the plant.
- Humidity: Ambient relative humidity.
- Moisture: Soil moisture level.
- Illuminance: Light exposure in lux.
- Battery life: Sensor battery percentage.
Willow automation examples
Willow entities can be used in automations and scripts like other Home Assistant sensors. For example, you can create an automation that notifies you when a plant needs watering.
You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.
Automation: Notify when soil moisture is low
This example creates a persistent notification when the soil moisture level drops below 30.
YAML example for a low soil moisture notification
alias: "Notify when soil moisture is low"
triggers:
- trigger: numeric_state
entity_id: sensor.ficus_moisture
below: 30
actions:
- action: persistent_notification.create
data:
title: "Willow plant alert"
message: "The soil moisture level is below 30. Your plant may need watering."
Data updates
The Willow integration uses cloud pollingData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] to retrieve the latest sensor readings approximately every 15 minutes.
Known limitations
- A cloud connection is required for operation.
- Historical sensor data stored in the Willow platform is not exposed through this integration.
- If a Willow sensor goes offline, Home Assistant retains the last successfully retrieved values until new data becomes available.
Troubleshooting
Sensor data is missing
Symptom
One or more Willow sensors stop updating in Home Assistant.
Resolution
To resolve this issue, try the following steps:
- Verify the sensor is connected in the Willow application.
- Confirm the sensor has sufficient battery power.
- Verify your Willow account can access the device.
- Reload the integration from Settings > Devices & services.
Removing the integration
This integration follows standard integration removal. No extra steps are required.
To remove an integration instance from Home Assistant
- Go to Settings > Devices & services and select the integration card.
- From the list of devices, select the integration instance you want to remove.
- Next to the entry, select the three dots
menu. Then, select Delete.