From 474fc21c66105a6b6ae5ac61639c04be9e372279 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 7 Apr 2019 01:17:14 -0700 Subject: [PATCH] Fix for optional values in the update_location webhook call (#22817) * Fix for optional values in the update_location webhook call * Square brackets instead of .get --- .../components/mobile_app/webhook.py | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/mobile_app/webhook.py b/homeassistant/components/mobile_app/webhook.py index a57d3930f50544..7a83ba4e978f34 100644 --- a/homeassistant/components/mobile_app/webhook.py +++ b/homeassistant/components/mobile_app/webhook.py @@ -145,18 +145,26 @@ async def handle_webhook(hass: HomeAssistantType, webhook_id: str, if webhook_type == WEBHOOK_TYPE_UPDATE_LOCATION: see_payload = { ATTR_DEV_ID: registration[ATTR_DEVICE_ID], - ATTR_LOCATION_NAME: data.get(ATTR_LOCATION_NAME), - ATTR_GPS: data.get(ATTR_GPS), - ATTR_GPS_ACCURACY: data.get(ATTR_GPS_ACCURACY), - ATTR_BATTERY: data.get(ATTR_BATTERY), - ATTR_ATTRIBUTES: { - ATTR_SPEED: data.get(ATTR_SPEED), - ATTR_ALTITUDE: data.get(ATTR_ALTITUDE), - ATTR_COURSE: data.get(ATTR_COURSE), - ATTR_VERTICAL_ACCURACY: data.get(ATTR_VERTICAL_ACCURACY), - } + ATTR_GPS: data[ATTR_GPS], + ATTR_GPS_ACCURACY: data[ATTR_GPS_ACCURACY], } + for key in (ATTR_LOCATION_NAME, ATTR_BATTERY): + value = data.get(key) + if value is not None: + see_payload[key] = value + + attrs = {} + + for key in (ATTR_ALTITUDE, ATTR_COURSE, + ATTR_SPEED, ATTR_VERTICAL_ACCURACY): + value = data.get(key) + if value is not None: + attrs[key] = value + + if attrs: + see_payload[ATTR_ATTRIBUTES] = attrs + try: await hass.services.async_call(DT_DOMAIN, DT_SEE, see_payload,