Redact serial numbers and tokens in Teslemetry diagnostics (#183471)

This commit is contained in:
Brett Adams
2026-09-30 09:08:26 +02:00
committed by GitHub
parent ace0ecb60a
commit 4d06b7bae4
4 changed files with 34 additions and 24 deletions
@@ -13,6 +13,7 @@ VEHICLE_REDACT = [
"vehicle_id",
"vin",
"tokens",
"backseat_token",
"id_s",
"drive_state_active_route_latitude",
"drive_state_active_route_longitude",
@@ -22,8 +23,8 @@ VEHICLE_REDACT = [
"drive_state_native_longitude",
]
ENERGY_LIVE_REDACT = ["vin"]
ENERGY_INFO_REDACT = ["installation_date"]
ENERGY_LIVE_REDACT = ["vin", "din"]
ENERGY_INFO_REDACT = ["id", "installation_date", "din", "serial_number"]
async def async_get_config_entry_diagnostics(
@@ -41,7 +42,16 @@ async def async_get_config_entry_diagnostics(
]
energysites = [
{
"live": async_redact_data(x.live_coordinator.data, ENERGY_LIVE_REDACT)
# Wall connectors are keyed by DIN, which embeds the serial number
"live": async_redact_data(
{
**x.live_coordinator.data,
"wall_connectors": list(
x.live_coordinator.data["wall_connectors"].values()
),
},
ENERGY_LIVE_REDACT,
)
if x.live_coordinator
else None,
"info": async_redact_data(x.info_coordinator.data, ENERGY_INFO_REDACT),
@@ -1,6 +1,6 @@
{
"response": {
"id": "1233-abcd",
"id": "1152100-14-J--CN00000000J50D",
"site_name": "Site",
"backup_reserve_percent": 0,
"default_real_mode": "self_consumption",
@@ -44,7 +44,7 @@
"gateways": [
{
"device_id": "gateway-id",
"din": "gateway-din",
"din": "1152100-14-J--CN00000000J50D",
"serial_number": "CN00000000J50D",
"part_number": "1152100-14-J",
"part_type": 10,
@@ -58,7 +58,7 @@
"batteries": [
{
"device_id": "battery-1-id",
"din": "battery-1-din",
"din": "3012170-10-B--TG000000001DA5",
"serial_number": "TG000000001DA5",
"part_number": "3012170-10-B",
"part_type": 2,
@@ -69,7 +69,7 @@
},
{
"device_id": "battery-2-id",
"din": "battery-2-din",
"din": "3012170-05-C--TG000000002DA5",
"serial_number": "TG000000002DA5",
"part_number": "3012170-05-C",
"part_type": 2,
@@ -15,7 +15,7 @@
"id_s": "1234",
"calendar_enabled": true,
"api_version": 71,
"backseat_token": null,
"backseat_token": "backseat-token",
"backseat_token_updated_at": null,
"ble_autopair_enrolled": false,
"charge_state": {
@@ -35,25 +35,25 @@
'components_batteries': list([
dict({
'device_id': 'battery-1-id',
'din': 'battery-1-din',
'din': '**REDACTED**',
'nameplate_energy': 13500,
'nameplate_max_charge_power': 5000,
'nameplate_max_discharge_power': 5000,
'part_name': 'Powerwall 2',
'part_number': '3012170-10-B',
'part_type': 2,
'serial_number': 'TG000000001DA5',
'serial_number': '**REDACTED**',
}),
dict({
'device_id': 'battery-2-id',
'din': 'battery-2-din',
'din': '**REDACTED**',
'nameplate_energy': 13500,
'nameplate_max_charge_power': 5000,
'nameplate_max_discharge_power': 5000,
'part_name': 'Powerwall 2',
'part_number': '3012170-05-C',
'part_type': 2,
'serial_number': 'TG000000002DA5',
'serial_number': '**REDACTED**',
}),
]),
'components_battery': True,
@@ -71,13 +71,13 @@
'components_gateways': list([
dict({
'device_id': 'gateway-id',
'din': 'gateway-din',
'din': '**REDACTED**',
'firmware_version': '24.4.0 0fe780c9',
'is_active': True,
'part_name': 'Tesla Backup Gateway 2',
'part_number': '1152100-14-J',
'part_type': 10,
'serial_number': 'CN00000000J50D',
'serial_number': '**REDACTED**',
'site_id': '1234-abcd',
'updated_datetime': '2024-05-14T00:00:00.000Z',
}),
@@ -100,20 +100,20 @@
'components_wall_connectors': list([
dict({
'device_id': '123abc',
'din': 'abd-123',
'din': '**REDACTED**',
'is_active': True,
'part_name': 'Gen 3 Wall Connector',
}),
dict({
'device_id': '234bcd',
'din': 'bcd-234',
'din': '**REDACTED**',
'is_active': True,
'part_name': 'Gen 3 Wall Connector',
}),
]),
'components_wifi_commissioning_enabled': True,
'default_real_mode': 'self_consumption',
'id': '1233-abcd',
'id': '**REDACTED**',
'installation_date': '**REDACTED**',
'installation_time_zone': 'Australia/Brisbane',
'max_site_meter_power_ac': 1000000000,
@@ -298,20 +298,20 @@
'storm_mode_active': False,
'timestamp': '2024-01-01T00:00:00+00:00',
'total_pack_energy': 40727,
'wall_connectors': dict({
'abd-123': dict({
'din': 'abd-123',
'wall_connectors': list([
dict({
'din': '**REDACTED**',
'wall_connector_fault_state': 2,
'wall_connector_power': 0,
'wall_connector_state': 2,
}),
'bcd-234': dict({
'din': 'bcd-234',
dict({
'din': '**REDACTED**',
'wall_connector_fault_state': 2,
'wall_connector_power': 0,
'wall_connector_state': 2,
}),
}),
]),
}),
}),
]),
@@ -331,7 +331,7 @@
'data': dict({
'access_type': 'OWNER',
'api_version': 71,
'backseat_token': None,
'backseat_token': '**REDACTED**',
'backseat_token_updated_at': None,
'ble_autopair_enrolled': False,
'calendar_enabled': True,