Android Phone Finder from OpenHAB (Google Assistant and Alexa)


  • Use voice command (Google Assistant and/or Alexa) to initiate Android phone finder feature
    • “Hey Google, turn on Jim’s Phone Finder”
    • “Alexa, turn on Bob’s Phone Finder”
  • Programmatically initiate phone finder feature

When you have multiple android phones, asking Google to find my phone results in it prompting about each phone one by one. It can get quite tedious. Sometimes it would just ring the first phone.

This solution lets you ring the specific phone using an openhab item.


  • 2024-01-07 fixed the page parsing again, and make it a self-contained script. It is no longer necessary to manually create the required items.
  • 2023-03-22 fixed find_elements to find multiple phones
  • 2023-03-21 Adapted to Google’s obfuscated class names
  • 2022-12-30 Refactor and move cookie storage into metadata
  • 2022-07-23 Google stopped showing the find my phone feature in the search result. Changed the find my phone url to - the FindMyPhone#ring method is also updated accordingly


  • selenium standalone docker
  • JRuby automation addon on openHAB 4.x

Selenium Docker Setup

Using docker-compose.yml:

version: "3"
    container_name: selenium
    image: selenium/standalone-chrome
    restart: always
    shm_size: 2gb
      - "4444:4444"

Pull the image and start the docker:

$ docker-compose pull selenium
$ docker-compose up -d selenium


Please see the script’s source code for the instructions. You need to specify the list of phone names in an array.

Items setup

The necessary items will be created by the script for you.

If you have previously created the items manually, please remove them (either the .items file or through UI). They were called:

  • FindMyPhone_Cookies item
  • gPhoneFinders group
  • Find_XXXX_Phone items that correspond to your phone(s)

Don’t forget to tell Google to Sync my devices and Alexa to Discover devices

Obtain your google credential cookies

  • Open your browser, and go to
  • Make sure you’re logged in to the account that can perform the “find my phone” function.
  • Enable “Developer tool” of your browser
  • Refresh the google page (
  • Go to `Network" tab and find the first item. This should be the request to
  • Find the request header and copy the cookies. It should look like “SIDCC=xxxxx; __Secure-3PSIDCC=xxxxx; blahblah=xxxxx”
  • Send the cookie as a string command to FindMyPhone_Cookies item. This can be done in Karaf console, i.e. send FindMyPhone_Cookies "xxxxxxxx"

The Script



Google stopped showing the find my phone feature in the search result. Changed the find my phone url to

Nice work. Unfortunately I was not able to install selenium standalone docker on openHABian and I dont like JRuby. So I re-implemented the code using Node and used ChromeDriver directly.
How to use?

  • Install Node.js,
  • clone
  • install app using ‘npm install’ in project’s root directory
  • Install ChromeDriver using ‘sudo apt-get install chromium-chromedriver’
  • copy path of chromedriver binary in constructor method of app.js

Support for multiple phones is missing. I invoked the node app like this

This rule scrapes the google's 'find my phone' page to let the phone ring

var Exec = Java.type("org.openhab.core.model.script.actions.Exec");

    name: "Ring My Phone",
    description: "This rule scrapes the google 'find my phone' page to let the phone ring",
    triggers: [triggers.ChannelEventTrigger("deconz:switch:homeserver:tdfr_shortcut_findphone:buttonevent", "1002")],
    execute: data => {
        console.log("Let your phone ring...");
        Exec.executeCommandLine( 'node', '/home/openhabian/selenium-test-app/app.js', 'ring');
  name: "Refresh google cookies",
  description: "This rule reloads the google cookies needed for authentification.",
  triggers: [triggers.GenericCronTrigger("0 0 */3 ? * *")],
  execute: data => {
      console.log("Refresh google cookies...");
      Exec.executeCommandLine( 'node', '/home/openhabian/selenium-test-app/app.js', 'refresh');

Hi guys,

I’m trying to use your solution as well (the JS one in a dockerized environment). I’ve successfully deployed the selenium container and are able to debug the JS code. All seems fine, except the fact, that I’m not able to sign in to my google account. I’ve a feeling that the cookie string is not good I’m sending. My default cookie value looks like this:


Is this correct? Or am I doing something wrong? Is there any way to debug, what selenium is doing?


UPDATE: I managed to set the correct cookies using the method from the original repo, so the issue was caused by the incorrect or insufficient cookies.

Open a private tab in your browser, login to and export the cookies with EditThisCookie


  • Previously the cookies didn’t get refreshed/saved correctly so the original cookies were used and they’ll eventually expire
  • Cookies are now set using an openhab command instead of saving it in the script.
  • Store updated cookies in metadata.

Ughhhh!!! Google has now obfuscated their phone finder page.
I wish there’s an official API

I finally spent some time looking into this and adjusted the script to match Google’s new obfuscated class ids. It’s working again now!

1 Like

I’ve updated the script again, adapting to google’s changes. This time I hope it is more generic that it will continue to work longer.

Moving the code to github gist for easier editing.

See the original post at the top for the updated information and script.

What’s new: The script now creates the necessary items, making it easier to install.

1 Like