Domoticz : ajouter une valeur manuelle dans un compteur (utility)

Salut les p’tits clous ! Dans ce chapitre, nous allons aborder la grande question de la consommation électrique : comment la mesurer ? Comment détecter les appareils les plus énergivores ? Et finalement, ce qui nous intéresse, comment la réduire ?

Bon, lire les mesures sur l’écran LCD c’est bien beau, mais ce que l’on cherche au final c’est intégrer tout ça dans Domoticz. On va donc maintenant ajouter le OWL à notre réseau domotique. L’opération devrait être très simple puisque si vous allez, comme d’habitude, dans Réglages->Dispositifs sous Domoticz, vous devriez déjà voir votre nouveau joujou. On clique donc sur la flèche verte et on l’ajoute au réseau.

Pourquoi vouloir saisir des valeurs manuelles dans un compteur utility ?

I have a non-smart meter on a remote location which I manually read out every few weeks. Like the title says, I would like to manually enter data into a virtual energy device so I can roughly track how much energy I am using. I understand this won't be precise, but all I really care about is the difference between the current reading and the previous one.

Si nous importons des données depuis un XLS ou JSON, j’aimerais que le point de données soit positionné dans le passé sur le device Domoticz pour pouvoir saisir des données historiques... Dans Domoticz, on va greffer notre Linky pour l’ajouter aux autres systèmes de mesures et avoir ainsi un accès rapide à nos courbes de consommation.

Options natives et limites de Domoticz

Bien que le OWL envoie une nouvelle mesure toutes les 10 secondes, Domoticz ne retient pour ses graphiques qu’une mesure par tranche de 5 min. Comme pour les graphiques de températures, vous avez une courbe détaillée de la journée en cours (ou plus, jusqu’à 7 jours selon les paramètres de Domoticz).

Lire aussi: Modifier Activité Kbis Auto-Entrepreneur

S’ajoute à cela les courbes sur la semaine, le mois et l’année avec à chaque fois la valeur d’utilisation totale d’énergie en kWh. En cliquant sur le bouton Rapport en haut à droite, vous aurez encore accès à d’autres valeurs. Ces valeurs cumulées par mois sont toujours utiles pour comparer la conso sur de plus grosses périodes, notamment les saisons.

La vue heure par heure ne fonctionne pas sur la dernière version stable de Domoticz la 4.9701. Cependant, cela fonctionnera dans la prochaine mise à jour de Domoticz.

Méthodes pour entrer des valeurs manuelles

The way to get data onto a device, or into the domoticz dbase, is via json calls (not via sql statements). Below are some bits and pieces out of a larger python program (this extract was not tested) to show you how to update a text device. domoticzIP="127.0.0.1" # internal IP address of the Domoticz server.

It is possible to send it directly to a sqlite3 database from Node Red, but you have to stop Domoticz in that case. If we import data from an XLS or JSON, I would like that the data point is set in the past on the domoticz device to be able to input historical data...

Si tu as suivi mes précédents tutos « domotiques », tu dois déjà être en possession d’un raspberry avec domoticz installé dessus. Si tu es intéressé par cette solution de domotique à bas coût (raspberry + arduino) et que tu n’as pas envie d’être l’éternelle victime des solutions commerciales domotiques ,commence par suivre ce tuto.

Lire aussi: INPI et Micro-Entreprise : Démarches

Via API JSON (recommandé)

The way to get data onto a device, or into the domoticz dbase, is via json calls (not via sql statements).

On your server, you can call the Domoticz JSON API to update devices; this allows scripted pushes (Python, Node-RED, curl). The extrait python montré dans les sources illustre comment mettre à jour un text device.

domoticzIP="127.0.0.1" # internal IP address of the Domoticz server.

Via modification directe de la base (risqué)

La première chose à faire lorsque l’on manipule une base de données est de faire une sauvegarde . Domoticz stocke ses données dans une base de type SQLITE, il s’agit d’un fichier domoticz.db que vous trouverez directement dans le dossier d’installation de Domoticz. Afin de modifier le contenu de ce fichier, nous allons avoir besoin d’installer l’outil sqlite3.

Il peut arriver, pour une raison inconnue, que Domoticz enregistre des valeurs aberrantes. Meter contient toutes les valeurs d’une journée (toutes les 5 minutes) et Meter_Calendar, la valeur agrégée sur une journée. Dans mon cas, je n’ai pas vu la valeur le jour même, je vais donc devoir corriger uniquement la valeur erronée dans Meter_Calendar avec une valeur moyenne que je choisis arbitrairement. La première chose à faire est d’identifier l’ID du compteur. On choisit une valeur arbitraire moyenne en fonction des jours précédents pour la valeur et on l’ajoute au compteur du jour précédent.

Lire aussi: Comment Calculer la TVA ?

It is possible to send it directly to a sqlite3 database from Node Red, but you have to stop Domoticz in that case.

Importer des relevés manuels et historiser

I have a non-smart meter on a remote location which I manually read out every few weeks. Like the title says, I would like to manually enter data into a virtual energy device so I can roughly track how much energy I am using.

Si nous importons des données depuis un XLS ou JSON, j’aimerais que le point de données soit positionné dans le passé sur le device Domoticz pour pouvoir saisir des données historiques... The way to get data onto a device, or into the domoticz dbase, is via json calls (not via sql statements).

Procédure recommandée pas à pas

  1. Faire une sauvegarde complète du dossier Domoticz et du fichier domoticz.db.
  2. Créer ou identifier un "Virtual Sensor / Utility" dans Domoticz pour recevoir les relevés.
  3. Préparer un script (Python/Node-RED) qui lit vos relevés Excel/CSV et envoie des appels JSON vers l’API Domoticz en précisant les timestamps souhaités.
  4. Tester l’envoi sur une petite plage de données récentes, vérifier les courbes et les valeurs agrégées (Meter, Meter_Calendar).
  5. Si vous devez modifier directement la base : arrêter Domoticz, manipuler domoticz.db avec sqlite3, corriger les tables Meter et Meter_Calendar, redémarrer Domoticz.

Exemples pratiques et conseils

Il faut toujours bien faire cette installation de base, même si l’on a pas besoin de tout. Cela permet de s’assurer en fait que le nouvel appareil fonctionne correctement avant de l’ajouter à notre réseau. Enfin, sachez que sur l’appareil, vous pourrez lire les mesures, cumulées ou en temps réel, de consommation électrique (en KW), de coût (en €) et même de dégagement de CO2 rejeté (bilan carbone).

C’est toujours amusant et intéressant de voir ce que l’on consomme en temps réel. « Tiens, en ce moment : 35 centimes/heure avec le four allumé. Mais alors ça me revient à 17 centimes d’électricité pour cuire un rôti... cool ! »

Pour vous donner une idée, j’ai pu personnellement, grâce à ce système, réaliser une économie de 30% sur ma facture EDF. Pouvoir maîtriser cette consommation grâce au compteur et à un planning de vos radiateurs est la clé de voûte de vos économies d’énergie.

Vidéo 2.2 Importer un data frame depuis un fichier .csv

Rappels importants

  • Ne jamais modifier la base sans sauvegarde.
  • Préférer l’API JSON pour injecter des relevés : moins risqué et maintenable.
  • Si vous manipulez sqlite3, arrêtez Domoticz avant toute opération directe sur domoticz.db.
  • Vérifier les valeurs agrégées (Meter_Calendar) après import pour éviter les doubles comptages.

Ressources utiles

  • Documentation API JSON de Domoticz pour les appels de mise à jour de devices.
  • Outils : Python, Node-RED, sqlite3, Arduino IDE / ESP8266FS si vous utilisez des ESP.
  • Tutoriels précédents sur l’intégration d’objets 433 MHz, OWL, Linky et création de virtual devices.

Si vous souhaitez un exemple de script d’import CSV/JSON adapté à votre installation Domoticz (avec prise en charge des timestamps pour historiser), je peux vous en fournir un échantillon prêt à tester.

balises:

Articles populaires: