Reverse Geocode Sensor ("Places") using OpenStreetMap - custom component

So I’ve not found a way to programmatically determine the region’s date format from HASS. I am using the system’s locale data but that may not actually be set on your system (which is common on machines running HASS from my experience).

If you are so motivated, can you update places to v2.4.5, enable debug logging and restart HASS. Then look in the HASS System Logs for the for the places init lines that show what locale it is detecting as well as date format for that locale. It should look like:

2023-08-28 18:28:44.642 DEBUG (MainThread) [custom_components.places.sensor] (Snuffy2s Place) [Init] Locale: ('en_US', 'UTF-8')
2023-08-28 18:28:44.642 DEBUG (MainThread) [custom_components.places.sensor] (Snuffy2s Place) [Init] Locale Date Format: %m/%d/%y

Still incorrect format:

2023-08-30 08:34:05.907 INFO (MainThread) [custom_components.places.sensor] (GregH) [Init] Places sensor: GregH
2023-08-30 08:34:05.907 DEBUG (MainThread) [custom_components.places.sensor] (GregH) [Init] Locale: ('en_US', 'UTF-8')
2023-08-30 08:34:05.907 DEBUG (MainThread) [custom_components.places.sensor] (GregH) [Init] Locale Date Format: %m/%d/%y

I’m in Australia so format should be ddmmyy

If I run docker inspect on the HA container:

root@omv:~# docker inspect 166931e562db | locale
LANG=en_AU.UTF-8
LANGUAGE=en_AU:en
LC_CTYPE="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_TIME="en_AU.UTF-8"
LC_COLLATE="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_PAPER="en_AU.UTF-8"
LC_NAME="en_AU.UTF-8"
LC_ADDRESS="en_AU.UTF-8"
LC_TELEPHONE="en_AU.UTF-8"
LC_MEASUREMENT="en_AU.UTF-8"
LC_IDENTIFICATION="en_AU.UTF-8"
LC_ALL=
root@omv:~#

So far, I have not been able to get the correct locale from HA settings available to an integration. Additionally, it appears that the python locale may be grabbing the system’s locale rather than the docker’s locale.

Not sure it matters, but what type of HA install are you running (HA OS, Supervised, Container, Core, etc.)?
If you type locale directly in linux, what does it show?

Mine:

pi@homeassistant:~ $ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
pi@homeassistant:~ $ docker inspect f02a3616a4bc | locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Running HA in a docker container on an OMV NAS.

Here is the output you requested:

root@omv:~# locale
LANG=en_AU.UTF-8
LANGUAGE=en_AU:en
LC_CTYPE="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_TIME="en_AU.UTF-8"
LC_COLLATE="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_PAPER="en_AU.UTF-8"
LC_NAME="en_AU.UTF-8"
LC_ADDRESS="en_AU.UTF-8"
LC_TELEPHONE="en_AU.UTF-8"
LC_MEASUREMENT="en_AU.UTF-8"
LC_IDENTIFICATION="en_AU.UTF-8"
LC_ALL=
root@omv:~# 
root@omv:~# 
root@omv:~# docker inspect 166931e562 | locale
LANG=en_AU.UTF-8
LANGUAGE=en_AU:en
LC_CTYPE="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_TIME="en_AU.UTF-8"
LC_COLLATE="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_PAPER="en_AU.UTF-8"
LC_NAME="en_AU.UTF-8"
LC_ADDRESS="en_AU.UTF-8"
LC_TELEPHONE="en_AU.UTF-8"
LC_MEASUREMENT="en_AU.UTF-8"
LC_IDENTIFICATION="en_AU.UTF-8"
LC_ALL=
root@omv:~# 
root@omv:~# 
root@omv:~# docker ps | grep 166931e562
166931e562db   ghcr.io/home-assistant/home-assistant:stable   "/init"                  11 days ago    Up 11 days                                                                                                                                                            homeassistant
root@omv:~#

Moving this to a GitHub issue. Not sure how to fix this yet so I don’t want it to fall off my list.

There is a new Release 2.5.1, is it actually released?
Asking because my re-downloaded “manifest.json” shows “2.5”.

Is there a way to check if the current location is at a gas station?

You could go to a gas station and see what the place_type attribute says ?

Yes, v2.5.1 is released. I typically forget to update the manifest regularly so it is generally only updated for whole or 10th number increases (ex. to v2.6 or v3).

Agreed, place_type attribute:

As a result - users cannot be sure if they have the latest version.

Hi all,

I was using a version of this integration for about 7-8 months, it was working well. But I recently updated to the latest version and when trying to create a sensor, it says ‘No devices or entities found’.

Have tried completely removing the integration and re-adding, but same error. It seems to happen with different GPS tracker types.

The logs dont seem to have any errors relating to the integration.

Hello! Thanks for this great integration. I am using Places for some automations, but I was wondering is there a way to get the state from the sensor to show up in the person-card? Or rather if I could replace the device tracker form HA app with the one from places. Problem is that places only creates a sensor, and not a device tracker of its own. Anyone else been pondering with this?

@corvy Try in Person Cards - Show Off Yours. Lots of examples.

Places require an entity which keeps coordinates - like a person or device_tracker.
Your question is rather unclear - if you need to show a person or a device_tracker on some card, why not using THAT source entity?

Hello and thanks for responding. I guess my question is a bit ambiguous. I do have device_trackers today, but the problem is when my familiy is on the HA dashboad they look at the icon on the home-page to find out where “mom” is now.

That is mostly fine. But the status could be very misleading. Often it will say “away”, 4 hours ago. Even if the location is updated recently the status has not. So in my simple mind I wanted to use the sensor from Places to replace the status of the device_tracker, or create a custom card that achieves the same, but with status from places instead of the device_tracker from the HA companion app.

Make sense?

The simpler = the better.
Prefer to use Places only to get an address, for all other needs - using person/device_tracker.

This is fantastic and exaclty what I was looking for. Thank you!

One question: I have a tile now on my dashboard that identifies people and where they are. Right now, when I click it, I get the “more information” panel.

Is there a way to click it and it takes me to google maps with the address preloaded in?

You can call an “url” type action with a web link.
But this link is stored as an attribute. To use this attribute, you will have to use a template - jinja or JS, in a card which supports templates, like config-template-card, template-entity-row, button-card. Or a stock markdown card.

Hi,

When i add the map link to an iframe card it stays blank. To keep it simple for testing, i just copy the url from the attribute map_link. This is the case with each google maps link. I think it‘s a restriction by google. With OSM i had no success as well.

Can someone post a actual working solution to show the url in iframe?

Thank you