If the budget is there (although you don’t have the time maybe you could pay a electrician), adding neutrals will benefit greatly, also to the lifespan of smart relays/switches as they are able to run cooler when a neutral is connected to them. Depending on the extent of the rewiring, having all the smart relays for the switches in one large electrical panel in the basement may be the most efficient way (but may be overkill).
I am a huge fan of Shelly (I prefer all WiFi) relays behind traditional looking wall switches - they each have their own web UI, integrate seamlessly with HA, and you can turn cloud access to them on/off. You can also turn on the ability for them to act as bluetooth gateways (via Bluetooth Low Energy - BLE). There are two wonderful things about this: 1. Then you can use the BLU line of sensors (such as their tiny inexpensive PIR motion sensors) from Shelly which have batteries that last 5 years, are extremely low/zero latency - and nearly flawless connection to HA because their BLE notification can be picked up by several nearby shelly relays to almost 100% guarantee the update gets to your Home Assistant almost instantly. 2. You can get the BLE IRK (Identity Resolving Key) from your phone and use that as part of the home/not home location sensing in HA. This works greast for iPhones as their WiFi will disconnect when they fall asleep.
I would rather have gotten sensors which use a variety of methods for motion detection, and in my opinion one of the very best is EverythingPresenceOne, but that requires power - however my setup as I was on a shoestring budget was to get PIR* sensors (Shelly BLU Motion are my favorites as mentioned in #2 above).
*PIR sensors only sense movement and when a person is still in a room but sitting still they will then switch to sensing no motion. My HA workaround which works very well for using these to turn lights on and off, is (here is an example for a wall switch controlling lights):
When movement is sensed turn the wall switch controlled lights turn on. However the lights are not controlled by the motion but by a timer the motion sensor starts, so the light stays on for X minutes after the last time motion is sensed (when people leave the room the timer will count down and then when finished the lights will go off). That way people are not left in the dark. Also, if someone turns the lights off manually at the switch when walking out of the room, ignore any motion for 2 minutes so the lights would not go back on when they walk away!
Set up a shelly relay behind the wall switch (in “edge mode”) such that changing the light switch to either on or off will change the lights to whatever state they are not currently in. That streamlines the combination of controlling the lights both remotely and physically so that you do not have to toggle the light switch to get the lights to go on or off and no matter whatr state the switch is in you can still turn the lights on or off remotely.
For the automations to make this magic happen:
- Set up these helpers: A. A dedicated timer helper in HA for each situation, B. An input_number helper so you can have it as a slider on a dashboard to change the duration of the timer if you like, C. An input_select helper for the automation to be “Turned On/Off” on a handy dashboard (!), D. an input_datetime to store the last time the related wall light switch was PHYSICALLY turned off.
- Set up automations to: A. populate the input_datetime and stoip the timer when the switch is physically turned OFF. B. (Re)start the timer when motion is sensed (only if the automation input_select is set as the automation being enabled and only if the light switch had NOT been manually turned off in the last 2 minutes), B. Turn on the light when the timer is (re)started, C. Turn off the light when the timer finishes or is cancelled. There are other ancillary automations you would need such as D. changing the timer duration when the slider is changed but only if the timer is active, E. starting the timer when the wall switch is turned on, regardless of motion, but only if the input_select has the automation as being enabled, etc.
If you do go the way of the much more expensive not “motion sensor” but “presence sensor” then you wouldn’t need all the timers etc. but there would probably be alot of trial and error to make sure that in fact the lights would not go off if you are still sitting there not moving, etc.
The way I do it you can effectively use a cheaper motion sensor. This has worked perfectly for me. If you are using a smart plug connected to a table lamp however, you would need to leave the smart plug turned on when the automation is changed to disabled so anyone can still reach up to the lamp and turn it on, etc.
Thoughts?