Homekit: irrigation system valve duration how to

HomeKit Add-on - System Integrations | openHAB - base in this i have a problem with understanding the valve duration and the ducomentation which i condiser as uncomplete.

One irrigation system with 2 valve (groups)

1/ First one is with group valve with default config. Running 1 zone activates the first valve but i see timer is set to “0:00” and nothing happens.

value: Valve
config:
ServiceIndex: “1”

2/ Second valve is with group valve with
value: Valve
config:
ServiceIndex: “2”
homekitValveType: Irrigation
homekitTimer: “true”

Running the valve gives me “Waiting…” instead of 0:00 and sends different refresh commands to items. i tried to send a command with duration 300 when i get the refresh command but the “Waiting…” is still there.

maybe we can somehow improve the documentation to make it more clear?


12:57:08.867 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command OFF
12:57:08.870 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:57:08.872 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:57:08.874 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:57:08.876 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:57:17.753 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command ON
12:57:17.757 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:57:17.762 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:57:17.765 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:57:17.768 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:57:17.772 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2Active' changed from OFF to ON
12:57:29.612 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve1Active' received command ON
12:57:29.615 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'valve1Active' predicted to become ON
12:57:29.622 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve1Active' changed from OFF to ON

12:59:07.048 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command OFF
12:59:07.052 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:59:07.056 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:59:07.060 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:59:07.064 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:59:07.069 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2Active' changed from ON to OFF
12:59:07.073 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command 300
12:59:07.080 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2RemainingDuration' changed from NULL to 300
12:59:11.896 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command ON
12:59:11.902 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:59:11.907 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:59:11.912 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:59:11.916 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:59:11.919 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command 300
12:59:11.922 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2Active' changed from OFF to ON
12:59:18.279 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command OFF
12:59:18.286 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:59:18.289 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:59:18.292 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:59:18.296 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:59:18.300 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command 300
12:59:18.304 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2Active' changed from ON to OFF
12:59:21.636 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command ON
12:59:21.639 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2Active' received command REFRESH
12:59:21.641 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2InUse' received command REFRESH
12:59:21.643 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command REFRESH
12:59:21.647 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2SetDuration' received command REFRESH
12:59:21.651 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command 300
12:59:21.653 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'valve2Active' changed from OFF to ON
12:59:45.621 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'valve2RemainingDuration' received command 300

Hi Jacek,

you need to have a second item in the irrigation group for timer.
this is how it looks on my side

it is not working:

When i turn on the first valve (not timer enabled in metadata - switch is showing 0:00) when i turn on 2 valve (timer enabled in metada - switch is showing “waiting”

The valve is ON in both cases and i can operate them but the times is somehow not working

additional info:
if i have remainingduration = 0 i get errrot message from starting the times, but when i put there >0 nothing happens in the homekit app the valve is active no countdown - only “wating”.

pi@raspberrypi:~ $ tail -f /var/log/openhab/openhab.log -f /var/log/openhab/events.log
==> /var/log/openhab/openhab.log <==
2025-05-09 11:32:47.632 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:32:47.643 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:32:56.574 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:32:56.580 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:33:17.952 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:33:17.963 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:33:17.972 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:33:17.979 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0
2025-05-09 11:33:25.806 [DEBUG] [nternal.accessories.HomekitValveImpl] - valve timer not started as duration = 0

==> /var/log/openhab/events.log <==
2025-05-09 11:33:27.899 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve4SetDuration' received command REFRESH
2025-05-09 11:33:27.899 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve4InUse' received command REFRESH
2025-05-09 11:33:27.900 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve4RemainingDuration' received command REFRESH
2025-05-09 11:38:59.071 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve1RemainingDuration' received command 0
2025-05-09 11:38:59.074 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2RemainingDuration' received command 90
2025-05-09 11:38:59.077 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve3RemainingDuration' received command 0
2025-05-09 11:38:59.080 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve4RemainingDuration' received command 0
2025-05-09 11:38:59.085 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2RemainingDuration' changed from 300 to 90`Preformatted text`

==> /var/log/openhab/events.log <==
2025-05-09 11:39:24.130 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command ON
2025-05-09 11:39:24.131 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-09 11:39:24.132 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-09 11:39:24.133 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-09 11:39:24.134 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2RemainingDuration' received command REFRESH
2025-05-09 11:39:24.134 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2RemainingDuration' received command 300
2025-05-09 11:39:24.135 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become ON
2025-05-09 11:39:24.136 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-09 11:39:24.137 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2RemainingDuration' changed from 90 to 300
2025-05-09 11:39:24.149 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF
2025-05-09 11:39:24.193 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON

==> /var/log/openhab/openhab.log <==
2025-05-09 11:39:43.138 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF valve3SetDuration. Returning default value 0
2025-05-09 11:39:43.139 [DEBUG] [ternal.accessories.BooleanItemReader] - Unexpected item state,  returning false. Item valve3InUse, State NULL (UnDefType)
2025-05-09 11:39:43.140 [DEBUG] [ternal.accessories.BooleanItemReader] - Unexpected item state,  returning false. Item valve4InUse, State NULL (UnDefType)
2025-05-09 11:39:43.141 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF valve4SetDuration. Returning default value 0
2025-05-09 11:39:43.142 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF irrigationSystemTotalRemaining. Returning default value 0
^C
pi@raspberrypi:~ $ tail -f /var/log/openhab/openhab.log -f /var/log/openhab/events.log
==> /var/log/openhab/openhab.log <==
2025-05-09 11:39:43.141 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF valve4SetDuration. Returning default value 0
2025-05-09 11:39:43.142 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF irrigationSystemTotalRemaining. Returning default value 0
2025-05-09 11:42:27.799 [DEBUG] [kit.internal.HomekitAccessoryUpdater] - Received duplicate subscription for TempSensor5_CurrentTemp (Type=NumberItem, State=17.5, Label=Temperatura aktualna, Category=temperature, Tags=[Room5, _DYNAMIC_], Groups=[gRoom5_TempSensor, gRoom5, gRoom5_termostat]) / TargetTemperature
2025-05-09 11:42:27.803 [DEBUG] [kit.internal.HomekitAccessoryUpdater] - Received duplicate subscription for TempSensor3_CurrentTemp (Type=NumberItem, State=17.5, Label=Temperatura aktualna, Category=temperature, Tags=[_DYNAMIC_, Room3], Groups=[gRoom3_TempSensor, gRoom3, gRoom3_termostat]) / TargetTemperature
2025-05-09 11:42:27.821 [DEBUG] [kit.internal.HomekitAccessoryUpdater] - Received duplicate subscription for TempSensor4_CurrentTemp (Type=NumberItem, State=19, Label=Temperatura aktualna, Category=temperature, Tags=[Room4, _DYNAMIC_], Groups=[gRoom4_TempSensor, gRoom4, gRoom4_termostat]) / TargetTemperature
2025-05-09 11:42:27.826 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF valve3SetDuration. Returning default value 0
2025-05-09 11:42:27.827 [DEBUG] [ternal.accessories.BooleanItemReader] - Unexpected item state,  returning false. Item valve3InUse, State NULL (UnDefType)
2025-05-09 11:42:27.827 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF irrigationSystemTotalRemaining. Returning default value 0
2025-05-09 11:42:27.828 [DEBUG] [ssories.HomekitCharacteristicFactory] - Item state NULL is UNDEF valve4SetDuration. Returning default value 0
2025-05-09 11:42:27.828 [DEBUG] [ternal.accessories.BooleanItemReader] - Unexpected item state,  returning false. Item valve4InUse, State NULL (UnDefType)

==> /var/log/openhab/events.log <==
2025-05-09 11:44:24.130 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command OFF
2025-05-09 11:44:24.131 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-09 11:44:24.132 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-09 11:44:24.132 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-09 11:44:24.133 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2RemainingDuration' received command REFRESH
2025-05-09 11:44:24.134 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become OFF
2025-05-09 11:44:24.134 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2RemainingDuration' received command 300
2025-05-09 11:44:24.137 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF
2025-05-09 11:44:24.157 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-09 11:44:24.198 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF

one point to check.
homekit add in supports both

  • external timer, i.e. irrigation solution can count down
  • internal timer - openhab counts down

by default, external timer is assumed.
in order to enable internal timer, add to the group

homekitTimer="true"]

it looks like this on my side

Thank you
config:
ServiceIndex: “2”
homekitTimer: “true”
homekitValveType: Irrigation

when i turn on the valve it goes on and goes off after a while but the app is not showing the timer, its showing “Waiting”

so it’s working only partialy

sorry for delayed responses.

i have check source code and one things is done pretty strange - dont remember why i did it, but basically it creates a virtual RemainingDuration item.
could you please try to remove remaining duration item from the group and remove homekit tag on it?

no problem,

ok config changed but the behaviour is the same:

the valve “Kroplujce” is Valve2 in my setup:

Event change when i move the slider

2025-05-21 14:01:40.631 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:01:40.632 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:01:40.633 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become OFF
2025-05-21 14:01:43.189 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command ON
2025-05-21 14:01:43.190 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-21 14:01:43.191 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:01:43.192 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:01:43.193 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become ON
2025-05-21 14:01:43.196 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-21 14:01:43.203 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command ON
2025-05-21 14:01:43.205 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-21 14:01:43.206 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:01:43.214 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:01:43.220 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become ON
2025-05-21 14:01:43.221 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF
2025-05-21 14:01:43.223 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command ON
2025-05-21 14:01:43.224 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-21 14:01:43.225 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:01:43.227 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:01:43.228 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become ON
2025-05-21 14:01:43.229 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-21 14:01:43.237 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF
2025-05-21 14:01:43.245 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-21 14:02:00.257 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command OFF
2025-05-21 14:02:00.259 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-21 14:02:00.261 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:02:00.263 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:02:00.267 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become OFF
2025-05-21 14:02:00.275 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF
2025-05-21 14:02:00.278 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command OFF
2025-05-21 14:02:00.280 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2Active' received command REFRESH
2025-05-21 14:02:00.282 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2InUse' received command REFRESH
2025-05-21 14:02:00.284 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'valve2SetDuration' received command REFRESH
2025-05-21 14:02:00.286 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'valve2Active' predicted to become OFF
2025-05-21 14:02:00.295 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from OFF to ON
2025-05-21 14:02:00.424 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'valve2Active' changed from ON to OFF

type or paste code here