Unofficial Home Assistant integration for RainPoint Smart+ devices via the HomGar/RainPoint cloud API.
Control and monitor your RainPoint / HomGar irrigation devices directly from Home Assistant.
This integration turns RainPoint hardware into a flexible, programmable irrigation system using Home Assistant.
- Build automations based on real sensor data
- Combine RainPoint devices with other brands (Sonoff, Shelly, etc.)
- Create smarter irrigation using weather, temperature, and moisture
- Monitor water usage and detect leaks
Unlike the mobile app, you are not limited to predefined schedules — you can automate anything.
Use RainPoint sensors to control any device in Home Assistant.
Example:
- If soil moisture < 25%
- And no rain in the last 24h → Turn on a Sonoff relay controlling a dumb solenoid for 10 minutes
This lets you mix RainPoint sensors with other brands (e.g. Sonoff, Shelly) to build a fully custom irrigation system.
Adjust watering based on conditions:
- Moisture < 30%
→ Water for:
- 5 minutes on cool days
- 15 minutes on hot days
Combine with weather integrations to skip watering when rain is forecast.
alias: Smart Irrigation
trigger:
- platform: numeric_state
entity_id: sensor.your_device_soil_moisture
below: 25
condition: []
action:
- service: switch.turn_on
target:
entity_id: switch.your_irrigation_valve
- delay: "00:10:00"
- service: switch.turn_off
target:
entity_id: switch.your_irrigation_valveAdjust entity IDs (e.g. sensor.your_device_soil_moisture, switch.your_irrigation_valve) and thresholds to match your setup.
- If flow_rate > 0 AND valve is OFF → Send an alert
Track daily/weekly water usage and optimise irrigation over time.
Home Assistant already has a first‑class scheduler (the Schedule helper), so this integration deliberately doesn't try to reimplement the app's timers. Instead, drive your valves from a Schedule and you get the best of both worlds: any recurrence HA supports, plus a "next watering" time you can use in other automations (close the blinds, pull in the washing, send a heads‑up).
A ready‑made blueprint is included:
Setup:
- Create a Schedule helper (Settings → Devices & Services → Helpers → Schedule) and draw the blocks when you want to water — the length of each block is the watering duration.
- Import the blueprint (button above), then create an automation from it and pick your Schedule and valve (optionally a rain‑skip binary sensor).
- Turn off the equivalent schedule in the RainPoint/HomGar app so the two don't both fire.
The valve opens when the schedule turns on and closes when it turns off. Closing is always safe and survives an HA restart mid‑run better than a fixed delay.
Failsafe tip: also set the valve's Duration number entity to your run length. Then the device stops on its own even if Home Assistant happens to be offline when the block ends.
Rain‑skip sensor — the blueprint's optional rain‑skip expects a binary_sensor (on = wet), but a RainPoint rain sensor reports precipitation as regular sensor entities (…_rain_last_hour, …_rain_last_24h). Turn one into a wet/dry binary_sensor with a template:
template:
- binary_sensor:
- name: Recent rain
unique_id: recent_rain
device_class: moisture # on = wet
state: >
{{ states('sensor.your_rain_sensor_rain_last_hour') | float(0) > 0 }}Then pick binary_sensor.recent_rain as the blueprint's rain‑skip input. Point it at …_rain_last_24h (and/or a threshold like > 1) if you'd rather skip watering for a day after meaningful rain. You can equally use any weather integration's rain binary_sensor.
Expose "next watering" as a sensor (great for pre‑emptive automations and dashboards) — the Schedule helper already knows it via next_event:
template:
- sensor:
- name: Next watering
unique_id: next_watering
device_class: timestamp
state: "{{ state_attr('schedule.watering', 'next_event') }}"Replace schedule.watering with your own Schedule helper's entity id (e.g. schedule.scheduler). After adding it, restart Home Assistant or reload template entities (Developer Tools → YAML → Template entities), then find it under Developer Tools → States → sensor.next_watering. It reads unknown for a second or two at startup until the schedule initialises, then shows the next start time (and renders as a friendly "in X hours" on a dashboard).
Example — close the blinds 5 minutes before watering:
alias: Close blinds before watering
trigger:
- platform: template
value_template: >
{{ states('sensor.next_watering') not in ('unknown', 'unavailable')
and 0 <= (as_timestamp(states('sensor.next_watering')) - as_timestamp(now())) <= 300 }}
action:
- service: cover.close_cover
target:
entity_id: cover.your_blindsAdjust schedule.watering, sensor.next_watering, and cover.your_blinds to match your setup.
A simple control panel combining valve control and live sensor data:
Tip: Combine these into a Lovelace dashboard with:
- A valve toggle (button or switch card)
- Soil moisture sensor (gauge or sensor card)
- Flow rate sensor (for live feedback while watering)
This gives you a simple "smart irrigation" control panel directly in Home Assistant.
This integration can optionally send an anonymous telemetry ping, off by default. Custom HACS integrations don't report to Home Assistant's own analytics, and HACS doesn't publish install counts, so there's currently no way to know how many people use this or which Home Assistant versions are worth supporting — this exists to answer that, nothing more.
Enable it under Settings → Devices & Services → HomGar/RainPoint Cloud → Configure → Options. There are three independent toggles, all off unless you turn them on:
- Share anonymous usage data — the master switch. With this off, no request is ever sent, regardless of the other two toggles. With it on, a ping (at most once per day, per config entry — two entries, e.g. two accounts, means two independent anonymous IDs) sends a random ID unrelated to your account plus the Home Assistant and integration version numbers.
- Include my country — the client never sends your location; the worker derives your country from the request at the edge and stores it only as a monthly aggregate count that cannot be traced back to your install.
- Include my device models — sends just the RainPoint/HomGar model names you own (e.g.
HTV103FRF), stored as monthly counts, never serial numbers or device names.
If you upgrade from an earlier version, you'll see a one-time notification explaining this. Answering it any way — including declining — records your choice and it never appears again; simply dismissing the notification without answering also stops it from reappearing, but you can revisit the choice any time under Options.
The claims above — that IP addresses are never stored, and the retention periods below — describe the worker's behavior, not this integration's: the client only ever sends the payload described above, and everything about what happens to it afterward is the worker's responsibility. The worker is published as its own separate open-source repository so those claims are independently checkable: homgar-telemetry-worker. Its README has the complete disclosure, including exactly what Cloudflare's edge sees about a request before any of the worker's code runs, and the retention policy the worker enforces (activity dates only, kept 13 months; inactive installs purged after 90 days; aggregate counts kept indefinitely).
Join the Discord server — the best place to get help, share your setup, discuss new device support, and chat with other HomGar/RainPoint users.
Whether you're troubleshooting a device, requesting a new model, or just want to show off your irrigation automation — come say hi!
For reproducible bugs and new device support, please open a GitHub issue rather than a discussion so logs, device details, and payload samples are captured in the right format.
HomGar is the mobile app and cloud platform. RainPoint is the hardware manufacturer. This integration supports the HomGar app and RainPoint Smart+ / RainPoint Home app cloud accounts for RainPoint H-series / Home ecosystem devices, such as HCS*, HTV*, and HWG* models.
The RainPoint-TY / Tuya app and T-series / Tuya ecosystem devices are not supported by this integration. RainPoint's own compatibility guide explains that Tuya devices use T-series model numbers, Home devices use H-series model numbers, and the two ecosystems use different hardware protocols and incompatible hubs: RainPoint Smart Irrigation Timer Guide: Tuya vs. Home APP.
Examples of unsupported Tuya/T-series models include TTV*, TTP*, TWG*, and TCS* devices. These cannot be added by selecting RainPoint Smart+ in this integration; they need a Tuya-compatible Home Assistant integration or a separate RainPoint-TY/Tuya integration.
See the wiki for a longer explanation: RainPoint App and Device Compatibility.
After setup you should see:
- A device for each hub
- Switch entities for each valve
- Sensor entities (moisture, temperature, battery, etc.) depending on your device
If nothing appears, check logs under: Settings → System → Logs
This integration is part of the default HACS store — no custom repository needed.
- In HACS, search for HomGar/RainPoint Cloud (or click the button above)
- Install the integration
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration, search for HomGar/RainPoint Cloud
- Copy the
custom_components/homgarfolder to yourconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration, search for HomGar/RainPoint Cloud
- Go to Settings → Devices & Services → Add Integration → HomGar/RainPoint Cloud
- Select your app type — HomGar or RainPoint Smart+ (choose whichever you use on your phone)
- Enter your account credentials (email and country code)
- Select which homes to include
The RainPoint-TY app is not the same as RainPoint Smart+ / RainPoint Home. If your device is paired only in RainPoint-TY, or the model number starts with T, this integration will not be able to authenticate or discover it.
⚠️ API session conflict: Logging in via this integration will log you out of the mobile app. The API only supports one active session per account. Create a dedicated API account (invite it as a home member) to avoid this — see Multiple Accounts below.
v3.0.0 changes entity unique IDs (now field-name-based: rainpoint_{mid}_{addr}_temperature). All existing entities will appear orphaned after upgrading. A clean remove + re-add is required — there is no in-place migration path.
Option A — Reconfigure with registry wipe (recommended):
- Settings → Devices & Services → HomGar/RainPoint Cloud → three-dot menu → Reconfigure
- Enter your credentials and proceed to home selection
- Check "Remove all existing devices and entities before reloading"
- Submit — the integration will clear the old registry entries and reload fresh
Option B — Full delete and re-add:
- Settings → Devices & Services → HomGar/RainPoint Cloud → three-dot menu → Delete
- Confirm deletion (sensor history will be lost)
- + Add Integration → HomGar/RainPoint Cloud — set up fresh
If preserving history is critical, do not upgrade — pin your current version in HACS.
Device support is data-driven via product_models.json — 106 models are currently supported. Any model in the file is automatically decoded with no code changes required.
BZ501FRF, BZ601FRF, HCS003ARF, HCS003ARF-V1, HCS003FRF, HCS005FRF, HCS008FRF, HCS012ARF, HCS014ARF, HCS015ARF, HCS015ARF+, HCS016ARF, HCS021FRF, HCS024FRF, HCS026FRF, HCS027ARF, HCS030FRF, HCS044FRF, HCS048B, HCS0528ARF, HCS0530THO, HCS0565ARF, HCS0600ARF, HCS596WB, HCS596WB-V4, HCS666FRF-X, HCS701B, HCS702B, HCS702B-V1, HCS706ARF, HCS802ARF, HCS888ARF-V1, HIC1200W, HIC1204W, HIC1208W, HIC1604W, HIC1608W, HIC1612W, HIC406B, HIC801W, HIC819W-4, HIC819W-6, HIC819W-8, HIS019WRF-V2, HIS019WRF-V3, HIS019WRF-V4, HPS551WRF, HTP115FRF, HTP137FRF, HTP142FRF, HTP149FRF, HTP149W, HTP159W, HTP160FRF, HTV0535FRF, HTV0537FRF, HTV0540FRF, HTV0542FRF, HTV102B, HTV103FRF, HTV107B, HTV107FRF, HTV113FRF, HTV113FRF-V4, HTV124B, HTV124FRF, HTV143WRFE, HTV145FRF, HTV157B, HTV203FRF, HTV210B, HTV213FRF, HTV214FRF, HTV224B, HTV224FRF, HTV245FRF, HTV311FRF, HTV345FRF, HTV405FRF, HTV445FRF, HWG004WBRF-V2, HWG004WRF, HWG007SRF, HWG007WRF, HWG007WRF-V2, HWG009WB, HWG023WBRF-V2, HWG023WRF, HWG023WRF-V6, HWG023WRF-V8, HWG040WLBRF, HWG043WB, HWG0538WRF, HWS019WRF-V2, HWS388WRF-V13, HWS388WRF-V7, HWS397WRF-V12, HWS397WRF-V8, HWS578WRF, HWS616WRF, WG03, WT-07W, WT-09W, WT-11W, WT-13W, WT-15R
| Sensor field | Device class | Unit |
|---|---|---|
| temperature | Temperature | °C |
| humidity | Humidity | % |
| soil_moisture | Moisture | % |
| carbon_dioxide | CO₂ | ppm |
| illuminance | Illuminance | lx |
| air_pressure | Atmospheric pressure | hPa |
| wind_speed | Wind speed | m/s |
| battery_level | Battery | % |
| signal_strength | Signal strength | dBm |
| rain_detected | Binary moisture (Rained) |
on/off |
| total_water_volume | Water | L |
| last_water_volume | Water | L |
| today_water_volume | Water | L |
| flow_rate | Volume flow rate | L/min |
| current_session_duration | Duration | s |
| cycle_type | Enum sensor | — |
| Current Step End Time | Timestamp | — |
| Rain Event Time | Timestamp | — |
| Schedule End Time | Timestamp | — |
| Irrigation End Time | Timestamp | — |
| precipitation_total / _1h / _24h / _7d | Precipitation | mm |
Valve devices additionally get a valve open/close entity and a duration number entity per zone. By default the duration is shown in minutes for backward compatibility. You can switch it to seconds in Settings → Devices & Services → HomGar/RainPoint Cloud → Configure → Options.
Some WiFi valve controllers and tap timers are also their own controllable device. In Home Assistant these may appear as a parent hub/diagnostic device plus a child valve device, even when the hardware is a single physical unit. This preserves stable diagnostics, valve entities, and device identifiers across hub-as-device models such as HIC801W and HTP159W.
For multi-zone controllers, you can enable Settings → Devices & Services → HomGar/RainPoint Cloud → Configure → Options and turn on:
Create a separate Home Assistant device for each controller zone
When enabled:
- each valve zone gets its own Home Assistant device
- the child device name uses the RainPoint zone label when available
- valve, duration, and per-zone schedule sensors move under the child device
- shared diagnostics such as MQTT payload/summary stay on the parent controller device
This option is reversible and does not change entity IDs or unique IDs.
Where supported, the integration receives real-time MQTT pushes from the cloud rather than waiting for the 2-minute polling cycle. MQTT connects at the hub level — all sub-device updates flow through a single connection per hub.
The MQTT session is renewed automatically before it expires (based on the expire timestamp from the cloud).
| Device type | MQTT updates | Pattern |
|---|---|---|
| Valves (HTV*, HIC*, HTP159W) | ✅ Yes | Event-driven on open/close |
| CO₂ sensors (HCS0530THO) | ✅ Yes | ~45 s periodic |
| Soil moisture (HCS021FRF, HCS026FRF) | ✅ Yes | ~45 s periodic |
| Flow meters (HCS008FRF) | ✅ Yes | Event-driven when water flows |
| Rain sensors (HCS012ARF, HCS044FRF) | ✅ Yes | Periodic |
| Temp/humidity (HCS014ARF) | ✅ Yes | Periodic |
| Weather stations (HWS*) | ✅ Yes | Periodic |
All other models fall back to 2-minute REST polling.
Some main WiFi devices publish their own valve payload under state rather than a D00/D01 child status. The integration treats state values that look like raw device payloads as realtime device updates, while ignoring normal hub RSSI state strings.
Short Cycle&Soak and mist schedules can transition faster than RainPoint’s cloud updates are delivered. In those cases Current Step End Time may briefly appear stale until the next MQTT or REST update arrives. Irrigation End Time is usually the more stable indicator of the overall run.
Check Settings → System → Logs and filter for HomGar MQTT. Key log lines:
✅ HomGar MQTT [account] connected successfully
✅ HomGar MQTT: Decoded model=HCS021FRF … fields=[…]
✅ HomGar MQTT: Updated sensor … with real-time data
⚠️ HomGar MQTT: Hub mid=XXXXX not found in coordinator data
You can add multiple HomGar/RainPoint accounts to a single Home Assistant instance — useful for multiple properties or if you use both apps.
Each instance is independent with its own polling schedule. Go to Settings → Devices & Services → Add Integration and add the integration again with a different account.
To avoid being logged out of the mobile app:
- Create a new account with a different email address
- In the mobile app: Me → Home management → your home → Members → Invite
- Accept the invitation on the new account
- Use the new account's credentials in Home Assistant
If your device model isn't in the supported list, the integration will log a warning. To request support:
- Note the sensor values shown in the HomGar/RainPoint mobile app
- Open an issue at https://github.com/brettmeyerowitz/homeassistant-homgar/issues with:
- Your device model (e.g.
HCS015ARF+) - A screenshot or list of values from the mobile app
- Your device model (e.g.
- Logged out of mobile app: Use a dedicated API account (see above)
- No devices found: Ensure you selected the correct app type (HomGar vs RainPoint) — the two apps use separate account systems
- RainPoint-TY account fails to log in: RainPoint-TY/Tuya accounts and T-series devices are not supported; use a HomGar or RainPoint Smart+ / RainPoint Home account with compatible H-series devices
- Entities unavailable after upgrade: Follow the clean install steps in Upgrading from v2.x
- Wrong app type configured: Go to the integration → three-dot menu → Reconfigure
Developed by Brett Meyerowitz. Not affiliated with HomGar or RainPoint.
Thanks to shaundekok/rainpoint for Node-RED flow inspiration and early payload decoding work.
Feedback and contributions welcome!





