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:

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.

Tip

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
AutomationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]
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:

  1. Verify the sensor is connected in the Willow application.
  2. Confirm the sensor has sufficient battery power.
  3. Verify your Willow account can access the device.
  4. 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

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three dots menu. Then, select Delete.