Bug OpenEnOcean Activer le mode repetiteur d'un module D2 01 0E ou D 01 0B

Bonjour

@Loic @Alexandre

Je viens de passer mon week a me coltiner les doc de EnOcean etc pour me rendre compte qu’il y a bien un bug dans le plugin OpenEnocean de Jeedom pour l’activation du mode repetiteur des modules D2 01 0E ou D2 01 0B (les prises connectées avec mesure d’energie de NoDon)

Dans le fichier learn.py ligne 44 on a

def repeater(remoteid,level,profile):
	logging.debug('Sending Repeater remote message for profile ' + str(profile))
	logging.debug('id base ' + str(remoteid))
	logging.debug('test')
	dataheader = [0xD1,0x46,0x00,0x08]
	if profile['rorg'] == 'd2' and profile['type'] == '0a' and profile['func'] == '01' :
		logging.debug('Should invert two bytes for Sending Repeater remote message for profile ' + str(profile))
		dataheader = [0xD1,0x00,0x46,0x08]

il faut modifier le ‹ profile[‹ type ›] == ‹ 0a › › par (profile[‹ type ›] == ‹ 0a › or profile[‹ type ›] == ‹ 0b › or profile[‹ type ›] == ‹ 0e ›)

le soucis avait deja été identifier pour les type 0a visiblement !

j’ai fait évidement des essais avec Dolphin en branchant la clé USB passerelle sur le PC, et comme par magie tout marche

voila le fichier corrigé pour une maj svp :smiley:
cdt

learn.txt (4,5 Ko)

PS : pour la petite info , la petite prise avec l’anneau en plastique capte bien mieux que la blanche enorme, va savoir !

2 « J'aime »

@Alexandre vous pourriez svp prendre en compte la modif svp ?

Bonjour,

Une demande a étés effectuée à nodon pour savoir si cela est normal ! Car la première correction et faite car il y avait un souci sur les firmware de chez Nodon !

On reviens rapidement vers tous ! Merci pour l’info en tout cas !

Bonjour

Merci Alexandre pour le retour
super pour le contact avec le fabricant.
La seule chose dont je suis sur c’est que :

  • avec la trame D1 00 46 08 (puis 01 01 ou 00) ca fonctionne sur mes 2 modules Nodons, dont il faut bien cet ordre la pour mes 2 modules en questions
  • avec la trame de base D1 46 00 08 - ca marche pas
  • que j’ai testé en manuel et via Dolphin
  • que j’ai regardé le code de d’autre solution domotique dont OpenHab et qu’on y voit clairement la trame que je propose ,et visiblement pour carrement tous les modules Nodon (je n’ai trouvé aucune class d’equi qui envoit la trame 46 00 08 ! )

Bonjour @Alexandre , as tu eu un retour du constructeur a ce sujet ?

Bonjour @Alexandre , as tu eu des retours ?

@Salvialf voila trouvé

Merci @frixo pour ce patch. Faut-il faire quelque chose après avoir modifié le fichier learn.py?

Relancer les dépendance, le daemon, refaire un appairage, ou autre?

Merci

Quentin

Salut
Tu redis que tu bascule en mode répétiteur 1 ou 2 ton appareil , et ça enverra l’ordre avec le bon code Hexa !

@Salvialf hey tu vois ya bien un bug !

Hello

Toujours pas de répétition malgré le patch. Voici ma conf :

Le « radiateur bureau » reste injoignable (il apparait en vert car il a déjà communiqué quand j’ai fait l’appairage chez moi sur table avant de mettre les boîtiers en place sur les radiateurs).

Des idées?

Merci, bon dimanche

Quentin

Comme répondu en mp il faut redémarrer le daemon après modification du code
Puis ensuite basculer en répétiteur 1

Si te redémarre pas le daemon enocean la modification de code est pas prise en compte

Merci pour ton retour. Je viens de faire le redémarrage du daemon, changement de mode de répétition, pas d’amélioration :sob:

Tu es sûr d’avoir bien modifier le code ?

C’est quoi la référence de ton module ?

D2 01 0e ?

je parle de ca

Bonjour Frixo

Je n’avais pas vu ces retours, désolé!

La version : d2 01 0c

Je suis toujours bloqué…

Quentin

Ba c’est normal
Mon code ne rajoute pas ton type

(profile[‹ type ›] == ‹ 0a › or profile[‹ type ›] == ‹ 0b › or profile[‹ type ›] == ‹ 0e ›)

Il faut dans cette ligne la rajouter un
or profile[‹ type ›] == ‹ 0c ›

Tu comprends ?

Oui je me suis aperçu de ça ce matin, je l’ai corrigé effectivement, mais sans différence…

Tu as redémarrer le daemon ?

Montre moi ton code stp

Oui j’ai redémarré le daemon et relancé les dépendances. Désolé pour mes temps de réponse, je ne reçois pas les notifs…

Voilà le code de ma fonction repeater :

def repeater(remoteid,level,profile):
	logging.debug('Sending Repeater remote message for profile ' + str(profile))
	dataheader = [0xD1,0x46,0x00,0x08]
	if profile['rorg'] == 'd2' and (profile['type'] == '0b' or profile['type'] == '0e' or profile['type'] == '0a' or profile['type'] == '0c') and profile['func'] == '01' :
		logging.debug('Should invert two bytes for Sending Repeater remote message for profile ' + str(profile))
		dataheader = [0xD1,0x00,0x46,0x08]
	frelevel=0x01
	if level == '1':
		relevel= 0x01
	elif level == '2':
		relevel= 0x02
	else:
		relevel= 0x00
		frelevel=0x00
	data = dataheader + [frelevel,relevel] + \
		globals.COMMUNICATOR.base_id + [0x00]
	optional = [0x03] + utils.destination_sender_to_list(remoteid) + [0xFF, 0x00]
	utils.sender(RadioPacket(PACKET.RADIO, data=data, optional=optional),remoteid)
	return