From 3e18ac3a1bf1d78e979db59c45912f5bf217251e Mon Sep 17 00:00:00 2001 From: Adam Stiskala Date: Sun, 24 Oct 2021 21:04:53 +1100 Subject: [PATCH 1/2] Fix handling of multiple results --- custom_components/google_geocode/sensor.py | 43 +++++++++++++--------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/custom_components/google_geocode/sensor.py b/custom_components/google_geocode/sensor.py index c536d2a..c3f2046 100644 --- a/custom_components/google_geocode/sensor.py +++ b/custom_components/google_geocode/sensor.py @@ -212,31 +212,40 @@ def update(self): for result in decoded["results"]: for component in result["address_components"]: if 'street_number' in component["types"]: - street_number = component["long_name"] - self._street_number = street_number + if street_number == '': + street_number = component["long_name"] + self._street_number = street_number if 'route' in component["types"]: - street = component["long_name"] - self._street = street + if street == 'Unnamed Road': + street = component["long_name"] + self._street = street if 'sublocality_level_1' in component["types"]: - alt_street = component["long_name"] + if alt_street == 'Unnamed Road': + alt_street = component["long_name"] if 'postal_town' in component["types"]: - postal_town = component["long_name"] - self._postal_town = postal_town + if postal_town == '': + postal_town = component["long_name"] + self._postal_town = postal_town if 'locality' in component["types"]: - city = component["long_name"] - self._city = city + if city == '': + city = component["long_name"] + self._city = city if 'administrative_area_level_1' in component["types"]: - state = component["long_name"] - self._region = state + if state == '': + state = component["long_name"] + self._region = state if 'administrative_area_level_2' in component["types"]: - county = component["long_name"] - self._county = county + if county == '': + county = component["long_name"] + self._county = county if 'country' in component["types"]: - country = component["long_name"] - self._country = country + if country == '': + country = component["long_name"] + self._country = country if 'postal_code' in component["types"]: - postal_code = component["long_name"] - self._postal_code = postal_code + if postal_code == '': + postal_code = component["long_name"] + self._postal_code = postal_code try: if 'formatted_address' in decoded['results'][0]: From 93ef9161a6fc6094dbf858d1a09ebd0a7804deeb Mon Sep 17 00:00:00 2001 From: Adam Stiskala Date: Sun, 24 Oct 2021 21:17:57 +1100 Subject: [PATCH 2/2] Bug fix --- custom_components/google_geocode/sensor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/custom_components/google_geocode/sensor.py b/custom_components/google_geocode/sensor.py index c3f2046..839eec1 100644 --- a/custom_components/google_geocode/sensor.py +++ b/custom_components/google_geocode/sensor.py @@ -208,6 +208,7 @@ def update(self): state = '' county = '' country = '' + postal_code = '' for result in decoded["results"]: for component in result["address_components"]: