Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 33 additions & 85 deletions source/_integrations/rainbird.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ title: Rain Bird
description: Instructions on how to integrate your Rain Bird LNK WiFi Module within Home Assistant.
ha_category:
- Irrigation
- Binary Sensor
- Sensor
- Switch
ha_config_flow: true
ha_release: 0.61
ha_iot_class: Local Polling
ha_codeowners:
- '@konikvranik'
- '@allenporter'
ha_domain: rainbird
ha_platforms:
- binary_sensor
Expand All @@ -21,109 +24,44 @@ This `rainbird` integration allows interacting with [LNK WiFi](https://www.rainb

There is currently support for the following device types within Home Assistant:

- [Binary Sensor](#binary-sensor)
- [Sensor](#sensor)
- [Switch](#switch)

## Configuration
{% include integrations/config_flow.md %}

To enable it, add the following to your `configuration.yaml` file:
## Configuration Options

```yaml
# Example configuration.yaml entry
rainbird:
host: IP_ADDRESS_OF_MODULE
password: YOUR_PASSWORD
trigger_time: 360
The integration has a configuration option to change the default amount of time that the irrigation
will run when turning on a zone switch (default is 6 minutes). This can be overridden with a service call (see below).

```
## Binary Sensor

{% configuration %}
host:
description: IP Address of the Module
required: true
type: string
password:
description: The password for accessing the module.
required: true
type: string
trigger_time:
description: Irrigation time. The time will be rounded down to whole minutes.
required: true
type: time
zones:
description: Dictionary of zone configurations
required: false
type: map
keys:
ZONE_NUMBER:
description: Zone ID
type: map
keys:
friendly_name:
description: Friendly name to see in GUI
required: false
type: string
trigger_time:
description: Irrigation time. Seconds are ignored.
required: false
type: time
{% endconfiguration %}


More complex configuration using all possible features could look like this example:
```yaml
# Example configuration.yaml entry
rainbird:
- host: IP_ADDRESS_OF_MODULE
password: YOUR_PASSWORD
trigger_time:
minutes: 6
zones:
1:
friendly_name: My zone 1
trigger_time:
minutes: 6
2:
friendly_name: My zone 2
trigger_time:
minutes: 2
- host: IP_ADDRESS_OF_ANOTHER_MODULE
password: YOUR_ANOTHER_PASSWORD
trigger_time: 0:06
zones:
1:
friendly_name: My zone 1
trigger_time: 0:06
3:
friendly_name: My zone 3
trigger_time: 0:05
```
<div class='note'>
Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active).
</div>
The `rainsensor` sensor will tell if you if the device has detected rain.

## Sensor

This `rainbird` sensor allows interacting with [LNK WiFi](https://www.rainbird.com/products/lnk-wifi-module) module of the Rain Bird Irrigation system in Home Assistant.

The integration adds `rainsensor` and `raindelay` sensors and their `binary_sensor` alternatives.
The `raindelay` sensor reports the number of days, if any, the automatic irrigation schedule
has been delayed.

## Switch

This `rainbird` switch platform allows interacting with [LNK WiFi](https://www.rainbird.com/products/lnk-wifi-module) module of the Rain Bird Irrigation system in Home Assistant.

Switches are automatically added for all available zones of configured controllers.

## Services

The Rain Bird switch platform exposes a service to start a single irrigation for a given duration.
The integration exposes services to give additional control over a Rain Bird device.

| Service | Description |
| ------- | ----------- |
| rainbird.start_irrigation | Set a duration state attribute for a switch and turn the irrigation on.|
| rainbird.set_rain_delay | Set how long automatic irrigation is turned off.|
### `rainbird.start_irrigation`

Start a Rain Bird zone for a set number of minutes. This service accepts a Rain Bird sprinkler
zone switch entity and allows a custom duration unlike the switch.

| Service Data Attribute | Optional | Description |
| ---------------------- | -------- | ----------------------------------------------------- |
| `entity_id` | no | The Rain Bird Sprinkler zone switch to turn on. |
| `duration` | no | Number of minutes for this zone to be turned on. |

The service can be used as part of an automation script. For example:

```yaml
# Example configuration.yaml automation entry
Expand All @@ -135,6 +73,16 @@ automation:
action:
- service: rainbird.start_irrigation
data:
entity_id: switch.sprinkler_1
entity_id: switch.rain_bird_sprinkler_1
duration: 5
```

### `rainbird.set_rain_delay`

Sets the number of days to disable automatic irrigation. This service accepts a target of
a Rain Bird config entry.

| Service Data Attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------ |
| `config_entry` | no | The configuration entry id for the rainbird controller |
| `duration` | no | Number of days for the device to be turned off. |