Encore Tasmota: adaptation d'un template

Helo,

Récemment, Blakadder a mis à jour le template pour le GD-W32 diffuser, qui est approprié pour un diffuseur Maxcio comme celui que j’ai.
Le lien : GD-30W 300ml Aroma Diffuser Template for Tasmota

L’intégration finale me va mieu, cependant pour paraphraser Blakadder il semble que le dpid pour la diffusion ait plus de deux valeurs.
Source : Maxcio 400ML aroma diffuser: doesn't seem to publish dpid updates if the physical button is used · Issue #1029 · blakadder/templates · GitHub

J’ai bien collecté une tone de données, c’est pire qu’un cour de math :

18:05:16.964 {"TuyaReceived":{"Data":"55AA010700050C050001001E","Cmnd":7,"CmndData":"0C05000100","DpType5Id12":"0x00","12":{"DpId":12,"DpIdType":5,"DpIdData":"00"}}}
18:05:16.979 TYA: fnId=0 is set for dpId=12
18:05:16.984 {"TuyaReceived":{"Data":"55AA01070005670400010078","Cmnd":7,"CmndData":"6704000100","DpType4Id103":0,"103":{"DpId":103,"DpIdType":4,"DpIdData":"00"}}}
18:05:16.992 TYA: fnId=61 is set for dpId=103
18:05:16.995 SRC: Switch
18:05:16.998 CMD: Group 0, Index 1, Command "TUYAENUM", Data "0"
18:05:17.001 MQT: stat/diffuseur_bureau/RESULT = {"TuyaEnum1":0}
18:05:17.011 {"TuyaReceived":{"Data":"55AA01070005010100010110","Cmnd":7,"CmndData":"0101000101","DpType1Id1":1,"1":{"DpId":1,"DpIdType":1,"DpIdData":"01"}}}
18:05:17.020 TYA: fnId=11 is set for dpId=1
18:05:17.022 TYA: RX Relay-1 --> MCU State: On Current State:Off
18:05:17.024 SRC: Switch
18:05:17.030 MQT: stat/diffuseur_bureau/RESULT = {"POWER1":"ON"}
18:05:17.035 MQT: stat/diffuseur_bureau/POWER1 = ON
18:05:17.555 CFG: Saved to flash at F5, Count 23, Bytes 4096
18:05:21.181 TYA: Send "55aa00000000ff"
18:05:21.190 {"TuyaReceived":{"Data":"55AA010000010102","Cmnd":0,"CmndData":"01"}}
18:05:21.199 TYA: Heartbeat
18:05:21.588 {"TuyaReceived":{"Data":"55AA010700050C050001001E","Cmnd":7,"CmndData":"0C05000100","DpType5Id12":"0x00","12":{"DpId":12,"DpIdType":5,"DpIdData":"00"}}}
18:05:21.598 TYA: fnId=0 is set for dpId=12
18:05:21.602 {"TuyaReceived":{"Data":"55AA01070005670400010179","Cmnd":7,"CmndData":"6704000101","DpType4Id103":1,"103":{"DpId":103,"DpIdType":4,"DpIdData":"01"}}}
18:05:21.610 TYA: fnId=61 is set for dpId=103
18:05:21.613 SRC: Switch
18:05:21.616 CMD: Group 0, Index 1, Command "TUYAENUM", Data "1"
18:05:21.623 MQT: stat/diffuseur_bureau/RESULT = {"TuyaEnum1":1}
18:05:21.635 {"TuyaReceived":{"Data":"55AA01070005010100010110","Cmnd":7,"CmndData":"0101000101","DpType1Id1":1,"1":{"DpId":1,"DpIdType":1,"DpIdData":"01"}}}
18:05:21.646 TYA: fnId=11 is set for dpId=1
18:05:21.648 TYA: RX Relay-1 --> MCU State: On Current State:On
18:05:25.240 {"TuyaReceived":{"Data":"55AA0107000567040001027A","Cmnd":7,"CmndData":"6704000102","DpType4Id103":2,"103":{"DpId":103,"DpIdType":4,"DpIdData":"02"}}}
18:05:25.249 TYA: fnId=61 is set for dpId=103
18:05:25.252 SRC: Switch
18:05:25.255 CMD: Group 0, Index 1, Command "TUYAENUM", Data "2"
18:05:25.265 MQT: stat/diffuseur_bureau/RESULT = {"Command":"Error"}
18:05:25.277 {"TuyaReceived":{"Data":"55AA0107000501010001000F","Cmnd":7,"CmndData":"0101000100","DpType1Id1":0,"1":{"DpId":1,"DpIdType":1,"DpIdData":"00"}}}
18:05:25.287 TYA: fnId=11 is set for dpId=1
18:05:25.289 TYA: RX Relay-1 --> MCU State: Off Current State:On
18:05:25.292 SRC: Switch
18:05:25.298 MQT: stat/diffuseur_bureau/RESULT = {"POWER1":"OFF"}
18:05:25.303 MQT: stat/diffuseur_bureau/POWER1 = OFF

Du coup, quelqu’un saurait-il ce qu’il faudrait adapter exactement et coment SVP ? Je suis carrément perdu, comme d’hab quoi :smiley: et si en plus quelqu’un arrive à me faire comprendre ça, ça serait un sacré exploit.
Je soupçone qu’il faut adapter un tuyaenum mais je préfère un avis éclairé.

J’ai continué à potasser mes maths du coup… Et osé modifier mon TuyaEnum1 qui gère la diffusion.

Et donc effectivement, il semble que mon TuyaEnum1 soit à 0 lorsqu’en diffusion « faible », 1 en mode « Fort » et à 2 lorsqu’on l’éteint.
Du coup, en remplaçant
Backlog TuyaRGB 3; DimmerRange 0,255; TuyaEnumList 1,1; TuyaEnumList 2,2; Rule0 1
par
Backlog TuyaRGB 3; DimmerRange 0,255; TuyaEnumList 1,2; TuyaEnumList 2,2; Rule0 1
je n’ai plus d’erreur affichée lorsque j’éteins le diffuseur par le bouton.

Par contre, j’ai toujours mon problème lors de l’utilisation du bouton physique qui semble ne pas changer l’état de Power1 lorsque j’éteints le diffuseur par le bouton physique et quand je passe le difuseur en mode fort, si j’appuie sur le bouton physique, le diffuseur ne s’éteint pas il faut que j’appuie deux fois comme si je n’avais appuyé qu’une seule fois.
On dirait qu’il ne met à jour que l’état du TuyaEnum1, pas de Power1 sauf quand on l’allume.
Par contre, changer l’état de Power1 par Tasmota fonctionne.

J’ai bien commis la folie de faire Power1 0 lorsque TuyaEnum1 est à 2 par une règle sauf qu’en suite, je n’ai plus pu ralumer le diffuseur, heureusement que la procédure de réinitialisation en faisant plusieurs cycles débrancher/brancher l’appareil a bien fonctionné.

Il faut croire que ce diffuseur Maxcio a été bien étrangement conçu.

En espérant que quelqu’un aura une petite idée sur le sujet :slight_smile: je continues de creuser en attendant.