Correction de valeurs erronnées dans Domoticz

Rédigé par Nicolas Sulek Aucun commentaire
Classé dans : Logiciel Mots clés : Domoticz, Raspberry Pi
J'ai installé récemment un dispositif pour suivre ma consommation d'électricité (un OWL Micro+ CM180 et la solution de domotique libre Domoticz fonctionnant sur un Raspberry Pi).

Il peut arriver que Domoticz reçoive des valeurs totalement erronnées, par exemple, une consommation électrique de 7834658181252W.

Erreur consommation électrique Domoticz
Pour corriger ça, il faut aller modifier la base SQLite de Domoticz.

Ouverture de la base

La base de données se trouve à la racine du répertoire de Domoticz et s'appelle domoticz.db.
file domoticz.db
domoticz.db: SQLite 3.x database
Pour la manipuler, il faut installer sqlite3 et procéder ainsi :
cd /home/domoticz/domoticz
sqlite3
sqlite> .open domoticz.db
sqlite> .headers on
sqlite> .mode column
On peut voir toutes les tables qu'utilisent Domoticz :
sqlite> .tables
BackupLog             LightSubDevices       SceneTimers         
Cameras               LightingLog           Scenes              
CamerasActiveDevices  Meter                 SetpointTimers      
CustomImages          Meter_Calendar        SharedDevices       
DeviceStatus          MultiMeter            Temperature         
DeviceToPlansMap      MultiMeter_Calendar   Temperature_Calendar
EnoceanSensors        MySensors             Timers              
EventActions          MySensorsVars         ToonDevices         
EventMaster           Notifications         UV                  
EventRules            Percentage            UV_Calendar         
Fan                   Percentage_Calendar   UserVariables       
Fan_Calendar          Plans                 Users               
FibaroLink            Preferences           WOLNodes            
Floorplans            Rain                  Wind                
Hardware              Rain_Calendar         Wind_Calendar       
HttpLink              SceneDevices          ZWaveNodes        
Les deux tables à modifier :
  • Meter enregistrant les consommation instantanées
  • Meter_Calendar enregistrant la consommation totale.

Cas de la table Meter

Dans mon cas, l'erreur s'est produite le 2015-11-01 à 19:45:01 :
sqlite> select * from Meter where date="2015-11-01 19:45:01";
DeviceRowID  Value          Usage       Date               
-----------  -------------  ----------  -------------------
17           7834658181252  498         2015-11-01 19:45:01
On modifie en mettant une valeur arbitraire (j'ai pris la moyenne de la valeur précédant l'erreur et la suivante) :
sqlite> update Meter set Value=53137011 where date="2015-11-01 19:45:01";

Cas de la table Meter_Calendar

Pour cette table, il faut agir vite, car elle se base sur les valeurs de la table Meter qui ne sont conservées que 24h.
select * from Meter_Calendar where Date="2015-11-01";
DeviceRowID  Value        Counter      Date      
-----------  -----------  -----------  ----------
17           78346070209  78346581812  2015-11-01
  • Value correspond à la consommation totale sur 24h
  • Counter correspond à la consommation totale sur l'année.
Pour connaître les valeurs à indiquer, le plus simple est de générer un rapport en CSV depuis l'interface Web et de faire les calculs nécessaires depuis un tableur.

Pour éditer la base, il suffit ensuite de faire :
update Meter_Calendar set Counter=511372 where date="2015-11-01";
update Meter_Calendar set Value=28000 where date="2015-11-01";
Et on obtient de nouveau des graphiques cohérents :

Consommation électrique normale Domoticz

Les commentaires sont fermés.