energywave

device_tracker basato su public_ip

Feb 21st, 2022 (edited)
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 1.48 KB | None | 0 0
  1.  - alias: provatracker
  2.     id: 5fb9c6a2-db43-4f86-b97f-8a8dbc82d893
  3.     description: "Quando cambia lo stato dell'ip pubblico di uno smartphone imposta il relativo tracker a home se è uguale a quello di casa o not_home altrimenti"
  4.     trigger:
  5.      # Inserire qui una voce per ogni sensore public_ip_address relativo ad ogni telefono da monitorare
  6.       - platform: state
  7.         entity_id: sensor.mio_telefono_public_ip_address
  8.         to:
  9.       - platform: state
  10.         entity_id: sensor.altro_tel_public_ip_address
  11.         to:
  12.       - platform: state
  13.         entity_id: sensor.terzo_tel_public_ip_address
  14.         to:
  15.     action:
  16.       - variables:
  17.          # l'entity id che ha generato il trigger, lo useremo per confrontare l'ip
  18.           entity: "{{ trigger.from_state.entity_id }}"
  19.           # il nome che daremo al tracker partendo dall'object_id (ovvero senza il "sensor." iniziale) togliamo poi il suffisso "_pubblic_ip_address".
  20.           # Così ad esempio "sensor.altro_tel_public_ip_address" diventerà "altro_tel"
  21.           tracker: "{{ trigger.from_state.object_id | regex_replace('_public_ip_address', '') }}"
  22.       - alias: "Imposta lo stato home / not_home"
  23.         service: device_tracker.see
  24.         data:
  25.           dev_id: "{{ tracker }}"
  26.           # qui viene assegnato lo stato home/not_home facendo il controllo dei due ip (locale e smartphone)
  27.           location_name: "{{ 'home' if is_state(entity, states("sensor.myip") | default("")) else 'not_home' }}"
Add Comment
Please, Sign In to add comment