KiwiHC16 / Abeille

Abeille pour Jeedom (Gateway ZiGate)
GNU Affero General Public License v3.0
60 stars 52 forks source link

Ajout support Acova Alcantara 2 #2180

Open MaelFr opened 2 years ago

MaelFr commented 2 years ago

Hello,

Je viens d'acheter un radiateur Acova Alcantara 2 1000W (je précise car il existe aussi en 750, 1500 et 2000, et je ne sais pas si ça peut impacter la config et/ou les commandes). J'ai réussi à le connecter sans problème à Abeille, par contre en unknown évidemment.

J'ai extrait les infos via le discovery, mais après je sèche un peu pour la création du JSON de config. J'en suis là pour le moment :

{
  "ALCANTARA2D1.00P1.02Z1.00": {
    "type": "Acova Alcantara 2",
    "manufacturer": "Acova",
    "model": "Alcantara 2",
    "timeout": "60",
    "category": {
      "heating": 1
    },
    "configuration": {
      "icon": "ALCANTARA2D1.00P1.02Z1.00"
    },
    "commands": {
      "<nom_cmde_Jeedom>": {
        "use": "<nom_cmde_Abeille>",
        "params": "<xx=01&xy=0003>"
      }
    }
  }
}

Je n'ai pas l'impression qu'il y ait déjà des radiateurs, donc je suppose qu'il va falloir créer toutes les commandes aussi.

J'ai essayé de récupérer des infos via l'interrogation de l'équipement (tab Avancé), mais mon AbeilleParser.log reste vide. Aurais-je oublié quelque chose ? Je n'ai pas essayé d'écrire des chose, j'ai un peu peur de tout casser.

J'ai trouvé cette doc sur le site zigate qui semble utile.

Je reste dispo pour faire des tests et soumettre la PR quand tout sera prêt.

Maël

discovery.zip

tcharp38 commented 2 years ago

Salut @MaelFr Interessant. Je crois qu'on n'a pas joué avec ce genre de fonctionalité jusque la. Je vais tacher de te preparer qqch.

Cote logs, tu n'es probablement pas en mode debug: https://kiwihc16.github.io/AbeilleDoc/Debug.html#support Peux tu me filer un package de logs (page support/telecharger tout) et l'adresse de ce periph pour voir si il remonte des infos de maniere naturelle ?

Es tu partant pour tester une beta ou preferes tu rester sur la version stable ?

Dernier point: je te laisse trouver une image PNG sans fond pour mettre en icone. Merci

MaelFr commented 2 years ago

Hello,

J'étais pourtant bien en debug et j'ai l'impression qu'il ne remonte rien par lui-même (ci-joint une bonne demie heure de logs) son adresse est 51D2. D'après ce que j'ai compris, c'est un Thermostat (cluster 0x0201, chapitre 6.3 dans les specs).

Pas de souci pour passer sur une beta.

Je cherche l'image qui va bien.

Merci

Edit: je suis bien à jour sur la dernière version stable.

AbeilleLogs-211107.tar.gz

tcharp38 commented 2 years ago

Toujours rien dans les logs.

Tu dois avoir ca image

puis sauvegarder et redemarrer Abeille

image

Tant que le log AbeilleParser.log est vide ou inexistant... ben il n'y a pas de logs de debug

Et oui c'est bien le cluster 201 a supporter.

MaelFr commented 2 years ago

Ah! mieux quand on redémarre correctement Abeille.

AbeilleLogs-211107_2.tar.gz

tcharp38 commented 2 years ago

commands.zip A decompresser dans core/config/commands

ALCANTARA2D1.00P1.02Z1.00.zip

A decompresser dans core/config/devices

redemarrer Abeille refaire inclusion remettre le package de logs au bout de 5min au moins

MaelFr commented 2 years ago

Hum, il a été importé en unknow, normal ? Nouvelle adresse: 770F

AbeilleLogs-211107_3.tar.gz

MaelFr commented 2 years ago

Ah, je pense savoir pourquoi : image

MaelFr commented 2 years ago

Cette fois on est bon, ça a demandé une coupure de courant du radiateur, mais bon… Nouvelle adresse: 7D48 AbeilleLogs-211107_4.tar.gz

MaelFr commented 2 years ago

Re, J'ai essayé de creuser un peu et j'ai l'impression que j'ai le même problème que la #1881 J'ai tenté de set une valeur sur 0201 0012 (OccupiedHeatingSetpoint) et 0014 (UnoccupiedHeatingSetpoint), mais sans succès. J'ai tenté des commandes (Setpoint Raise/Lower), mais j'ai toujours une erreur 86 ou 8D. Pas sûr d'avoir bien compris comment ça fonctionne, ou si il faut ajouter de la conf spécifique dans CmdPrepare ou CmdProcess. Bref, pour le moment j'ai lamentablement échoué,…

Du coup, j'ai commencé à écrire un petit outil qui permet de générer automatiquement un fichier de config en se basant sur le discovery: config-creator c'est juste un début, tous les clusters ne sont pas générés. Dites moi si ça peut être utile je continuerai.

jbromain commented 2 years ago

Bonsoir à tous,

Je viens d'identifier un bug concernant le OccupiedHeatingSetpoint (cluster 0201 attribut 0012). Tu peux aller voir le correctif que j'ai fait pour moi en attendant qu'il soit repris dans Abeille ici:

1881

Pas sûr que ce soit le même problème que toi mais peut-être. Après avoir fait ce correctif dans le code, tu peux peut-être t'inspirer de la conf json de ma vanne thermostatique (eTRV0100/eTRV0100.json) car elle implémente le même cluster et cet attribut est censé être obligatoire.

Bon courage !

tcharp38 commented 2 years ago

Cette fois on est bon, ça a demandé une coupure de courant du radiateur, mais bon… Nouvelle adresse: 7D48 AbeilleLogs-211107_4.tar.gz

Salut @MaelFr Bon cette fois l'inclusion est bonne. Tu dois avoir un report de la temp locale si je me trompe pas.

Comment procedes tu pour ecrire le "OccupiedHeatingSetpoint" ? Je réalise que tu peux pas le faire via la page EQ/avancé.. ecrire attribut car le cluster 201 n est pas connu.

Interessant ton config-creator. Mais en fait il y a deja un truc similaire dans Abeille, encore caché car pas finalisé et donc pas utilisable facilement par tous.

MaelFr commented 2 years ago

Yes, ça fonctionne pour la température. Bon en fait c'est la consigne courante, et pas la mesure de la température (contrairement à ce qu'on aurait pu croire)

J'ai modifié AbeilleZigbeeConst, mais ça ne fonctionne pas quand même car il semble qu'il faut le Proprio= dans la commande. Du coup j'ai créé le fichier de commande en copiant le danfossTemperatureConsigneSet et en modifiant les min, max,… . Je viens de tester, ça fonctionne ( merci @jbromain ).

Ah, je l'ai pas trouvé celui là. C'est pas faute d'avoir fouillé un peu partout.

tcharp38 commented 2 years ago

@MaelFr A tester

ALCANTARA2D1.00P1.02Z1.00.json.zip

Tu dois aussi prendre le fichier suivant pour decompresser dans "core/php" AbeilleZigbeeConst.zip

Puis redemarrer Abeille Et recharger JSON via la page EQ/Avancé

Ca ajoute un "slider" sur le dashboard.

A part ca il manque toujours une image PNG sans fond a mettre en icone

A+

MaelFr commented 2 years ago

Voilà l'image ! image

Par contre le Set-OccupiedHeatingPoint ne fonctionne pas, j'ai ce retour: [2021-11-19 21:24:04] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0012, Status=86

J'ai créé un fichier de commande copié du danfossTemperatureConsigneSet qui fonctionne, avec des min et max adapté aux valeurs du radiateur :

{
  "zbCmd-0201-OccupiedHeatingSetpoint": {
    "name": "Set temperature",
    "subType": "slider",
    "generic_type": "",
    "invertBinary": "0",
    "configuration": {
      "topic": "WriteAttributeRequestGeneric",
      "request": "EP=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=#slider#",
      "minValue": "7",
      "maxValue": "28",
      "visibilityCategory": "All"
    },
    "type": "action"
  }
}

En revanche, je ne sais pas si c'est spécifique à cause du &Proprio=

tcharp38 commented 2 years ago

Peux tu faire un set occupied et me filer les logs ?

MaelFr commented 2 years ago

Voilà avec la commande que tu m'as donné:

==> AbeilleCmd.log <==
[2021-11-19 21:24:03] Message from queueKeyAbeilleToCmd: TempoCmdAbeille1/0000/getVersion&time=1637353463 -> Version
[2021-11-19 21:24:03]   L2 - procmsg({"topic":"TempoCmdAbeille1\/0000\/getVersion&time=1637353463","payload":"Version","priority":4,"message":null})
[2021-11-19 21:24:04] -- execute(eqName=Radiateur name=Set-OccupiedHeatingPoint type=action, options={"slider":"25","utid":"0"})
[2021-11-19 21:24:04] updateField()
[2021-11-19 21:24:04]   Updated 'ep=01&clustId=0201&attrId=0012&attrVal=#slider#'
[2021-11-19 21:24:04]   To 'ep=01&clustId=0201&attrId=0012&attrVal=25'
[2021-11-19 21:24:04] -- execute(): Msg sent: {"topic":null,"payload":null,"priority":null,"message":{"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=25"}}
[2021-11-19 21:24:04] Message from queueKeyAbeilleToCmd: CmdAbeille1/7D48/writeAttribute -> ep=01&clustId=0201&attrId=0012&attrVal=25
[2021-11-19 21:24:04]   L2 - procmsg({"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=25","priority":1,"message":null})
[2021-11-19 21:24:04]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-11-19 21:24:04]     L1 - processCmd({"writeAttribute":"writeAttribute","name":"writeAttribute","priority":1,"dest":"Abeille1","ep":"01","clustId":"0201","attrId":"0012","attrVal":"25","addr":"7D48"})
[2021-11-19 21:24:04]     writeAttribute cmd
[2021-11-19 21:24:04]     Using attrType 29
[2021-11-19 21:24:04]       addCmdToQueue("Abeille1", cmd="0110", data="027D4801010201010000000100122925", addr=7D48, priority=1)
[2021-11-19 21:24:04]       incStatCmd(): {"0024":1,"0016":1,"0009":1,"0010":3,"0014":1,"0017":1,"0110":2}
[2021-11-19 21:24:04] processCmdQueueToZigate(zigate1)
[2021-11-19 21:24:04]   J'ai 1 commande(s) pour la zigate a envoyer.
[2021-11-19 21:24:04]   sendCmdToZigate(Dest=Abeille1, cmd=0110, len=0010, datas=027D4801010201010000000100122925)

==> AbeilleParser.log <==
[2021-11-19 21:24:04] Abeille1, Type=8000/Status, Status=00/Success, SQN=01, PacketType=0110
[2021-11-19 21:24:04] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-11-19 21:24:04]   FCF=00/General/Cli->Serv, SQN=01, cmd=04/Write Attributes Response
[2021-11-19 21:24:04]   Handled by decode8110
[2021-11-19 21:24:04] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0012, Status=86
[2021-11-19 21:24:04] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-11-19 21:24:04]   Found: [Chambre parents][Radiateur] set APS_ACK to 1
[2021-11-19 21:24:04] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-11-19 21:24:04]   Found: [Chambre parents][Radiateur] set APS_ACK to 1
tcharp38 commented 2 years ago

[2021-11-19 21:24:04] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0012, Status=86

Etrange. Il dit "attribute non supporté". Peut etre, meme surement, est ce du à un mauvais formatage de la commande ? Mais la reponse n'est pas bonne en tout cas.

tcharp38 commented 2 years ago

Pour info. Le support du sous tyep "slider" n'est pas tres flexible dans la version actuelle d'Abeille. Necessite un peu de reflexion avant de faire des modifs.

tcharp38 commented 2 years ago

@MaelFr J'ai fait une modif pour améliorer le support "slider" et du coup je pousse une nouvelle beta la. Peux tu basculer sur la beta demain, refaire une inclusion et tester à nouveau le Set-OccupiedHeatingPoint ?

MaelFr commented 2 years ago

T'as une doc pour passer sur la beta ? Pour le moment je me suis contenté de copier/coller les diffs.

tcharp38 commented 2 years ago

Oui, voir le chapitre installon Je l'ai pas sous la main suis en voiture

tcharp38 commented 2 years ago

T'as une doc pour passer sur la beta ? Pour le moment je me suis contenté de copier/coller les diffs.

https://kiwihc16.github.io/AbeilleDoc/Installation.html#installation-de-la-version-beta

MaelFr commented 2 years ago

Hello, Merci pour le lien, je viens de mettre à jour et tester. Malheureusement ça ne fonctionne pas, toujours cette erreur 86. J'avais réussi à le faire fonctionner en utilisant WriteAttributeRequestGeneric comme topic.

==> AbeilleParser.log <==
[2021-12-01 13:34:24] Abeille1, Type=8000/Status, Status=00/Success, SQN=00, PacketType=0010
[2021-12-01 13:34:24] Abeille1, Type=8010/Version, Appli=0003, SDK=031D
[2021-12-01 13:34:26] Abeille1, Type=8000/Status, Status=00/Success, SQN=00, PacketType=0110
[2021-12-01 13:34:26] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-12-01 13:34:26]   FCF=00/General/Cli->Serv, SQN=00, cmd=04/Write Attributes Response
[2021-12-01 13:34:26]   Handled by decode8110
[2021-12-01 13:34:26] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0012, Status=86
[2021-12-01 13:34:26] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-01 13:34:26]   Found: [Chambre parents][Radiateur] set APS_ACK to 1
[2021-12-01 13:34:26] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-01 13:34:26]   Found: [Chambre parents][Radiateur] set APS_ACK to 1

==> AbeilleCmd.log <==
[2021-12-01 13:34:24] Message from queueKeyCmdToCmd: CmdAbeille1/0000/getZgVersion ->
[2021-12-01 13:34:24]   L2 - procmsg({"topic":"CmdAbeille1\/0000\/getZgVersion","payload":"","priority":4,"message":null})
[2021-12-01 13:34:24]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-12-01 13:34:24]     L1 - processCmd({"getZgVersion":"getZgVersion","name":"getZgVersion","priority":4,"dest":"Abeille1","":1,"addr":"0000"})
[2021-12-01 13:34:24]     getZgVersion cmd
[2021-12-01 13:34:24]       addCmdToQueue("Abeille1", cmd="0010", data="", addr=, priority=4)
[2021-12-01 13:34:24]       incStatCmd(): {"0024":1,"0016":1,"0002":1,"0009":1,"0010":1}
[2021-12-01 13:34:24] processCmdQueueToZigate(zigate1)
[2021-12-01 13:34:24]   J'ai 1 commande(s) pour la zigate a envoyer.
[2021-12-01 13:34:24]   sendCmdToZigate(Dest=Abeille1, cmd=0010, len=0000, datas=)
[2021-12-01 13:34:26] Queues status : tempoMessageQueue=0, cmdQueue[1]=0
[2021-12-01 13:34:26] Zigates status: zg1=1, zg2=1, zg3=1, zg4=1, zg5=1, zg6=1, zg7=1, zg8=1, zg9=1, zg10=1
[2021-12-01 13:34:26] -- execute(eqName=Radiateur name=Set-OccupiedHeatingPoint type=action, options={"slider":"21","utid":"0"})
[2021-12-01 13:34:26] updateField()
[2021-12-01 13:34:26]   Updated 'ep=01&clustId=0201&attrId=0012&attrVal=#slider#'
[2021-12-01 13:34:26]   To 'ep=01&clustId=0201&attrId=0012&attrVal=#slider21#'
[2021-12-01 13:34:26] -- execute(): Msg sent: {"topic":null,"payload":null,"priority":null,"message":{"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=#slider21#"}}
[2021-12-01 13:34:26] Message from queueKeyAbeilleToCmd: CmdAbeille1/7D48/writeAttribute -> ep=01&clustId=0201&attrId=0012&attrVal=#slider21#
[2021-12-01 13:34:26]   L2 - procmsg({"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=#slider21#","priority":1,"message":null})
[2021-12-01 13:34:26]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-12-01 13:34:26]     L1 - processCmd({"writeAttribute":"writeAttribute","name":"writeAttribute","priority":1,"dest":"Abeille1","ep":"01","clustId":"0201","attrId":"0012","attrVal":"#slider21#","addr":"7D48"})
[2021-12-01 13:34:26]     writeAttribute cmd
[2021-12-01 13:34:26]     Using attrType 29
[2021-12-01 13:34:26]     sliderToHex(): decVal=21 => 0015
[2021-12-01 13:34:26]       addCmdToQueue("Abeille1", cmd="0110", data="027D480101020101000000010012290015", addr=7D48, priority=1)
[2021-12-01 13:34:26]       incStatCmd(): {"0024":1,"0016":1,"0002":1,"0009":1,"0010":1,"0110":1}
[2021-12-01 13:34:26] processCmdQueueToZigate(zigate1)
[2021-12-01 13:34:26]   J'ai 1 commande(s) pour la zigate a envoyer.
[2021-12-01 13:34:26]   sendCmdToZigate(Dest=Abeille1, cmd=0110, len=0011, datas=027D480101020101000000010012290015)

Et j'en profite pour te filer une image avec un fond transparent, parce que la précédente avait semble-t-il un fond noir 😞 alcantara2_withAlpha

tcharp38 commented 2 years ago

J'ai pris ton PNG.

Pour le write, je ne comprends pas. Si tu arrives à me filer le JSON et les logs correspondant (cmd + parser) pour WriteAttributeRequestGeneric ca peut aider.

MaelFr commented 2 years ago

Je viens de créer une PR avec ce qui fonctionne chez moi. Par contre j'ai des status de retour bizarre: [2021-12-05 13:28:53] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0400, Status=A0 ou [2021-12-05 13:39:16] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0000, Status=45

Log complet pour le deuxième:

==> AbeilleCmd.log <==
[2021-12-05 13:39:16] -- execute(eqName=Radiateur name=Set-OccupiedHeatingPoint type=action, options={"slider":"19","utid":"0"})
[2021-12-05 13:39:16] updateField()
[2021-12-05 13:39:16]   Updated 'ep=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=#slider#'
[2021-12-05 13:39:16]   To 'ep=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=19'
[2021-12-05 13:39:16] -- execute(): Msg sent: {"topic":null,"payload":null,"priority":null,"message":{"topic":"CmdAbeille1\/7D48\/WriteAttributeRequestGeneric","payload":"ep=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=19"}}
[2021-12-05 13:39:16] Message from queueKeyAbeilleToCmd: CmdAbeille1/7D48/WriteAttributeRequestGeneric -> ep=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=19
[2021-12-05 13:39:16]   L2 - procmsg({"topic":"CmdAbeille1\/7D48\/WriteAttributeRequestGeneric","payload":"ep=01&Proprio=&clusterId=0201&attributeId=0012&attributeType=29&value=19","priority":1,"message":null})
[2021-12-05 13:39:16]     L1 - processCmd({"WriteAttributeRequestGeneric":"1","priority":1,"dest":"Abeille1","address":"7D48","EP":null,"Proprio":"","clusterId":"0201","attributeId":"0012","attributeType":"29","value":"6C07"})
[2021-12-05 13:39:16] command setParam4
[2021-12-05 13:39:16]       addCmdToQueue("Abeille1", cmd="0530", data="027D48010102010104023008101A021200296C07", addr=7D48, priority=1)
[2021-12-05 13:39:16]       incStatCmd(): {"0024":1,"0016":1,"0002":1,"0009":1,"0010":17,"0530":8,"0100":5}
[2021-12-05 13:39:16] processCmdQueueToZigate(zigate1)
[2021-12-05 13:39:16]   J'ai 1 commande(s) pour la zigate a envoyer.
[2021-12-05 13:39:16]   sendCmdToZigate(Dest=Abeille1, cmd=0530, len=0014, datas=027D48010102010104023008101A021200296C07)

==> AbeilleParser.log <==
[2021-12-05 13:39:16] Abeille1, Type=8000/Status, Status=00/Success, SQN=13, PacketType=0530
[2021-12-05 13:39:16] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-12-05 13:39:16]   FCF=08/General/Serv->Cli, SQN=1A, cmd=04/Write Attributes Response
[2021-12-05 13:39:16]   Handled by decode8110
[2021-12-05 13:39:16] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0000, Status=45
[2021-12-05 13:39:16] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-05 13:39:16]   Found: [Chambre parents][Radiateur] set APS_ACK to 1
[2021-12-05 13:39:16] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-12-05 13:39:16]   FCF=08/General/Serv->Cli, SQN=73, cmd=0A/Report attributes
[2021-12-05 13:39:16]   Handled by decode8100_8102
[2021-12-05 13:39:16] Abeille1, Type=8102/Attribute report, SQN=73, Addr=7D48, EP=01, ClustId=0201, AttrId=0000, AttrStatus=00, AttrDataType=29, AttrSize=0002
[2021-12-05 13:39:17] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-05 13:39:17]   Found: [Chambre parents][Radiateur] set APS_ACK to 1
tcharp38 commented 2 years ago

Merci. Je vais voir si je peux expliquer pourquoi cette vieille commande donne un resultat et pas le writeAttribute(). Mais si le status n'est pas 00, il y a qqch qui n'est toujours pas correct. Je me demande si changer le setPoint ne doit pas se faire via la commande suivante du cluster au lieu d'un writeAttribute

image

MaelFr commented 2 years ago

Certainement, mais je n'ai pas compris comment ça fonctionne les commandes. Si tu as des tips pour tester, je suis preneur.

Sinon pour le slider, y'aurait moyen de mettre un step à 0.5 pour plus de précision du réglage ? (pas urgent, juste une idée)

tcharp38 commented 2 years ago

Je realise que le WriteAttributGeneric n'est pas generique du tout. Il multiplie par 100 la valeur donnée dans ton cas. Donc par ex: 19deg => 1900 donc 076C en hexa

Peux tu faire l 'essai via la page EQ/avancé, d'ecrire cette valeur et voir quel status retourne sur le parser ? image

Je creuse cote commande. Ca me semble + juste.

MaelFr commented 2 years ago

Hello, Désolé du délai. Je viens de faire 2 tests qui ne retournent pas les mêmes résultats. (et la température n'est pas modifiée)

AbeilleParser
[2021-12-27 15:00:23] Abeille1, Type=8000/Status, Status=00/Success, SQN=02, PacketType=0110, NPDU=00, APDU=01
[2021-12-27 15:00:23] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:00:23] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-12-27 15:00:23]   FCF=08/General/Serv->Cli, SQN=02, cmd=04/Write Attributes Response
[2021-12-27 15:00:23]   Handled by decode8110
[2021-12-27 15:00:23] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0000, Status=29
[2021-12-27 15:00:23] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-27 15:00:23] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:00:23] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:00:23] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-27 15:00:23] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-27 15:00:26] Abeille1, Type=8000/Status, Status=00/Success, SQN=00, PacketType=0010, NPDU=00, APDU=00
[2021-12-27 15:00:26] Abeille1, Type=8010/Version, Appli=0003, SDK=0321

AbeilleCmd
[2021-12-27 15:00:23] Message from queueKeyXmlToCmd: CmdAbeille1/7D48/writeAttribute -> ep=01&clustId=0201&attrId=0012&attrVal=076C&attrType=29
[2021-12-27 15:00:23]   L2 - procmsg({"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=076C&attrType=29","priority":1,"message":null})
[2021-12-27 15:00:23]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-12-27 15:00:23]     L1 - processCmd({"writeAttribute":"writeAttribute","name":"writeAttribute","priority":1,"dest":"Abeille1","ep":"01","clustId":"0201","attrId":"0012","attrVal":"076C","attrType":"29","addr":"7D48"})
[2021-12-27 15:00:23]     writeAttribute cmd
[2021-12-27 15:00:23]     Using dir=00, attrType=29, attrVal=076C
[2021-12-27 15:00:23]       addCmdToQueue("Abeille1", cmd="0110", data="027D48010102010000000001001229076C", addr=7D48, priority=1)
[2021-12-27 15:00:23] processZigateCmdQueues(): zigate 1, pending=1
[2021-12-27 15:00:23]   sendCmdToZigate(Dest=Abeille1, cmd=0110, len=0011, datas=027D48010102010000000001001229076C)
[2021-12-27 15:00:26] Message from queueKeyCmdToCmd: CmdAbeille1/0000/getZgVersion ->
[2021-12-27 15:00:26]   L2 - procmsg({"topic":"CmdAbeille1\/0000\/getZgVersion","payload":"","priority":4,"message":null})
[2021-12-27 15:00:26]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-12-27 15:00:26]     L1 - processCmd({"getZgVersion":"getZgVersion","name":"getZgVersion","priority":4,"dest":"Abeille1","":1,"addr":"0000"})
[2021-12-27 15:00:26]     getZgVersion cmd
[2021-12-27 15:00:26]       addCmdToQueue("Abeille1", cmd="0010", data="", addr=, priority=4)
[2021-12-27 15:00:26] processZigateCmdQueues(): zigate 1, pending=1
[2021-12-27 15:00:26]   sendCmdToZigate(Dest=Abeille1, cmd=0010, len=0000, datas=)

AbeilleParser
[2021-12-27 15:01:58] Abeille1, Type=8000/Status, Status=00/Success, SQN=07, PacketType=0110, NPDU=00, APDU=01
[2021-12-27 15:01:58] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:01:58] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0201, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=7D48, DestAddrMode=02, DestAddr=0000
[2021-12-27 15:01:58]   FCF=08/General/Serv->Cli, SQN=07, cmd=04/Write Attributes Response
[2021-12-27 15:01:58]   Handled by decode8110
[2021-12-27 15:01:58] Abeille1, Type=8110/Write attribute response, SrcAddr=7D48, EP=01, ClustID=0201, AttrId=0000, Status=07
[2021-12-27 15:01:58] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-27 15:01:58] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:01:58] Abeille1, Type=8012/ZPS_EVENT_APS_DATA_CONFIRM
[2021-12-27 15:01:58] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201
[2021-12-27 15:01:58] Abeille1, Type=8011/APS data ACK, Status=00, Addr=7D48, EP=01, ClustId=0201

AbeilleCmd
[2021-12-27 15:01:58] Message from queueKeyXmlToCmd: CmdAbeille1/7D48/writeAttribute -> ep=01&clustId=0201&attrId=0012&attrVal=076C&attrType=29
[2021-12-27 15:01:58]   L2 - procmsg({"topic":"CmdAbeille1\/7D48\/writeAttribute","payload":"ep=01&clustId=0201&attrId=0012&attrVal=076C&attrType=29","priority":1,"message":null})
[2021-12-27 15:01:58]   No prepare function. Forwarding cmd to AbeilleCmdProcess.
[2021-12-27 15:01:58]     L1 - processCmd({"writeAttribute":"writeAttribute","name":"writeAttribute","priority":1,"dest":"Abeille1","ep":"01","clustId":"0201","attrId":"0012","attrVal":"076C","attrType":"29","addr":"7D48"})
[2021-12-27 15:01:58]     writeAttribute cmd
[2021-12-27 15:01:58]     Using dir=00, attrType=29, attrVal=076C
[2021-12-27 15:01:58]       addCmdToQueue("Abeille1", cmd="0110", data="027D48010102010000000001001229076C", addr=7D48, priority=1)
[2021-12-27 15:01:58] processZigateCmdQueues(): zigate 1, pending=1
[2021-12-27 15:01:58]   sendCmdToZigate(Dest=Abeille1, cmd=0110, len=0011, datas=027D48010102010000000001001229076C)
[2021-12-27 15:02:03] Message from queueKeyAbeilleToCmd: TempoCmdAbeille1/0000/getZgVersion&time=1640613743 ->
[2021-12-27 15:02:03]   L2 - procmsg({"topic":"TempoCmdAbeille1\/0000\/getZgVersion&time=1640613743","payload":"","priority":4,"message":null})
[2021-12-27 15:02:07] Status
[2021-12-27 15:02:07]   Queues    : tempo=1, norm[1]=0
[2021-12-27 15:02:07]   Zg enabled: zg1=on, zg2=OFF, zg3=OFF, zg4=OFF, zg5=OFF, zg6=OFF, zg7=OFF, zg8=OFF, zg9=OFF, zg10=OFF
[2021-12-27 15:02:07]   Zg avail  : zg1=yes, zg2=NO, zg3=NO, zg4=NO, zg5=NO, zg6=NO, zg7=NO, zg8=NO, zg9=NO, zg10=NO
tcharp38 commented 2 years ago

Salut @MaelFr J'ai implementer la commande dont on avait parlé (Setpoint raise/lower). Ca doit etre la bonne methode pour changer la consigne.

Peux tu

Merci

MaelFr commented 2 years ago

Hello,

Désolé pour le délai, j'ai été bien pris ces derniers temps. Malheureusement ça ne fonctionne pas. En résumé : Unsupported cluster command Je te laisse voir dans les logs joints. AbeilleLogs-220313.tar.gz

tcharp38 commented 2 years ago

M... decidement. Quelle est la bonne solution ?

MaelFr commented 2 years ago

Bon, malgré tous mes tests, pas de meilleur résultat via le setPoint.