Voici la solution:
Méthode:
1) Arrêter domoticz
2) Faire une copie de la base de données (impératif pour retour arrière si problème):
Code : Tout sélectionner
sudo cp /home/pi/domoticz/domoticz.db /home/pi/domoticz/domoticz.old.db
3) Transférer domoticz.db du raspberry vers le PC avec WinSCP
4) Ouvrir domoticz.db avec DB Browser for SQLite.
5) Dans "Exécuter le SQL", entrer le code suivant pour vérifier s'il y a des doublons (plusieurs dates identiques pour le même DeviceID):
Code : Tout sélectionner
SELECT COUNT(*) AS nbr_doublon, DeviceRowID, date
FROM Temperature_Calendar
GROUP BY DeviceRowID, date
HAVING COUNT(*) > 1
6) S'il y a des doublons, alors dans "Exécuter le SQL", remplacer tout le texte par la requête suivante, et l'exécuter:
Code : Tout sélectionner
DELETE
FROM Temperature_Calendar
WHERE Temperature_Calendar.rowid >
(SELECT rowid
FROM Temperature_Calendar T2
WHERE Temperature_Calendar.rowid <> T2.rowid
AND Temperature_Calendar.DeviceRowID = T2.DeviceRowID
AND Temperature_Calendar.date = T2.date);
select 'Doublons absolus apres suppression :';
SELECT COUNT(*) AS NBR_DOUBLES, DeviceRowID, date
FROM Temperature_Calendar
GROUP BY DeviceRowID, date
HAVING COUNT(*) > 1;
select 'Lignes :' || count(*) from Temperature_Calendar;
7) Sauvegarder la base modifiée: Fichier/Enregistrer les modifications"
8) Transférer domoticz.db du PC vers le Raspberry à l'endroit initial.
9) Sur le raspberry, réappliquer les droits pour être sûr:
10) Et enfin, relancer Domoticz:
Un exemple général et l'explication de la requête sont sur
www.developpez.net.
Pour supprimer les doublons dans
la table des préférences,
voir ici.