KiwiHC16 / Abeille

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

Perte d'action sur les télécommandes ikea Tradfri rondes 5 bouton (id = TRADFRIremotecontrol) #2576

Closed Minisnaky closed 1 year ago

Minisnaky commented 1 year ago

Comme vu, j'ouvre une nouvelle issue pour le dysfonctionnement que je rencontre depuis la dernière MAJ stable Abeille sur les télécommandes ikea Tradfri rondes 5 bouton.

Seule les commandes UP et DOWN sont transmises à Jeedom. Rien sur les appuies Left / Right et Middle.

Pour les tests et logs, j'ai utilisé l'équipement : Abeille1/4ACE - 4ACE / 000D6FFFFE1D51A6

J'ai appuyé dans l'ordre sur les boutons : LEFT - UP - RIGHT - DOWN - MIDDLE

Je te pose les logs. Dis moi s'il te faut autre chose.

Merciiiiiii :)

AbeilleLogs-230421.tar.gz

tcharp38 commented 1 year ago

Voila un code à decompresser dans Abeille/core/class AbeilleParser.class.php.zip

3 nouvelles commandes pour Abeille/core/commands commands.zip

Et le nouveau modele TRADFRIremotecontrol.zip

Dans l'ordre

Minisnaky commented 1 year ago

Salut chef. J'ai fait les manipulations demandées.

1er problème, apres redemarrage abeille, j'ai une erreur m'indiquant que le fichier inf_zbCmdC-0008-Step n'existe pas. Dans le modèle que tu m'as fait passer, il y effectivement un appel à ce fichier pour la commande Down.

"Down": { "use": "inf_zbCmdC-0008-Step", "isVisible": 1 },

A ce stade donc, même après mise à jour de l'équipement, rien de plus. C'est même pire, j'ai perdu les commandes up/down qui étaient les seules à fonctionner.

Dans le doute, j'ai modifié le fichier avec : "Down": { "use": "inf_zbCmdC-0008-StepWithOnOff", "isVisible": 1 },

Rien de neuf, même si du coup je n'ai plus d'erreur de ficher inexistant.

J'ai refait un appuie dans l'ordre (UP/RIGHT/DOWN/LEFT/MIDDLE) et voici les logs :

[2023-04-24 16:46:43] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0008, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:43] FCF=01/Cluster-specific/Cli->Serv, SQN=51, cmd=06/Step With OnOff [2023-04-24 16:46:43] Step with On/Off: mode=00, size=, transition=0005, optMask=, optOverride= [2023-04-24 16:46:43] Abeille1, Type=8085/Unknown-8085 (unused). [2023-04-24 16:46:43] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0400, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=61C3, DstAddrMode=02, DstAddr=0000 [2023-04-24 16:46:43] FCF=18/General/Serv->Cli, SQN=F3, cmd=0A/Report attributes [2023-04-24 16:46:43] AttrId=0000/MeasuredValue, AttrType=21, ValueHex=002C => ZCL corrected value, 1.0099502941203 [2023-04-24 16:46:43] Abeille1, Type=8102/Attribute report, SQN=F3, Addr=61C3, EP=01, ClustId=0400, AttrId=0000, AttrStatus=00, AttrDataType=21, AttrSize=0002 [2023-04-24 16:46:43] 0400-0000 => Handled by decode8002 [2023-04-24 16:46:43] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0406, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=61C3, DstAddrMode=02, DstAddr=0000 [2023-04-24 16:46:43] FCF=18/General/Serv->Cli, SQN=F4, cmd=0A/Report attributes [2023-04-24 16:46:43] AttrId=0000/Occupancy, AttrType=18, ValueHex=01 => 1 [2023-04-24 16:46:43] Abeille1, Type=8102/Attribute report, SQN=F4, Addr=61C3, EP=01, ClustId=0406, AttrId=0000, AttrStatus=00, AttrDataType=18, AttrSize=0001 [2023-04-24 16:46:43] 0406-0000 => Handled by decode8002 [2023-04-24 16:46:48] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0005, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:48] FCF=05/Cluster-specific/Cli->Serv/ManufCode=117C, SQN=52, cmd=07/Unknown-0005-07 [2023-04-24 16:46:48] Ikea 5 buttons remote: Cmd=07, Value=00 [2023-04-24 16:46:48] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0005, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:48] FCF=05/Cluster-specific/Cli->Serv/ManufCode=117C, SQN=52, cmd=07/Unknown-0005-07 [2023-04-24 16:46:48] Duplicated message for SQN 52 => ignoring [2023-04-24 16:46:52] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0008, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:52] FCF=01/Cluster-specific/Cli->Serv, SQN=53, cmd=02/Step [2023-04-24 16:46:52] Step: mode=01, size=, transition=0005, optMask=, optOverride= [2023-04-24 16:46:52] Abeille1, Type=8085/Unknown-8085 (unused). [2023-04-24 16:46:54] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0005, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:54] FCF=05/Cluster-specific/Cli->Serv/ManufCode=117C, SQN=54, cmd=07/Unknown-0005-07 [2023-04-24 16:46:54] Ikea 5 buttons remote: Cmd=07, Value=01 [2023-04-24 16:46:54] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0005, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:54] FCF=05/Cluster-specific/Cli->Serv/ManufCode=117C, SQN=54, cmd=07/Unknown-0005-07 [2023-04-24 16:46:54] Duplicated message for SQN 54 => ignoring [2023-04-24 16:46:55] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:46:55] FCF=01/Cluster-specific/Cli->Serv, SQN=55, cmd=02/Toggle [2023-04-24 16:46:55] Abeille1, Type=8095/Unknown-8095 (unused). [2023-04-24 16:46:58] Abeille1, Type=8000/Status, Status=00/Success, SQN=05, PacketType=0100, Sent=01, SQNAPS=41, NPDU=00, APDU=01 [2023-04-24 16:46:58] Abeille1, Type=8012/APS data confirm, Status=00, Addr=22F2, SQNAPS=41, NPDU=00, APDU=01 [2023-04-24 16:46:58] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0000, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=22F2, DstAddrMode=02, DstAddr=0000 [2023-04-24 16:46:58] FCF=18/General/Serv->Cli, SQN=05, cmd=01/Read Attributes Response [2023-04-24 16:46:58] AttrId=0000/ZCLVersion, Status=00, AttrType=20, ValueHex=03 => 3 [2023-04-24 16:46:58] Abeille1, Type=8100/Read individual attribute response, SQN=05, Addr=22F2, EP=01, ClustId=0000, AttrId=0000, AttrStatus=00, AttrDataType=20, AttrSize=0001 [2023-04-24 16:46:58] 0000-0000 => Handled by decode8002 [2023-04-24 16:46:58] Abeille1, Type=8011/APS data ACK, Status=00/Success, Addr=22F2, EP=01, ClustId=0000, SQNAPS=41 [2023-04-24 16:47:02] Abeille1, Type=8000/Status, Status=00/Success, SQN=00, PacketType=0010, Sent=00, SQNAPS=00, NPDU=00, APDU=00 [2023-04-24 16:47:02] Abeille1, Type=8010/Version, Appli=0004, SDK=0323 [2023-04-24 16:47:03] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=4ACE, DstAddrMode=01, DstAddr=0905 [2023-04-24 16:47:03] FCF=01/Cluster-specific/Cli->Serv, SQN=56, cmd=02/Toggle [2023-04-24 16:47:03] Abeille1, Type=8095/Unknown-8095 (unused).

Je repasse en "nomimale" en enlevant les modifs en attendant tes instructions.

tcharp38 commented 1 year ago

Ha oui. Tu n'es pas sur la beta donc ca commence à faire pas mal de modifs à rattraper.

Soit on met ca de coté jusqu'a ce que j'arrive à pousser une nouvelle stable, soit tu bascules sur la beta et tu es au gout du jour. T'en penses quoi ?

Minisnaky commented 1 year ago

Bonjour @tcharp38 . Bon, les shortcuts étaient plus important et ils fonctionnent depuis ton aide. Je vais rester en l'état et je guette la prochaine stable avec impatience pour récupérer les télécommandes rondes. Pas la peine de te faire bosser pour rien d'ici là maintenant que tu sembles savoir d'où vient le problème :).

Merci encore chef. Tu gères <3

kaleofr commented 1 year ago

Hello, pour faire avancer cette issue, pourrais-tu remplacer dans le parser: 4333: if (($cmd == "00") || ($cmd == "01")) { // Off=00, On=01 par: if (($cmd == "00") || ($cmd == "01") || ($cmd == "02")) { // Off=00, On=01, Toggle=02

4411: 'name' => $ep.'-0008-cmd'.$cmd, par: 'name' => $srcEp.'-0008-cmd'.$cmd,

avec ca on retrouve le Middle-Clic, on répare les bouton Up et Down, et on peut agrémenter le modèle pour intègrer les commandes appui long et relachement sur Up et Down.

Je n'ai pas trouvé comment intégrer l'appui long Left/Right.

Mon modèle:

{
    "TRADFRIremotecontrol": {
        "manufacturer": "Ikea",
        "model": "5 buttons remote",
        "type": "IKEA 5 buttons remote control",
        "genericType": "Light",
        "timeout": "60",
        "configuration": {
            "mainEP": "01",
            "paramType": "telecommande",
            "icon": "Ikea-Remote-5buttons",
            "batteryType": "1x3V CR2032"
        },
        "category": {
            "light": "1"
        },
        "commands": {
            "Off": {
                "use": "offGroup"
            },
            "Toggle": {
                "use": "toggleGroup"
            },
            "On": {
                "use": "onGroup"
            },
            "Down": {
                "use": "downGroup"
            },
            "Up": {
                "use": "upGroup"
            },
            "setLevel": {
                "use": "setLevelGroup"
            },
            "setTemperatureLightGroup": {
                "use": "setTemperatureLightGroup"
            },
            "Sc1": {
                "use": "sceneGroupRecall1"
            },
            "Sc2": {
                "use": "sceneGroupRecall2"
            },
            "Sc3": {
                "use": "sceneGroupRecall3"
            },
            "Battery-Percent": {
                "use": "inf_zbAttr-0001-BatteryPercent"
            },
            "Bind-0001-ToZigate": {
                "use": "act_zbBindToZigate",
                "params": "clustId=0001",
                "execAtCreation": "Yes",
                "execAtCreationDelay": 9
            },
            "SetReporting-0001-0021": {
                "use": "act_zbConfigureReporting",
                "params": "clustId=0001&attrType=20&attrId=0021&minInterval=0708&maxInterval=0E10&changeVal=",
                "execAtCreation": "Yes",
                "execAtCreationDelay": 7
            },
            "Up": {
                "use": "inf_zbCmdC-0008-StepWithOnOff",
                "isVisible": 1
            },
            "Up Long": {
                "use": "inf_zbCmdC-0008-MoveWithOnOff",
                "isVisible": 1
            },
            "Up Release": {
                "use": "inf_zbCmdC-0008-StopWithOnOff",
                "isVisible": 1
            },
            "Down": {
                "use": "inf_zbCmdC-0008-Step",
                "isVisible": 1
            },
            "Down Long": {
                "use": "inf_zbCmdC-0008-Move",
                "isVisible": 1
            },
            "Down Release": {
                "use": "inf_zbCmdC-0008-Stop",
                "isVisible": 1
            },
            "Left-right": {
                "use": "inf_zbCmdC-0005-Ikea07",
                "comment": "value=1 => left, 0 => right",
                "isVisible": 1
            },              
            "Click-Middle": {
                "use": "inf_zbCmdC-0006-Toggle",
                "isVisible": 1
            },
            "Blanc Group": {
                "use": "BlancGroup"
            },
            "Bleu Group": {
                "use": "BleuGroup"
            },
            "Rouge Group": {
                "use": "RougeGroup"
            },
            "Vert Group": {
                "use": "VertGroup"
            }
        }
    }
}

Il faut aussi créer les commandes manquantes comme inf_zbCmdC-0008-MoveWithOnOff et les autres...

{
    "inf_zbCmdC-0008-MoveWithOnOff": {
        "comment": "Cluster 0008/ModeWithOnOff cmd, received from CLIENT side",
        "subType": "binary",
        "type": "info",
        "logicalId": "#EP#-0008-cmd05",
        "configuration": {
            "repeatEventManagement": "always"
        }
    }
}

Seul défaut, les commandes ne reviennent pas à 0, c'est un clic qui survient. On peut faire un widget pour afficher l'heure du clic par exemple. Les relâchements d'appuis long pourraient remettre à 0 les commandes d'appui long mais est-ce intéressant de le faire dans le parser?

Kaléo

tcharp38 commented 1 year ago

Bien vu pour les bugs.

Voila le dernier parser AbeilleParser.class.php.zip

Les commandes du cluster 0008 commands.zip

et une mise à jour du modele. J'ai pas pris les "release". Pas sur de l'interet à partir du moment ou on sait identifier un click de click long, et pour limiter les cmds A voir TRADFRIremotecontrol.zip

kaleofr commented 1 year ago

Merci pour ces corrections. Pour le coup, si, les releases peuvent permettre une mesure approximative du temps de pression. J'aimerais assez les conserver.

Après, je comprends ton envie de na pas vouloir créer toutes les commandes. Peut être faudrait il des commandes qui récupèrent la valeur numérique des cmd plutôt que de les faire toutes individuellement.

Je vais tester tout ça dès que possible.

tcharp38 commented 1 year ago

@kaleofr Plutot qu'avoir une durée de pression.. perso je trouverais comment implementer un truc

tcharp38 commented 1 year ago

@Minisnaky @kaleofr Ce sujet doit rester ouvert ? Il y a encore des soucis ? Merci

Minisnaky commented 1 year ago

Bonjour chef! Pour moi c'est ok. Désolé j'ai oublié de revenir dessus pour te le dire. 😊

tcharp38 commented 1 year ago

Bon je clos mais à réouvrir si pb restant ou nouveau. Merci