Category Archives: Uncategorized

Privacitat en dades de salut


De la identificació a la utilitat: conceptes clau sobre de-identificació, anonimització i re-identificació

Objectiu: Proporcionar una base inicial de referència, especialment orientat a dades de salut, sobre els conceptes de de-identificació, pseudonimització, anonimització i re-identificació, els principals models i tècniques de protecció, i el compromís entre privacitat, utilitat i equitat.

1. Conceptes bàsics

En un conjunt de dades de salut es poden distingir diferents tipus d’atributs segons la seva capacitat d’identificar una persona o revelar informació sobre ella.

Tipus d’atributDefinicióExemples
Identificador directeAtribut que permet identificar directament una persona.Nom i cognoms, DNI/NIE, número d’història clínica, correu electrònic personal.
Quasi-identificador (QI)Atribut que no identifica necessàriament una persona per si sol, però que pot contribuir a identificar-la quan es combina amb altres atributs o amb fonts externes.Edat, sexe, codi postal, professió, dates d’ingrés o alta, diagnòstics poc freqüents.
Atribut sensibleInformació especialment delicada sobre una persona, la divulgació de la qual pot produir un perjudici o revelar característiques protegides o íntimes.Estat de salut, diagnòstics, tractaments, dades genètiques, origen ètnic, orientació sexual.
Atribut no sensibleAtribut que, en el context concret, no es classifica com a identificador directe, quasi-identificador o atribut sensible.Determinades variables administratives sense capacitat identificadora ni contingut sensible.

Idea clau

La privacitat no es trenca només perquè hi hagi un nom o un DNI. Una combinació de quasi-identificadors pot permetre singularitzar una persona o enllaçar-la amb una altra font d’informació.

A més, la classificació d’un atribut depèn del context: una variable aparentment innòcua pot esdevenir identificadora quan es combina amb altres dades.

2. De-identificació, pseudonimització i anonimització

Són conceptes relacionats, però no equivalents.

2.1 De-identificació

La de-identificació és un terme ampli que engloba tècniques orientades a reduir la capacitat d’associar unes dades amb una persona concreta.

Pot incloure, entre altres mesures:

  • eliminació d’identificadors directes;
  • generalització;
  • supressió;
  • pseudonimització;
  • pertorbació;
  • micro-agregació.

La de-identificació no implica necessàriament que les dades deixin de ser dades personals, ja que pot continuar existint risc d’identificació mitjançant informació residual o fonts externes.

2.2 Pseudonimització

La pseudonimització substitueix els identificadors directes per codis, pseudònims o tokens, de manera que la vinculació amb la identitat original requereix informació addicional conservada separadament.

Exemple:

NHC 123456 → PSEU-A94F21

Si existeix una taula o sistema que permet recuperar la correspondència, el procés és reversible per a l’actor que disposa d’aquesta informació.

Important: les dades pseudonimitzades continuen sent dades personals en el marc del RGPD.

2.3 Anonimització

L’anonimització és un procés orientat a transformar les dades de manera que la identificació de la persona deixi de ser raonablement probable en el context considerat.

Aquesta valoració depèn, entre altres factors, de:

  • la informació auxiliar disponible;
  • la tecnologia existent;
  • el cost i el temps necessaris;
  • les capacitats previsibles d’un possible atacant;
  • l’evolució tecnològica al llarg del temps.

Per això és preferible evitar formulacions absolutes com “aquestes dades no es poden re-identificar en cap circumstància”.

Esquema conceptual

Dades identificades
↓ reducció d’identificadors i risc
Dades de-identificades / pseudonimitzades
↓ transformacions addicionals + avaluació del risc
Dades anonimitzades, quan la identificació deixa de ser raonablement probable en el context considerat.

3. Models o criteris de privacitat

Aquí mantindria les fitxes de:

3.1 k-anonymity

Descripció
Un conjunt de dades compleix k-anonymity quan cada registre és indistingible, respecte dels quasi-identificadors seleccionats, d’almenys k−1 registres més.

Avantatges

  • És relativament fàcil d’entendre i d’interpretar.
  • Limita la singularitat dels registres respecte dels quasi-identificadors.
  • És un model àmpliament utilitzat en Statistical Disclosure Control.

Inconvenients

  • No protegeix necessàriament davant la divulgació d’atributs sensibles.
  • Pot ser vulnerable a l’atac d’homogeneïtat.
  • Pot requerir nivells elevats de generalització o supressió, amb pèrdua d’utilitat.

Exemple
Si k = 5, cada combinació de sexe, grup d’edat i zona geogràfica ha d’aparèixer com a mínim en cinc registres.

Referència
Sweeney, L. (2002). “k-Anonymity: A Model for Protecting Privacy”. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 10(5), 557–570.

3.2 l-diversity

Descripció
Extensió de k-anonymity que introdueix un requisit de diversitat dels atributs sensibles dins de cada classe d’equivalència.

Avantatges

  • Redueix alguns problemes de divulgació d’atributs presents en k-anonymity.
  • Té en compte no només la identificabilitat sinó també la informació sensible continguda en cada grup.

Inconvenients

  • Pot ser difícil d’assolir quan hi ha valors sensibles poc freqüents.
  • Existeixen diferents definicions de l-diversity (distinct, entropy, etc.).
  • Pot requerir transformacions importants i reduir la utilitat.

Exemple
En la variant distinct l-diversity, una classe amb l = 3 ha de contenir almenys tres valors diferents adequadament representats de l’atribut sensible.

Referència
Machanavajjhala, A.; Kifer, D.; Gehrke, J.; Venkitasubramaniam, M. (2007). “l-Diversity: Privacy Beyond k-Anonymity”. ACM Transactions on Knowledge Discovery from Data, 1(1).

3.3 t-closeness

Descripció
Exigeix que la distribució d’un atribut sensible dins de cada classe d’equivalència sigui propera a la distribució d’aquest atribut en el conjunt global. La distància entre ambdues distribucions no pot superar un llindar t.

Avantatges

  • Redueix alguns problemes d’inferència que poden persistir amb k-anonymity i l-diversity.
  • Considera la distribució de l’atribut sensible, no només la seva diversitat.

Inconvenients

  • És més complex de calcular i implementar.
  • Pot exigir transformacions importants.
  • Pot reduir considerablement la utilitat de les dades.

Exemple
Si una determinada malaltia té una prevalença global del 10 %, les classes d’equivalència no haurien de presentar distribucions excessivament allunyades d’aquest patró segons la mètrica i el t escollits.

Referència
Li, N.; Li, T.; Venkatasubramanian, S. (2007). “t-Closeness: Privacy Beyond k-Anonymity and l-Diversity”. IEEE ICDE, 106–115.

3.4 Privacitat Diferencial

Descripció
Model que proporciona garanties formals limitant fins a quin punt la inclusió o exclusió d’un individu pot modificar la distribució dels resultats d’un mecanisme aleatoritzat.

Avantatges

  • Proporciona una garantia formal i quantificable.
  • No depèn de suposar quina informació auxiliar té un atacant.
  • Disposa de propietats matemàtiques de composició.

Inconvenients

  • Pot requerir soroll que afecti la precisió dels resultats.
  • L’elecció d’ε i δ no és trivial.
  • Pot ser difícil d’implementar i interpretar correctament.

Exemple
Afegir soroll calibrat a una consulta estadística de manera que la seva resposta sigui molt similar tant si un individu concret és al dataset com si no hi és.

Referència
Dwork, C. (2006). “Differential Privacy”. ICALP, LNCS 4052, 1–12.

Important:k, l, t i ε no constitueixen una escala comuna de privacitat.

Important:

k, l, t i ε no formen una escala comuna de privacitat.

ModelPrincipal propietat que controla
k-anonymitySingularitat
l-diversityDiversitat dels atributs sensibles
t-closenessDiferència entre distribucions
Privacitat DiferencialInfluència d’un individu

4. Tècniques de transformació de dades

4.1 Generalització

Descripció
Substitució de valors específics per valors menys precisos o categories més àmplies per reduir la singularitat dels quasi-identificadors.

Avantatges

  • Relativament senzilla d’implementar.
  • Pot ser molt efectiva per aconseguir k-anonymity.
  • Manté tots els registres si no s’acompanya de supressió.

Inconvenients

  • Redueix la granularitat de les dades.
  • Pot alterar distribucions i associacions.
  • Pot afectar especialment grups petits o valors extrems.

Exemple
Data de naixement: 17/03/1972 → Any de naixement: 1972

o bé

Codi postal 43001 → 430**

Referència
Samarati, P. (2001). “Protecting Respondents’ Identities in Microdata Release”. IEEE Transactions on Knowledge and Data Engineering, 13(6), 1010–1027.

4.2 Supressió de dades

Descripció
Eliminació de valors, atributs o registres que poden contribuir a la identificació.

Avantatges

  • Molt senzilla d’aplicar.
  • Pot eliminar identificadors directes o casos altament singulars.
  • Sovint es combina amb generalització.

Inconvenients

  • Implica pèrdua directa d’informació.
  • Pot alterar la composició de la mostra.
  • La supressió de registres rars pot afectar diferencialment determinats subgrups.
  • Eliminar identificadors directes no és suficient si persisteixen quasi-identificadors.

Exemple
Eliminar el nom i el DNI; o suprimir un registre amb una combinació excepcionalment singular de variables.

Referència
Hundepool, A. et al. (2012). Statistical Disclosure Control. Wiley.

4.3 Pertorbació de dades

Descripció
Modificació dels valors originals mitjançant soroll o altres transformacions aleatòries per dificultar la recuperació exacta de la informació individual.

Avantatges

  • Pot preservar determinades propietats estadístiques agregades.
  • Pot permetre conservar totes les observacions.
  • És configurable segons la magnitud de la pertorbació.

Inconvenients

  • Pot introduir biaix o error.
  • Pot modificar correlacions i associacions.
  • Una pertorbació insuficient pot proporcionar poca protecció; una d’excessiva pot destruir utilitat.

Exemple
Afegir soroll aleatori a una variable numèrica, com ara una edat, una despesa o una mesura clínica.

Referència
Muralidhar, K.; Sarathy, R. (2003). “A General Additive Data Perturbation Method for Database Security”. Management Science, 49(10), 1208–1223.

4.4 Micro-agregació

Descripció
Agrupació dels registres en grups petits d’individus similars i substitució dels valors individuals per un valor representatiu, habitualment la mitjana o un centroide.

Avantatges

  • Redueix la singularitat dels registres.
  • Pot preservar millor algunes propietats estadístiques que una generalització molt agressiva.
  • És especialment útil per a variables numèriques.

Inconvenients

  • Redueix variabilitat dins dels grups.
  • Pot desplaçar valors extrems.
  • Pot alterar correlacions i estimacions.

Exemple
Per a cinc pacients amb edats similars, substituir les cinc edats originals per la mitjana del grup.

Referència
Hundepool, A., Domingo-Ferrer, J., Franconi, L., Giessing, S., Schulte Nordholt, E., Spicer, K., &
de Wolf, P. (2012). “Statistical Disclosure Control.” Wiley Series in Survey Methodology.

4.5 Permutació

Descripció
Reordenació dels valors d’una variable entre registres, mantenint la distribució marginal però trencant la correspondència original amb altres variables.

Avantatges

  • Manté la distribució de la variable permutada.
  • Pot dificultar l’enllaç directe entre atributs.

Inconvenients

  • Pot destruir correlacions i relacions multivariants.
  • Pot afectar fortament l’analytical utility.
  • La protecció depèn de com es faci la permutació.

Exemple
Permutar els valors d’un atribut sensible entre registres similars.

4.6 Reducció de precisió / truncament

Descripció
Reducció deliberada del detall amb què es publica una dada.

Avantatges

  • Senzilla d’implementar.
  • Redueix singularitat.
  • Pot conservar una part important de la informació.

Inconvenients

  • Pot impedir anàlisis que requereixen granularitat.
  • Pot alterar estudis temporals o de valors extrems.

Exemple

  • 12/05/2026 → maig de 2026
  • 84,73 kg → 85 kg

4.7 Agregació

Descripció
Substitució de dades individuals per estadístiques o categories agregades.

Avantatges

  • Redueix considerablement l’exposició de dades individuals.
  • És útil quan la finalitat de l’estudi només necessita resultats poblacionals.

Inconvenients

  • Impedeix moltes anàlisis a nivell individual.
  • Pot ocultar heterogeneïtat.
  • Pot eliminar subgrups petits.

Exemple
Publicar nombre de casos per grup d’edat i regió en lloc dels registres individuals.

5. Pseudonimització i mesures complementàries

5.1 Pseudonimització

Descripció
Substitució dels identificadors per pseudònims o codis mantenint separada la informació que permet recuperar la correspondència.

Avantatges

  • Redueix l’exposició d’identificadors.
  • Permet longitudinalitat i enllaç controlat de registres.
  • Molt útil en recerca clínica.

Inconvenients

  • Continua sent dada personal.
  • La seguretat depèn de la protecció de la informació addicional.
  • No protegeix per si sola davant quasi-identificadors.

Exemple
DNI → ID pacient A38F72.

Referència
Article 29 Working Party. Opinion 05/2014 on Anonymisation Techniques.

5.2 Tokenització

Substitució d’identificadors per codis o tokens.

Quan existeix una correspondència recuperable amb la identitat original, s’ha de considerar una forma de pseudonimització, no d’anonimització.

Important: si existeix un sistema que permet convertir el token en la dada original, el resultat és pseudonimització, no anonimització.

5.3 Xifratge

Descripció
Transformació criptogràfica de les dades que només permet recuperar el contingut amb les claus adequades.

Avantatges

  • Protegeix confidencialitat en trànsit i en repòs.
  • És una mesura essencial de seguretat.

Inconvenients

  • No redueix intrínsecament la identificabilitat un cop desxifrades.
  • Requereix gestió segura de claus.
  • No constitueix anonimització.

Exemple
AES per xifrar una base de dades.

Referència
NIST FIPS 197, Advanced Encryption Standard

6. Dades sintètiques

Descripció
Generació artificial de dades que intenten reproduir determinades propietats del dataset real.

Avantatges

  • Pot reduir l’exposició directa de registres reals.
  • Pot ser útil per a proves, desenvolupament i escenaris experimentals.
  • Permet controlar determinades propietats del dataset.

Inconvenients

  • Pot perdre fidelitat.
  • Pot alterar subgrups i relacions multivariants.
  • Pot memoritzar o revelar informació del dataset font.
  • No és anònima automàticament.

Exemple
Generar una cohort sintètica amb distribucions d’edat, sexe, diagnòstics i esdeveniments similars a una cohort real.

Referència
Abowd, J. M.; Vilhuber, L. (2008). “How Protective Are Synthetic Data?”. Privacy in Statistical Databases, 239–246.

7. Re-identificació i divulgació d’informació

La re-identificació no és un únic tipus d’atac. És útil agrupar els principals mecanismes de risc en quatre categories.

7.1 Singling out — aïllament

Capacitat d’aïllar un individu o un registre únic dins del dataset.

Exemple: una combinació molt singular d’edat, diagnòstic i municipi.

7.2 Linkability — enllaç

Capacitat d’enllaçar registres corresponents a la mateixa persona entre datasets diferents.

Exemple: combinar data de naixement, sexe i codi postal amb una altra font.

7.3 Inferència

Capacitat d’inferir amb probabilitat elevada un atribut sensible d’una persona encara que no se n’hagi recuperat directament la identitat.

Exemple: saber que tots els individus d’un grup k-anònim tenen el mateix diagnòstic.

Atacs avançats

Segons el tipus de dades i sistema poden ser rellevants:

  • membership inference;
  • attribute inference;
  • model inversion;
  • reconstrucció de dades;
  • atacs d’enllaç basats en informació externa massiva.

8. El compromís privacitat – utilitat – equitat

Qualsevol tècnica de de-identificació o anonimització implica un compromís entre la protecció que proporciona i l’impacte que produeix sobre les dades.

8.1 Protecció de la privacitat

Cal valorar:

  • quina garantia proporciona el model;
  • quin risc residual queda en el context real d’ús.

8.2 Data utility

Avalua si es preserven les propietats del dataset.

Exemples:

  • distribucions;
  • freqüències;
  • mitjanes i medianes;
  • percentils;
  • correlacions;
  • subgrups;
  • temporalitat;
  • outliers.

8.3 Analytical utility

Avalua si es preserven els resultats de les anàlisis.

Cal considerar:

  • magnitud dels efectes;
  • direcció;
  • incertesa;
  • intervals de confiança;
  • tendències;
  • interpretació;
  • conclusions.

8.4 Equitat

L’impacte no ha de ser necessàriament homogeni entre subgrups.

Una transformació pot afectar de manera desproporcionada:

  • malalties rares;
  • grups d’edat extrems;
  • perfils clínics poc freqüents;
  • col·lectius petits.

Per tant, una tècnica pot preservar correctament els resultats globals i, al mateix temps, alterar de manera rellevant els resultats d’un subgrup.

Principi de decisió contextual

No existeix necessàriament una única tècnica “millor”.

L’adequació depèn de:

  1. les característiques del dataset;
  2. el context d’ús i la sensibilitat;
  3. el model de privacitat;
  4. el nivell de protecció requerit;
  5. la finalitat analítica;
  6. la pèrdua acceptable d’utilitat;
  7. l’impacte diferencial sobre subgrups;
  8. la robustesa i reproductibilitat dels resultats.

Esquema de decisió

Context i finalitat analítica

Protecció requerida

Tècniques/configuracions candidates

Protecció assolida

Data utility

Analytical utility + equitat

Descartar configuracions no admissibles

Seleccionar la configuració més adequada

Missatge clau

La de-identificació i l’anonimització no s’han d’avaluar només per la protecció que ofereixen. Cal considerar conjuntament el risc d’identificació, la utilitat de les dades, la validesa dels resultats i l’impacte diferencial sobre els subgrups.

Aquesta perspectiva és especialment rellevant en dades de salut, on una transformació que sembla acceptable a escala global pot modificar precisament aquells casos clínics poc freqüents que són més sensibles des del punt de vista analític i d’equitat.

Com eliminar o fusionar un vehicle de substitució (loaner) a TeslaMate // How to Remove or Merge a Loaner Vehicle in TeslaMate

(Nota: Trobareu la versió en anglès d’aquest tutorial al final de l’article / You will find the English version of this tutorial at the end of the post).

Quan Tesla et deixa un cotxe de substitució o de cortesia, TeslaMate el detecta i el crea automàticament a la base de dades com a un vehicle nou. Això fa que la interfície es quedi amb dades residuals d’un cotxe que ja no utilitzes. Com que la interfície web de TeslaMate no inclou una opció directament per gestionar o esborrar vehicles secundaris, cal accedir a la base de dades PostgreSQL.

En aquest tutorial veurem com eliminar completament el vehicle de substitució o, alternativament, com fusionar les seves dades de trajectes i càrregues amb el teu cotxe principal.

Entorn: Aquest exemple està basat en una instal·lació de TeslaMate corrent dins d’un contenidor Docker en un NAS Synology. Si utilitzes un altre entorn (un servidor Linux dedicat, un Raspberry Pi o un altre hypervisor), el procediment SQL serà exactament el mateix, però hauràs d’adaptar el mètode per connectar-te per SSH o accedir a la terminal del teu sistema.

Avís de seguretat: Abans de fer qualsevol modificació a la base de dades, és altament recomanable fer una còpia de seguretat (backup) de TeslaMate.

Pas 1: Connectar-se al servidor per SSH

Accedeix a la terminal del teu NAS Synology o servidor via SSH utilitzant el port que tinguis configurat (si utilitzes un port personalitzat com el 50022, recorda utilitzar el paràmetre -p):

Bash

ssh -p 50022 usuari@IP_DEL_TEU_NAS

Pas 2: Accedir a la base de dades PostgreSQL de TeslaMate

Utilitza la comanda docker exec indicant el nom del contenidor de la teva base de dades (habitualment teslamate-database-1 o teslamate_database_1) per obrir la consola interactiva de PostgreSQL:

Bash

docker exec -it teslamate-database-1 psql -U teslamate teslamate

Pas 3: Identificar els IDs dels vehicles

Un cop a dins del prompt de PostgreSQL (teslamate=#), consulta la llista de vehicles registrats:

SQL

SELECT id, vin, model FROM cars;

Preneu nota dels id:

  • Cotxe Principal (ex. id = 1)
  • Cotxe de Substitució (ex. id = 2)

Pas 4: Triar entre opció A (Eliminar) o opció B (Fusionar)

Opció A: Eliminar completament el vehicle de substitució

Aquesta opció esborra tot el registre, trajectes, posicions i càrregues del cotxe de cortesia sense deixar cap rastre.

SQL

DELETE FROM cars WHERE id = 2;
DELETE FROM car_settings WHERE id = 2;
DELETE FROM charges WHERE charging_process_id IN (SELECT id FROM charging_processes WHERE car_id = 2);
DELETE FROM charging_processes WHERE car_id = 2;
DELETE FROM drives WHERE car_id = 2;
DELETE FROM positions WHERE car_id = 2;
DELETE FROM states WHERE car_id = 2;
DELETE FROM updates WHERE car_id = 2;

Opció B: Fusionar les dades amb el vehicle principal

Si vols conservar els quilòmetres i el consum d’energia realitzat durant aquelles setmanes, pots reassignar tot l’historial del cotxe de substitució (ID 2) al teu cotxe principal (ID 1) abans d’eliminar el vehicle secundari.

  • Pros: Conservador de quilòmetres totals recorreguts, consums d’energia generals i despeses de càrrega d’aquell període als teus panells de Grafana.
  • Contres: Si el cotxe de cortesia tenia un model/bateria diferent (ex. bateria NCA vs LFP) o una mida de rodes diferent, pot distorsionar lleugerament les estadístiques d’eficiència i estimació de degradació. També pot generar un petit salt en la gràfica d’odòmetre si el cotxe deixat tenia un quilometratge total diferent.

SQL

-- 1. Reassignar historial de dades al cotxe principal (ID 1)
UPDATE charging_processes SET car_id = 1 WHERE car_id = 2;
UPDATE drives SET car_id = 1 WHERE car_id = 2;
UPDATE positions SET car_id = 1 WHERE car_id = 2;
UPDATE states SET car_id = 1 WHERE car_id = 2;
UPDATE updates SET car_id = 1 WHERE car_id = 2;

-- 2. Eliminar l'entrada del cotxe secundari
DELETE FROM car_settings WHERE id = 2;
DELETE FROM cars WHERE id = 2;

Pas 5: Optimitzar la base de dades i sortir

Per assegurar-te que els índexs de la base de dades queden actualitzats i l’espai s’allibera correctament, executa:

SQL

REINDEX DATABASE teslamate;

Finalment, surt de la consola SQL:

SQL

\q

Un cop finalitzat el procés, quan tornis a carregar la interfície de TeslaMate o Grafana, les canvis es reflectiran immediatament.

How to Remove or Merge a Loaner Vehicle in TeslaMate

When Tesla assigns you a loaner or service vehicle, TeslaMate automatically detects it and creates a new entry in your database. This leaves residual data in your dashboard for a car you no longer drive. Since the TeslaMate web UI does not currently feature a direct option to delete or manage secondary vehicles, you need to manually access the underlying PostgreSQL database.

This guide covers two methods: completely purging the loaner vehicle, or merging its driving and charging data into your main vehicle.

Environment Note: This tutorial is based on a setup running TeslaMate inside Docker containers on a Synology NAS. If your setup runs on a different environment (such as a dedicated Linux server, a Raspberry Pi, or another hypervisor), the SQL queries remain identical, but you will need to adjust your method for accessing your system’s SSH terminal or container environment.

Warning: Before performing any manual modifications to your database, it is strongly recommended to create a full backup of your TeslaMate instance.

Step 1: Connect to your server via SSH

Open your terminal and connect to your Synology NAS or server via SSH using your configured port (if using a custom SSH port like 50022, use the -p flag):

Bash

ssh -p 50022 username@YOUR_NAS_IP

Step 2: Access the TeslaMate PostgreSQL Database

Use the docker exec command along with your database container name (commonly teslamate-database-1 or teslamate_database_1) to open the interactive PostgreSQL shell:

Bash

docker exec -it teslamate-database-1 psql -U teslamate teslamate

Step 3: Identify Vehicle IDs

Once inside the PostgreSQL prompt (teslamate=#), list all registered vehicles:

SQL

SELECT id, vin, model FROM cars;

Take note of the IDs:

  • Main Vehicle (e.g., id = 1)
  • Loaner Vehicle (e.g., id = 2)

Step 4: Choose Option A (Delete) or Option B (Merge)

Option A: Completely delete the loaner vehicle

This completely purges all drives, charging sessions, and telemetry associated with the temporary car.

SQL

DELETE FROM cars WHERE id = 2;
DELETE FROM car_settings WHERE id = 2;
DELETE FROM charges WHERE charging_process_id IN (SELECT id FROM charging_processes WHERE car_id = 2);
DELETE FROM charging_processes WHERE car_id = 2;
DELETE FROM drives WHERE car_id = 2;
DELETE FROM positions WHERE car_id = 2;
DELETE FROM states WHERE car_id = 2;
DELETE FROM updates WHERE car_id = 2;

Option B: Merge data into your main vehicle

If you want to keep track of the distance driven and energy consumed during the loaner period, you can reassign all history from the loaner car (ID 2) to your primary car (ID 1) before removing the loaner entry.

  • Pros: Retains overall distance driven, total energy consumption, and charging costs from that period in your main Grafana dashboards.
  • Cons: If the loaner car had a different battery chemistry or wheel size, it might slightly distort your efficiency and degradation calculations. It could also cause a jump in your odometer graph if the loaner car had a significantly different total odometer reading.

SQL

-- 1. Reassign telemetry and history to the primary car (ID 1)
UPDATE charging_processes SET car_id = 1 WHERE car_id = 2;
UPDATE drives SET car_id = 1 WHERE car_id = 2;
UPDATE positions SET car_id = 1 WHERE car_id = 2;
UPDATE states SET car_id = 1 WHERE car_id = 2;
UPDATE updates SET car_id = 1 WHERE car_id = 2;

-- 2. Delete the secondary car entry
DELETE FROM car_settings WHERE id = 2;
DELETE FROM cars WHERE id = 2;

Step 5: Reindex the Database and Exit

To rebuild database indexes and clean up cleanly, run:

SQL

REINDEX DATABASE teslamate;

Then exit the PostgreSQL shell:

SQL

\q

Upon refreshing your TeslaMate and Grafana dashboards, the changes will take effect immediately.