Débutant - Définition présence d'après nom réseau Wifi

Mon problème

Bonjour à tous,
Je débute avec HA et je ne sais pas trop comment m’y prendre pour pouvoir définir mon état de présence en fonction du nom de réseau Wifi sur lequel je suis connecté.
HA récupère bien mon sensor wifi_connection via l’application Android mais je cale sur la méthode et le code Yaml à utiliser pour changer mon état en home ou not_home.

Je ne souhaite pas utiliser la géolocalisation qui est en permanence désactiver sur mon téléphone.

Help, merci à vous

Ma configuration


System Information

version core-2023.1.7
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.10.0-19-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
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 Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2023.01.1
agent_version 1.4.1
docker_version 20.10.21
disk_total 13.7 GB
disk_used 9.7 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons Z-Wave JS UI (1.6.0), Mosquitto broker (6.1.3), AirSend (1.1)
Dashboards
dashboards 2
resources 0
views 3
mode storage
Recorder
oldest_recorder_run 22 août 2022 à 20:06
current_recorder_run 28 janvier 2023 à 10:46
estimated_db_size 911.48 MiB
database_engine mysql
database_version 10.5.18

La fonction ping de home assistant permet de sortir un binary_sensor qui est « on » si l’ip fixe de ton smartphone a été pingué, autrement dit si ton smartphone s’est connecté à ton réseau wifi local

@Christianb233 Merci, j’ai déjà essayé mais ce n’est pas fiable car le téléphone met en veille la connexion Wifi lorsqu’il est verrouillé.

La seule solution la plus fiable à mon sens est de ce fier simplement au nom du réseau Wifi sur lequel le téléphone est connecté mais je n’ai pas réussi à modifier l’état de présence en fonction en utilisant le code Yaml.

Hello

mon tel est en veille la et pourtant connecté via un ping !!

dans binary sensor

  - platform: ping
    host: 192.168.2.1
    name: Wan Status
    scan_interval: 30
    
  - platform: ping
    host: 192.168.2.2
    name: XXXX PC Asus Ping
    scan_interval: 30

  - platform: ping
    host: 192.168.2.3
    name: XXXXX PC Asus Ping
    scan_interval: 30
    
  - platform: ping
    host: 192.168.2.55
    name: XXX Phone Realme Ping
    scan_interval: 30
    
  - platform: ping
    host: 192.168.2.95
    name: XXX Tab. Ping
    scan_interval: 30    

  - platform: ping
    host: 192.168.2.98
    name: XXXXX Phone Xiaomi Ping
    scan_interval: 30 

PS: Android ne mettrais pas ton wifi en veille pour economisé la batterie par exemple !!

@ClassicRed Merci pour ton retour.

Peut-être oui, c’est pour cette raison que je ne peux pas et ne veux pas me fier au ping.
De plus cela impose de fixer une adresse IP dans mon DHCP pour le téléphone.
Afin de limiter au maximum l’interdépendance des services le plus simple et le plus fiable pour moi est de me fier au réseau Wifi sur lequel je suis connecté à l’aide du sensor wifi_connection de l’application android companion.
D’où ma question, comment actualiser son état de présence (home ou not_home) en se basant sur ce sensor ?

Si quelqu’un connait le moyen ça me débloquerait.
Merci d’avance.

je crois que tu as un option dans le tel , pour évité la veille.

En domotique tu as pas trop le choix sinon tu risque d’avoir des soucis avec tes diverses appareils ( ampoule, prises, autres )

c’est une base mais pas fiable à 100%

il te suffit de faire une automatisation

1 « J'aime »

Merci.
C’est bien dans cet esprit mais comme action il n’y a aucun service, à ma connaissance, permettant d’actualiser l’état de l’entité person.mon_nom du style :

entity_id: person.mon_nom
data:
  state: home

Une idée ?

bonjour,
je reprend aujourd’hui ma gestion de presence, et donc je tombe sur ce post…
voici une manière de procéder:

sensor:
  - platform: template
    sensors:
      ap_home:
        unique_id: ap_home_by_sm_xxx_wifi_connection
        # not_home & home = notation standard
        value_template: >-
          {% if states("sensor.sm_xxx_wifi_connection") in ["Sudxxx", "Nordxxx"] %} 
            home 
          {% else %}
            not_home
          {% endif %}
        friendly_name: "ap (ssid)"

avec sm_xxx_wifi_connection qui est un device.tracker
& Sudxxx & Nordxxx qui sont les réseaux disponibles à la maison.