Dashboard Hardware Usage Location

I apologize if this already exists in the forum. If you know where it is feel free to provide me a link, I have searched.

My HA setup has many dashboard locations, including web browsers, android kiosks, mobile phones. Now that the year of the voice is upon us I would like to know if it is possible to identify the location / or device that was accessed by an individual. If I know what device a particular dashboard element was accessed from I could potentially have tts to that specific device. Is there a method, or automation that will report where an event was generated from so I could use this as a tts location?
Thanks.

Apparently this is either not a big topic or outside of the expertise of many on this forum. For what it’s worth I was pointed in the right direction on discord.
Basically here is a brief overview of what I needed to do.

  1. ensure I had Browser mod enabled on all my kiosks
  2. update the tap action for the mushroom template card I was using
      - type: custom:mushroom-template-card
        primary: Verse of the Day
        secondary: >
          {{ states('sensor.dayoftheweek')}}  {{ now().strftime('%B %d, %Y
          %H:%M') }}
        icon: ''
        entity: ''
        multiline_secondary: false
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: script.browser_tts
            data:
              browser_id: THIS
        hold_action:
          action: none
        double_tap_action:
          action: none
        card_mod:
          style: |
            ha-card {
              --secondary-text-color:  rgb(var(--rgb-yellow));
              --card-secondary-font-size: 0.9pc;
              --card-primary-font-size: 1.4pc;
              --primary-text-color: rgb(var(--rgb-white));
            }
  1. create a script that was conditional on what browser mode location {{ this }} was accessed.
alias: Browser TTS
sequence:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ browser_id == 'laptop' }}"
        sequence:
          - service: tts.speak
            data:
              cache: true
              media_player_entity_id: media_player.laptop
              message: >-
                "Today's Verse is, {{state_attr('sensor.daily_verse', 'text')}}
                This verse     is from book, {{state_attr('sensor.daily_verse',
                'reference')}}, using the,    
                {{state_attr('sensor.daily_verse', 'version')}} translation"
            target:
              entity_id: tts.piper
      - conditions:
          - condition: template
            value_template: "{{ browser_id == "Phone" }}"
        sequence:
          - service: tts.speak
            data:
              cache: true
              media_player_entity_id: media_player.phone
              message: >-
                "Today's Verse is, {{state_attr('sensor.daily_verse', 'text')}}
                This verse     is from book, {{state_attr('sensor.daily_verse',
                'reference')}}, using the,    
                {{state_attr('sensor.daily_verse', 'version')}} translation"
            target:
              entity_id: tts.piper
    default:
      - service: tts.speak
        data:
          cache: true
          media_player_entity_id: media_player.m5stack_atom_echo_80bcd0
          message: >-
            "Today's Verse is, {{state_attr('sensor.daily_verse', 'text')}} This
            verse     is from book, {{state_attr('sensor.daily_verse',
            'reference')}}, using the,     {{state_attr('sensor.daily_verse',
            'version')}} translation"
        target:
          entity_id: tts.piper
  - service: notify.persistent_notification
    data:
      message: This script was run from {{browser_id}}
mode: single
icon: mdi:account-voice