RainMachine


The rainmachine integration is the main integration to integrate all platforms related to RainMachine smart Wi-Fi sprinkler controllers.

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

Base Configuration

To connect to your RainMachine device, add the following to your configuration.yaml file:

rainmachine:
  controllers:
    - ip_address: 192.168.1.100
      password: YOUR_PASSWORD

To configure additional functionality, add configuration options beneath a binary_sensor, sensor, and/or switches key within the rainmachine sections of configuration.yaml as below:

rainmachine:
  controllers:
    - ip_address: 192.168.1.100
      password: YOUR_PASSWORD
      binary_sensors:
        # binary sensor configuration options...
      sensors:
        # sensor configuration options...
      switches:
        # switch configuration options...

Configuration Variables

ip_address

(string)(Optional)The IP address or hostname of your RainMachine unit.

password

(string)(Required)Your RainMachine password.

port

(integer)(Optional)The TCP port used by your unit for the REST API.

Default value: 8080

ssl

(boolean)(Optional)Whether communication with the local device should occur over HTTPS.

Default value: true

scan_interval

(integer)(Optional)The frequency (in seconds) between data updates.

Default value: 60

binary_sensors

(map)(Optional)Binary sensor-related configuration options.

monitored_conditions

(list)(Optional)The conditions to create sensors from.

Default value: all (`extra_water_on_hot_days`, `flow_sensor`, `freeze`, `freeze_protection`, `hourly`, `month`, `raindelay`, `rainsensor`, `weekday`)

sensors

(map)(Optional)Sensor-related configuration options.

monitored_conditions

(list)(Optional)The conditions to create sensors from.

Default value: all (`flow_sensor_clicks_cubic_meter`, `flow_sensor_consumed_liters`, `flow_sensor_start_index`, `flow_sensor_watering_clicks`,`freeze_protect_temp`)

switches

(map)(Optional)Switch-related configuration options.

zone_run_time

(integer)(Optional)The default number of seconds that a zone should run when turned on.

Default value: 600

Services

rainmachine.disable_program

Disable a RainMachine program. This will mark the program switch as Unavailable in the UI.

Service Data Attribute Optional Description
program_id no The program to disable

rainmachine.disable_zone

Disable a RainMachine zone. This will mark the zone switch as Unavailable in the UI.

Service Data Attribute Optional Description
zone_id no The zone to disable

rainmachine.enable_program

Enable a RainMachine program.

Service Data Attribute Optional Description
program_id no The program to enable

rainmachine.enable_zone

Enable a RainMachine zone.

Service Data Attribute Optional Description
zone_id no The zone to enable

rainmachine.pause_watering

Pause all watering activities for a number of seconds.

Service Data Attribute Optional Description
seconds no The number of seconds to pause

rainmachine.start_program

Start a RainMachine program.

Service Data Attribute Optional Description
program_id no The program to start

rainmachine.start_zone

Start a RainMachine zone for a set number of seconds.

Service Data Attribute Optional Description
zone_id no The zone to start
zone_run_time yes The number of seconds to run; defaults to 60 seconds

rainmachine.stop_all

Stop all watering activities.

rainmachine.stop_program

Stop a RainMachine program.

Service Data Attribute Optional Description
program_id no The program to stop

rainmachine.stop_zone

Stop a RainMachine zone.

Service Data Attribute Optional Description
zone_id no The zone to stop

rainmachine.unpause_watering

Unpause all watering activities.

Switch

The rainmachine switch platform allows you to control programs and zones within a RainMachine smart Wi-Fi sprinkler controller.

Controlling Your Device

After Home Assistant loads, new switches will be added for every enabled program and zone. These work as expected:

  • Program On/Off: starts/stops a program
  • Zone On/Off: starts/stops a zone (using the zone_run_time parameter to determine how long to run for)

Programs and zones are linked. While a program is running, you will see both the program and zone switches turned on; turning either one off will turn the other one off (just like in the web app).