mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-20 06:27:01 +01:00
Add weather service call functionality and fix weather forecast assignment (#1349)
This commit is contained in:
@@ -382,8 +382,14 @@ class LuiPagesGen(object):
|
|||||||
elif entityType == "weather":
|
elif entityType == "weather":
|
||||||
entityTypePanel = "text"
|
entityTypePanel = "text"
|
||||||
unit = get_attr_safe(entity, "temperature_unit", "")
|
unit = get_attr_safe(entity, "temperature_unit", "")
|
||||||
if type(item.stype) == int and len(entity.attributes['forecast']) >= item.stype:
|
if type(item.stype) == int:
|
||||||
fdate = dp.parse(entity.attributes['forecast'][item.stype]['datetime'])
|
results = apis.ha_api.call_service(
|
||||||
|
"weather/get_forecasts", target={"entity_id": entityId}, service_data={"type": "daily"}
|
||||||
|
)
|
||||||
|
forecast = results.get("result", {}).get("response", {}).get(entityId, {}).get('forecast') or entity.attributes.get('forecast', [])
|
||||||
|
if len(forecast) >= item.stype:
|
||||||
|
day_forecast = forecast[item.stype]
|
||||||
|
fdate = dp.parse(day_forecast['datetime'])
|
||||||
global babel_spec
|
global babel_spec
|
||||||
if babel_spec is not None:
|
if babel_spec is not None:
|
||||||
dateformat = "E" if item.nameOverride is None else item.nameOverride
|
dateformat = "E" if item.nameOverride is None else item.nameOverride
|
||||||
@@ -391,9 +397,11 @@ class LuiPagesGen(object):
|
|||||||
else:
|
else:
|
||||||
dateformat = "%a" if item.nameOverride is None else item.nameOverride
|
dateformat = "%a" if item.nameOverride is None else item.nameOverride
|
||||||
name = fdate.astimezone().strftime(dateformat)
|
name = fdate.astimezone().strftime(dateformat)
|
||||||
icon_id = get_icon_ha(entityId, stateOverwrite=entity.attributes['forecast'][item.stype]['condition'])
|
icon_id = get_icon_ha(entityId, stateOverwrite=day_forecast['condition'])
|
||||||
value = f'{entity.attributes['forecast'][item.stype].get("temperature", "")}{unit}'
|
value = f'{day_forecast.get("temperature", "")}{unit}'
|
||||||
color = self.get_entity_color(entity, ha_type=entityType, stateOverwrite=entity.attributes['forecast'][item.stype]['condition'], overwrite=colorOverride)
|
color = self.get_entity_color(entity, ha_type=entityType, stateOverwrite=day_forecast['condition'], overwrite=colorOverride)
|
||||||
|
else:
|
||||||
|
value = f'{get_attr_safe(entity, "temperature", "")}{unit}'
|
||||||
else:
|
else:
|
||||||
value = f'{get_attr_safe(entity, "temperature", "")}{unit}'
|
value = f'{get_attr_safe(entity, "temperature", "")}{unit}'
|
||||||
elif entityType == "valve":
|
elif entityType == "valve":
|
||||||
|
|||||||
Reference in New Issue
Block a user