Skip to content

Commit

Permalink
Update energy
Browse files Browse the repository at this point in the history
  • Loading branch information
Bre77 committed Sep 17, 2024
1 parent 106cce4 commit e87b67e
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 18 deletions.
5 changes: 4 additions & 1 deletion custom_components/teslemetry/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@
"consumer_energy_imported_from_battery",
"consumer_energy_imported_from_generator",
"total_home_usage",
"total_battery_discharge"
"total_battery_charge",
"total_battery_discharge",
"total_solar_generation",
"total_grid_energy_exported",
]

class TeslemetryUpdateType(StrEnum):
Expand Down
15 changes: 6 additions & 9 deletions custom_components/teslemetry/coordinator.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
VEHICLE_WAIT = timedelta(minutes=15)
ENERGY_LIVE_INTERVAL = timedelta(seconds=30)
ENERGY_INFO_INTERVAL = timedelta(seconds=30)
ENERGY_HISTORY_INTERVAL = timedelta(minutes=5)
ENERGY_HISTORY_INTERVAL = timedelta(seconds=30)


ENDPOINTS = [
Expand Down Expand Up @@ -59,15 +59,15 @@ def __init__(
super().__init__(
hass,
LOGGER,
name="Teslemetry Vehicle",
name=f"Teslemetry Vehicle {api.vin}",
update_interval=VEHICLE_INTERVAL,
)
self.api = api

self.data = flatten(product)
self.last_active = datetime.now()
if (self.api.pre2021):
LOGGER.info("Teslemetry will let {} sleep".format(product["vin"]))
LOGGER.info("Teslemetry will let {} sleep".format(api.vin))

async def _async_update_data(self) -> dict[str, Any]:
"""Update vehicle data using Teslemetry API."""
Expand Down Expand Up @@ -147,7 +147,7 @@ def __init__(self, hass: HomeAssistant, api: EnergySpecific) -> None:
super().__init__(
hass,
LOGGER,
name="Teslemetry Energy Site Live",
name=f"Teslemetry Energy Site Live {api.energy_site_id}",
update_interval=ENERGY_LIVE_INTERVAL,
)
self.api = api
Expand Down Expand Up @@ -197,7 +197,7 @@ def __init__(self, hass: HomeAssistant, api: EnergySpecific, product: dict) -> N
super().__init__(
hass,
LOGGER,
name="Teslemetry Energy Site Info",
name=f"Teslemetry Energy Site Info {api.energy_site_id}",
update_interval=ENERGY_INFO_INTERVAL,
)
self.api = api
Expand Down Expand Up @@ -239,7 +239,7 @@ def __init__(self, hass: HomeAssistant, api: EnergySpecific) -> None:
super().__init__(
hass,
LOGGER,
name="Teslemetry Energy History",
name=f"Teslemetry Energy History ${api.energy_site_id}",
update_interval=ENERGY_HISTORY_INTERVAL,
)
self.api = api
Expand Down Expand Up @@ -268,11 +268,8 @@ async def _async_update_data(self) -> dict[str, Any]:

# Add all time periods together
output = {key: 0 for key in ENERGY_HISTORY_FIELDS}
print(data)
for period in data.get("time_series",[]):
print(period)
for key in ENERGY_HISTORY_FIELDS:
print(key, period.get(key))
output[key] += period.get(key,0)

return output
8 changes: 6 additions & 2 deletions custom_components/teslemetry/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1049,12 +1049,16 @@ class TeslemetryEnergySensorEntityDescription(SensorEntityDescription):
SensorEntityDescription(key="version"),
)

ENERGY_HISTORY_DESCRIPTIONS: tuple[SensorEntityDescription, ...] = (
SensorEntityDescription(

ENERGY_HISTORY_DESCRIPTIONS: tuple[TeslemetryEnergySensorEntityDescription, ...] = (
TeslemetryEnergySensorEntityDescription(
key=key,
device_class=SensorDeviceClass.ENERGY,
native_unit_of_measurement=UnitOfEnergy.WATT_HOUR,
suggested_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
state_class=SensorStateClass.TOTAL_INCREASING,
entity_registry_enabled_default=(key.startswith("total") or key=="grid_energy_imported"),
value_fn=lambda x: x.get(key, 0),
) for key in ENERGY_HISTORY_FIELDS
)

Expand Down
21 changes: 15 additions & 6 deletions custom_components/teslemetry/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -817,13 +817,13 @@
}
},
"solar_energy_exported": {
"name": "Solar energy exported"
"name": "Solar exported"
},
"generator_energy_exported": {
"name": "Generator energy exported"
"name": "Generator exported"
},
"grid_energy_imported": {
"name": "Grid energy imported"
"name": "Grid imported"
},
"grid_services_energy_imported": {
"name": "Grid services energy imported"
Expand Down Expand Up @@ -865,10 +865,19 @@
"name": "Consumer energy imported from generator"
},
"total_home_usage": {
"name": "Total home usage"
"name": "Home usage"
},
"total_battery_charge": {
"name": "Battery charged"
},
"total_battery_discharge": {
"name": "Total battery discharge"
"name": "Battery discharged"
},
"total_solar_generation": {
"name": "Solar generated"
},
"total_grid_energy_exported": {
"name": "Grid exported"
}
},
"switch": {
Expand Down Expand Up @@ -1095,4 +1104,4 @@
"name": "Set valet mode"
}
}
}
}

0 comments on commit e87b67e

Please sign in to comment.