I concur with everyone responding that you definitely need repeaters. How many and where they need to be placed is highly dependent on your house layout, materials, obstructions, interference, etc but I would start with building out a backbone of repeaters equally distributed around the house so that all your battery operated zigbee nodes have one in reach. Also, once you hit a certain number of battery zigbee devices the hub will refuse to connect more - I believe the limit was 32. To overcome this direct to hub connection limit you will need to use repeaters. Repeaters, being closer than the hub, will also help overcome possibly interference from WiFi. Since you cannot change the Zigbee channel, you might need to select a different Wifi CH on your router is interference turns out to be causing issues.
Ever since I strengthen my zigbee mesh network with repeaters strategically placed, I have never had any further issues. I find ST’s zigbee sensors to be very reliable and have not had the battery issues that some complain about.
If you use webCore you could create a piston to turn off lights if there is no motion or close reported for over X time. This way, if the sensor is not reporting motion or the door closing due to issues, the piston will turn the light off after (i.e.) 1 hour. If the logic is designed properly it should not interfere with your desired behavior and act as a backup. The backup to lights not turning on is your finger ;-). Backup for lights not turning off needs to be automated as when you leave the room you do not know whether it will work or not and you might discover it many hours later…
As an example, my bathroom fan turns off 10 minutes after the lights are turned off (so it can never turn off while you are in the shower for example), however if the lights were turned off before the fan was turned on… the fan would never turn off until someone turned the lights on and then off (or turns the fan off manually), therefore I also have a time limit that turns off the fan if the light has been off for 30 minutes (or whatever the time limit is).
EDIT: My home is on 2 levels and including garage is a bit larger (I have sensors/devices all over, including attic and garage). I started with 4 repeaters (IRIS outlets) and now have 7 (a few plug in CentraLite 4257050-ZHAC dimmers that I like because they turn power on if they detect someone flipping the switch off/on on the table lamp). My total number of Zigbee devices is just over 30. I have 4 APs in the house for WiFi coverage but they do not blast at max power (common misconception / misconfiguration) so I do not seem to have any interference issues. Keep in mind that you might have to reset a few sensors to allow repeaters to connect if you have already max’d out the direct connection limit. Powering down the hub for 10 minutes (can anyone confirm) should force all zigbee devices to find a new best path to the hub, hopefully adopting the new repeaters you added. There are other threads on this forum that go into much detail about this.