Add a feature to select available updates, and then to schedule a time or date/time when the update happens.
This will allow you to run updates at a more appropriate time, or date so as to not take it down, when it’s monitoring room capacity as an example.
Unattended updates are a bad idea.
This already exists. It’s called “Automation”.
Trigger it on the time of day you want it to happen. Use the update.install service to do the update. Use a template like {{ states.update | selectattr("state", "eq", "on") | map(attribute='entity_id') | list }} to get a list of pending updates.
update.install
{{ states.update | selectattr("state", "eq", "on") | map(attribute='entity_id') | list }}