Rachio Smart Sprinkler Controller

New release is published:

Main focus:

  • existing controller / zone / schedule compatibility

  • canonical Flex Schedule Thing type: rachio:flex-schedule

  • no support for temporary development-only rachio:flexschedule Things

  • reduced repeated API calls during Item REFRESH

  • previous throttling fix must remain stable

  • webhook behavior should not regress

This removes API overload in some cases. Now binding should run smoothly. I will continue with testing of newly added items and units for the zones.

Any log about issue would be welcomed.

Not seeing much, here is debug log of rachio binding for example. I’ve tried disabling/re-enabling the bridge and also a zone thing but not seeing anything resembling an error/warning or even a channel reference. Any advice on additional steps to get you better info?

2026-05-31 08:00:11.038 [DEBUG] [rachio.internal.RachioHandlerFactory] - RachioHandlerFactory: Create thing handler for type rachio:zone
2026-05-31 08:00:11.041 [DEBUG] [rachio.internal.RachioHandlerFactory] - Zone handler created: thingUid=rachio:zone:fab4def67a:7087A78D171C-1, bridgeUid=rachio:cloud:fab4def67a
2026-05-31 08:00:11.057 [DEBUG] [o.internal.handler.RachioZoneHandler] - Zone initialize entered: thingUid=rachio:zone:fab4def67a:7087A78D171C-1, bridgeUid=rachio:cloud:fab4def67a, configured zoneId=‘f1a34ac3-9486-4cef-91f1-44d62ae31d9b’
2026-05-31 08:00:11.059 [DEBUG] [o.internal.handler.RachioZoneHandler] - Zone parent bridge resolved: thingUid=rachio:zone:fab4def67a:7087A78D171C-1, bridgeUid=rachio:cloud:fab4def67a, bridgeOnline=true
2026-05-31 08:00:11.061 [DEBUG] [inding.rachio.internal.api.RachioApi] - getZoneByUID: mapped requested zone UID ‘rachio:zone:fab4def67a:7087A78D171C-1’ to Rachio zone ‘Front Lawn (1)’ using configured zoneId ‘f1a34ac3-9486-4cef-91f1-44d62ae31d9b’
2026-05-31 08:00:11.063 [DEBUG] [o.internal.handler.RachioZoneHandler] - Zone model lookup succeeded: thingUid=rachio:zone:fab4def67a:7087A78D171C-1, zoneId=‘f1a34ac3-9486-4cef-91f1-44d62ae31d9b’, zoneName=‘Front Lawn (1)’, controllerId=‘04e732b0-5389-44c7-94ec-ac615b090da5’
2026-05-31 08:00:11.064 [DEBUG] [o.internal.handler.RachioZoneHandler] - Rachio-8D171C[1]: Zone status set ONLINE
2026-05-31 08:01:56.847 [DEBUG] [rachio.internal.RachioHandlerFactory] - Removing Rachio handler
2026-05-31 08:03:17.952 [DEBUG] [internal.handler.RachioDeviceHandler] - Update for device ‘04e732b0-5389-44c7-94ec-ac615b090da5’ received.
2026-05-31 08:03:17.955 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler RachioDeviceHandler of thing rachio:device:fab4def67a:7087A78D171C tried updating channel lastUpdate although the handler was already disposed.
2026-05-31 08:03:17.956 [DEBUG] [internal.handler.RachioDeviceHandler] - Updating device status
2026-05-31 08:03:17.959 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler RachioDeviceHandler tried updating the thing status although the handler was already disposed.
2026-05-31 08:03:40.893 [DEBUG] [rachio.internal.RachioHandlerFactory] - RachioHandlerFactory: Create thing handler for type rachio:device
2026-05-31 08:03:40.913 [DEBUG] [internal.handler.RachioDeviceHandler] - Initializing Rachio Thing ‘rachio:device:fab4def67a:7087A78D171C’.
2026-05-31 08:03:40.915 [DEBUG] [internal.handler.RachioDeviceHandler] - Resolving Rachio controller Thing ‘rachio:device:fab4def67a:7087A78D171C’ by configured deviceId ‘04e732b0-5389-44c7-94ec-ac615b090da5’
2026-05-31 08:03:40.916 [DEBUG] [inding.rachio.internal.api.RachioApi] - Mapped requested device UID ‘rachio:device:fab4def67a:7087A78D171C’ to Rachio device ‘Rachio-8D171C’ using configured deviceId ‘04e732b0-5389-44c7-94ec-ac615b090da5’
2026-05-31 08:03:40.918 [DEBUG] [internal.handler.RachioBridgeHandler] - RachioCloud: No callbackUrl configured.
2026-05-31 08:03:40.920 [DEBUG] [internal.handler.RachioDeviceHandler] - Updating device status
2026-05-31 08:03:40.923 [DEBUG] [inding.rachio.internal.api.RachioApi] - Load current schedule for device ‘04e732b0-5389-44c7-94ec-ac615b090da5’.
2026-05-31 08:03:41.094 [DEBUG] [internal.handler.RachioDeviceHandler] - Rachio-8D171C: Loaded current schedule for controller ‘04e732b0-5389-44c7-94ec-ac615b090da5’: running=false, id=‘’
2026-05-31 08:03:41.095 [DEBUG] [inding.rachio.internal.api.RachioApi] - Load forecast for device ‘04e732b0-5389-44c7-94ec-ac615b090da5’ using METRIC units.
2026-05-31 08:03:41.205 [DEBUG] [internal.handler.RachioDeviceHandler] - Rachio-8D171C: Loaded forecast for controller ‘04e732b0-5389-44c7-94ec-ac615b090da5’ using METRIC units
2026-05-31 08:03:41.206 [DEBUG] [inding.rachio.internal.api.RachioApi] - Load device events for device ‘04e732b0-5389-44c7-94ec-ac615b090da5’ from 1780149821206 to 1780236221206.
2026-05-31 08:03:41.307 [DEBUG] [inding.rachio.internal.api.RachioApi] - Loaded 5 device events for device ‘04e732b0-5389-44c7-94ec-ac615b090da5’.
2026-05-31 08:03:41.308 [DEBUG] [internal.handler.RachioDeviceHandler] - Rachio-8D171C: Loaded 5 recent controller events over 24 hours
2026-05-31 08:03:41.309 [DEBUG] [internal.handler.RachioDeviceHandler] - Updating device status
2026-05-31 08:03:41.310 [DEBUG] [internal.handler.RachioDeviceHandler] - Rachio-8D171C: Device Rachio-8D171C initialized.

I have uploaded a new test build from the current PR-clean branch.

This build includes the latest cleanup and fixes:

  • Cloud Connector-only configuration
  • final flex-schedule Thing type
  • schedule start-time handling from startDate
  • command-only moistureLevel/moisturePercent handling
  • safer logging
  • Rachio servlet lifecycle cleanup

Could you please test this build instead of the earlier one?

The most useful checks would be:

  1. Cloud, controller, zones, schedules and flex-schedules come ONLINE.
  2. Existing Items update correctly.
  3. Disable/re-enable a zone or controller Thing and check whether the “handler was already disposed” warning still appears.
  4. If configured, webhook registration is retained and not duplicated. Your log shows that webhook is not configured.
  5. Please send the Rachio log around startup and the disable/re-enable test.

Thanks. I don’t have webhooks configured. I’ve enabled debug for the binding and restarted my OH instance to produce the following:

openhab.log (158.7 KB)