Notify only users that are at home

It was not easy to somehow track what users are at home, since my family members are not happy to install a tracker app, get notifications about GPS rights and drain the phone battery all the time. However, the do use the HA app, since it really adds value. Some of them also disable bluetooth and Wifi from time to time, especially at night. However, I finally have fixed this using a simple door sensor. When the door is opened, the presence status of each user is uncertain, until it is confirmed. And it gets confirmed when a user switches on the WiFi. As long as the door is not reopened, the status remains in tact even if the WiFi is turned off. So I do have a template sensor that is quite reliable, see example below:

template sensor:

  template:
  - sensor:
      unique_id: 836d6c6e-6ad6-4c56-b0b5-42b30fee75c4
      name: User1 
      icon: mdi:human-male
      state: >
        {% set current = this.state |default("", 1)%}
        {% if trigger.platform == 'state' or trigger.event.data.value is not defined %}
          {{ current }}
        {% else %}
          {{ trigger.event.data.value }}
        {% endif %}    
    trigger:
      - platform: event
        event_type: user1_present

automation:

  - id: e5c4a12a-ba61-48f4-a6a7-cb6a1496e3af
    alias: smart presence user1
    mode: restart
    trigger:
    - platform: state
      entity_id: sensor.phone_user1_wifi_connection
    - platform: time_pattern
      minutes: "/10"
    - platform: state
      entity_id:
      - binary_sensor.door_frontdoor
      to: 'off'
      id: door
    action:
    - if:
        - condition: trigger
          id: 'door'
      then:
        - delay: '00:05:00'
        # Probably away? (door had been opened)
        - condition: template
          value_template: '{{ states("sensor.phone_user1_wifi_connection") != "WIFISSID" }}'
        - event: user1_present
          event_data:
            value: "Afwezig" 
      else:
        - condition: template
          value_template: '{{ states("sensor.phone_user1_wifi_connection") == "WIFISSID" }}'
        # Confirm present
        - event: user1_present
          event_data:
            value: 'Thuis'

The Problem:
this ends up with a template sensor and an automation for each individual user. Is I want to notify only users that are at home or only users not at home, I have to loop somehow these individual template sensors, see if they’re home and send a message to that user.
How could that be done in a efficient and handy way. (or is my approach anyway bad)?

Instead of events you could send an MQTT message and then use a MQTT Device Tracker to record them as being home. If you then set this tracker for each person under “Settings > People”, the zone.home has a “Persons” attribute that will list all of the people at home.