Notification push par user et non pas par appareil

Mon problème

Bonjour,

J’utilise l’interface graphique pour créer des automatisations/scripts et j’aimerais pouvoir envoyer des notifications également, mais je ne peux que choisir un ou plusieurs appareils et non pas un utilisateur. En gros j’aimerais pouvoir recevoir la même notification sur tous les appareils d’un utilisateur (pour + de simplicité) et parce qu’en cas de changement/ajout d’un appareil, il faut remodifier tous les automatisations/scripts.

Une solution simple svp ?

Merci d’avance :slight_smile:

Ma configuration


System Information

version core-2025.6.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.3
os_name Linux
os_version 6.12.23-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 2044
Downloaded Repositories 30
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 15.2
update_channel stable
supervisor_version supervisor-2025.06.2
agent_version 1.7.2
docker_version 28.0.4
disk_total 97.7 GB
disk_used 14.3 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization kvm
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.17.0), Whisper (2.5.0), File editor (5.8.0), Cloudflared (5.3.3), Duck DNS (1.19.0), NGINX Home Assistant SSL proxy (3.11.1), Mosquitto broker (6.5.1), Zigbee2MQTT (2.4.0-1), Z-Wave JS (0.16.0), Node-RED (19.0.2), Studio Code Server (5.19.3), Linky (1.5.0), Matter Server (8.0.0), OpenThread Border Router (2.13.0), Home Assistant Google Drive Backup (0.112.1)
Dashboards
dashboards 11
resources 19
views 42
mode storage
Network Configuration
adapters lo (disabled), enp0s3 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth618ff67 (disabled), veth3d58554 (disabled), veth27aefb2 (disabled), vethf837f6b (disabled), veth4105d9c (disabled), veth467b697 (disabled), veth712d39d (disabled), veth8a3c44e (disabled), veth851d522 (disabled), veth6df183c (disabled), vethd8df4b7 (disabled), veth51ed671 (disabled), veth180e111 (disabled), veth39ba05f (disabled), wpan0 (disabled), veth88e2538 (disabled), veth8aed91d (disabled)
ipv4_addresses lo (127.0.0.1/8), enp0s3 (192.168.2.6/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), veth618ff67 (), veth3d58554 (), veth27aefb2 (), vethf837f6b (), veth4105d9c (), veth467b697 (), veth712d39d (), veth8a3c44e (), veth851d522 (), veth6df183c (), vethd8df4b7 (), veth51ed671 (), veth180e111 (), veth39ba05f (), wpan0 (), veth88e2538 (), veth8aed91d ()
ipv6_addresses lo (::1/128), enp0s3 (fdb6:71d4:ca34:75e0:a9b9:e131:4250:430c/64, fe80::549f:6f91:472e:2784/64), docker0 (fe80::a41e:56ff:febc:f628/64), hassio (fe80::3898:67ff:feb7:84ae/64), veth618ff67 (fe80::c421:eeff:fe28:e66f/64), veth3d58554 (fe80::ec14:feff:fede:ce78/64), veth27aefb2 (fe80::74fd:ffff:fe9d:3573/64), vethf837f6b (fe80::2020:21ff:fe38:d75c/64), veth4105d9c (fe80::6844:78ff:fe4d:8a6f/64), veth467b697 (fe80::b4b5:45ff:fed1:e236/64), veth712d39d (fe80::74be:daff:fe2b:3317/64), veth8a3c44e (fe80::dcc1:baff:fe84:7bbc/64), veth851d522 (fe80::e899:1dff:fe96:9eda/64), veth6df183c (fe80::4b:d0ff:feda:3257/64), vethd8df4b7 (fe80::81b:7eff:fee3:7277/64), veth51ed671 (fe80::a03c:72ff:fe34:4fea/64), veth180e111 (fe80::7867:5fff:fe80:e210/64), veth39ba05f (fe80::28d1:46ff:fe37:230e/64), wpan0 (fd06:cbaf:c46e:f868:0:ff:fe00:fc10/64, fd75:7408:e49:1:f21e:8d39:336e:620a/64, fd06:cbaf:c46e:f868:0:ff:fe00:fc11/64, fd06:cbaf:c46e:f868:0:ff:fe00:fc38/64, fd06:cbaf:c46e:f868:0:ff:fe00:6800/64, fd06:cbaf:c46e:f868:a0e7:e395:c7a4:4e00/64, fe80::85c:9c6d:33ed:44ed/64), veth88e2538 (fe80::48f2:4eff:fea2:8735/64), veth8aed91d (fe80::a0a8:f0ff:fe99:5184/64)
announce_addresses 192.168.2.6, fdb6:71d4:ca34:75e0:a9b9:e131:4250:430c, fe80::549f:6f91:472e:2784
Recorder
oldest_recorder_run 17 juin 2025 à 15:14
current_recorder_run 26 juin 2025 à 15:41
estimated_db_size 488.13 MiB
database_engine sqlite
database_version 3.48.0
Spotify
api_endpoint_reachable ok
___

Pour la alet j’utilises une notification externe avec telegram

Si jamais :

Tu pourra choisir les utilisateurs recevant la notification…

1 « J'aime »

@54allan54

Il faut en fait faire un groupe de device avec pour nom par exemple ton utilisateur…

Dans ton automatisation, tu fais ensuite un notify vers ce groupe de device… si jamais un device n’existe plus ou tu dois le rajouter alors, il suffit de le rajouter dans ce groupe.

En cherchant sur le web j’ai aussi trouvé cela:

dans ton fichier customize.yaml

person.john_doe:
  notify_services:
    - 'notify.mobile_app_johns_iphone'
    - 'notify.custom_notify_service_for_john'
person.jane_doe:
  notify_services:
    - 'notify.mobile_app_janes_android'

tu redémarres pour prise en compte
ensuite dans une automatisation ou script : (à adapter cela ton cas d’usage)

alias: Alert everyone who is home
continue_on_error: true
sequence:
  - variables:
      notify_services: >
        {{ state_attr('zone.home','persons') | map('state_attr','notify_services') | sum(start=[]) | list }}
  - repeat:
      for_each: "{{ notify_services }}"
      sequence:
        - service: "{{ repeat.item }}"
          data:
            message: You are home!
mode: single

et une autre manière avec ce script:

alias: Notifier script
description: Send notifications to the devices of the specified people.
fields:
  title:
    selector:
      text: null
    description: The title of the notification
    default: Notification
    required: true
  message:
    selector:
      text: null
    description: The message to send
    example: Generic notification. Something happened.
    required: true
  people:
    selector:
      text:
        multiple: true
    description: The list of people to notify
sequence:
  - variables:
      everyone: >-
        {{ states.person | map(attribute='entity_id') | map('replace',
        'person.', '') | list }}
      recipients: "{{ people if people | length > 0 else everyone }}"
  - repeat:
      for_each: "{{ recipients }}"
      sequence:
        - if:
            - condition: template
              value_template: "{{ repeat.item in everyone }}"
          then:
            - variables:
                person_entity: person.{{ repeat.item | lower }}
                device_name: >
                  {% set source = state_attr(person_entity,'source') %} {{
                  source.split('device_tracker.')[-1] if source != None else
                  None }}
            - if:
                - condition: template
                  value_template: "{{ device_name != None }}"
              then:
                - data:
                    title: "{{ title }}"
                    message: "{{ messaggio | default('Generic notification. Something happened.')  }}"
                  action: notify.mobile_app_{{ device_name }}
              else:
                - action: system_log.write
                  data:
                    level: warning
                    message: >-
                      The person "{{ repeat.item }}" has no linked devices, unable to notify.
                    logger: notifier_script
          else:
            - action: system_log.write
              data:
                level: warning
                message: >-
                  The person "{{ repeat.item }}" doesn't exist, unable to notify.
                logger: notifier_script

tu as aussi cette intégration qui mixe plusieurs approches :
https://github.com/sejnub/ha-notiscript

1 « J'aime »

Bonjour,

Merci beaucoup, ça fonctionne parfaitement.
Apparemment, une demande officielle a été formulée pour que cette fonctionnalité soit native.

Wait and see :slight_smile:

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.