Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Problème conversion module teleinfo type OWL CM180

Retrouvez ici des sujets concernant le protocole RFXcom et les modules domotiques compatibles RFXcom (Chacon, DI-O, Oregon, Blyss, etc...) utilisés avec JEEDOM
mdiabolo
Timide
Messages : 2
Inscription : 30 déc. 2018, 15:55

Problème conversion module teleinfo type OWL CM180

Message par mdiabolo » 30 déc. 2018, 16:14

Bonjour

Je suis en train de tester Jeedom (avant je tournais sur Domoticz). J'ai l'avantage d'avoir 2 rfxcom et 2 raspberry 3 pour faire des essais en parallèle et mieux gérer la transition. Hier j'ai donc acheté le plugin RFXcom pour jeedom.

Contexte: J'utilise un module "fait maison" pour lire la sortie de mon compteur EDF, sur domoticz cela marche sans souci. Il s'agit du code qu'on trouve un peu partout sur le net censé émulé la trame d'un OWL CM180.
Cela marche parfaitement sur Domoticz (puissance instantanée et conso totale) sont identiques au compteur.
Par contre sur Jeedom (la conso totale varie).

J'ai donc activé le debug du module RFXcom et voilà la trame que je trouve:

Code : Tout sélectionner

[2018-12-30 15:31:43][DEBUG] : Decode data : {'count': '0', 'instant': '321', 'raw': '115A020203C2000000014100022237E5B659', 'battery': '9', 'signal': '5', 'subtype': '02', 'packettype': '5A', 'total': '39843579', 'id': '03C2'}
[2018-12-30 15:31:43][DEBUG] : Send to jeedom : {'devices': {'03C25A': {'count': '0', 'instant': '321', 'raw': '115A020203C2000000014100022237E5B659', 'battery': '9', 'signal': '5', 'subtype': '02', 'packettype': '5A', 'total': '39843579', 'id': '03C2'}}}
La valeur qui nous intéresse est la "total" soit 39843579 (en Wh donc). Hors au même moment sur Domoticz et sur mon compteur j'avais une valeur proche de 40971 kWh.

En utilisant un petit programme destiné à lire directement le RFXcom sur le raspberry ( sans passer par Jeedom donc) j'otenais une valeur identique à celle de domoticz et du compteur.

En regardant de plus près, on voit que le programme qui code la trame multiplie les Wh par 223,666 (ne me demandez par pourquoi);

Code : Tout sélectionner

HCP=(BASE*223666LL)/1000LL;
Je suis donc allé dans le fichier du plugin gérant la conversion du module Rfxcom à savoir
/var/www/html/plugins/rfxcom/resources/rfxcomd/rfxcomd.py:

Code : Tout sélectionner

# ---------------------------------------
	# 0x5A Energy sensor
	# ---------------------------------------
	if packettype == '5A':
		usage = int ((int(jeedom_utils.ByteToHex(message[11]), 16) * 0x10000000000 + int(jeedom_utils.ByteToHex(message[12]), 16) * 0x100000000 +int(jeedom_utils.ByteToHex(message[13]), 16) * 0x1000000 + int(jeedom_utils.ByteToHex(message[14]), 16) * 0x10000 + int(jeedom_utils.ByteToHex(message[15]), 16) * 0x100 + int(jeedom_utils.ByteToHex(message[16]), 16) ) / 230)
		action['id'] = str(id1 + id2)
		action['count'] = str(int(jeedom_utils.ByteToHex(message[6]), 16))
		action['instant'] = str(int(jeedom_utils.ByteToHex(message[7]), 16) * 0x1000000 + int(jeedom_utils.ByteToHex(message[8]), 16) * 0x10000 + int(jeedom_utils.ByteToHex(message[9]), 16) * 0x100  + int(jeedom_utils.ByteToHex(message[10]), 16))
		if usage <> 0:
			action['total'] = str(usage)
		action['signal'] = str(decodeSignal(message[17]))
		action['battery'] = str(decodeBattery(message[17]))
On y voit clairement que les Wh sont divisés par 230 au lieu de 223,6

J'aimerai comprendre s'il s'agit d'une erreur , d'un bug , d'un changement de version ?

Ensuite comment le corriger de la manière la plus propre possible ?

Merci d'avance

Répondre

Revenir vers « [Plugin Officiel] RFXcom »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités