homebridge-tydom icon indicating copy to clipboard operation
homebridge-tydom copied to clipboard

Add support for Alarm CTX60

Open StephanH27 opened this issue 4 years ago • 37 comments

Is your feature request related to a problem? Please describe.

No : It's a new hardware

Related hardware

Alarm CTX60 (qui s'appelle "Centrale" dans la liste des équipements)

Describe the solution you'd like

putting On and Off this Alarm !

Dumps Tydom node.txt Tydom DEBUG.txt tydom_output.json.txt

StephanH27 avatar Jan 09 '21 13:01 StephanH27

Bonjour, Ais-je correctement formulé ma demande ? ais-je des chances qu'elles soit retenue ?

StephanH27 avatar Jan 14 '21 13:01 StephanH27

Hello, les logs ne sont pas en mode debug, il manque la variable d'environnement DEBUG=homebridge-tydom à configurer.

Ensuite il me faudra un hash du style:

homebridge-tydom Unknown hash=alarm:9c0cc7174d0d0609c4fcc1c0d85d8e282961e801b5136aa1d2c5be45573e41e0 with firstUsage="alarm" +0ms

Je vais regarder pour logger ça même en mode non-debug.

mgcrea avatar Jan 14 '21 20:01 mgcrea

Hello, Est-ce mieux comme cela ? tydom_output.json.txt Tydom.node.txt Tydom.DEBUG.txt

StephanH27 avatar Jan 15 '21 10:01 StephanH27

Ensuite il me faudra un hash du style: homebridge-tydom Unknown hash=alarm:9c0cc7174d0d0609c4fcc1c0d85d8e282961e801b5136aa1d2c5be45573e41e0 with firstUsage="alarm" +0ms

Hello. Comment puis-je faire pour obtenir ce genre de chose ? Pour le reste, les logs (postés hier) en mode début doivent être corrects. Enfin j'espère !

Merci ...

StephanH27 avatar Jan 16 '21 11:01 StephanH27

J'ajoute dans le doute mon fichier de conf config.json.txt

StephanH27 avatar Jan 21 '21 12:01 StephanH27

Je ne comprends pas pourquoi mon alarme est invisible alors qu'elle semble avoir été traitée

Starting to advertise 'Homebridge 3ACC EF68' using ciao backend! [3/5/2021, 6:01:04 AM] Homebridge v1.3.2 (Homebridge 3ACC) is running on port 51405. [3/5/2021, 6:01:05 AM] [Tydom] Successfully connected to Tydom hostname='mediation.tydom.com' with username='001A2500XXXX' [3/5/2021, 6:01:07 AM] [Tydom] Found new tydom device named="Centrale" with id="5df484b6-2b83-4731-9485-39bf1a147c39" [3/5/2021, 6:01:07 AM] [Tydom] Creating accessory named="Centrale" with id="5df484b6-2b83-4731-9485-39bf1a147c39" [3/5/2021, 6:01:07 AM] [Tydom] Updating accessory named="Centrale" with id="5df484b6-2b83-4731-9485-39bf1a147c39"

StephanH27 avatar Mar 05 '21 12:03 StephanH27

En effet, c'est étrange que tu n'ai rien dans HomeKit car l'accessoire semble être correctement créé et je ne vois pas d'erreur dans tes logs.

Il te manque toujours la variable d'environnement pour activer le debug mais a priori une erreur devrait être visible quand même.

mgcrea avatar Mar 05 '21 14:03 mgcrea

Est-ce mieux pour les logs ? homebridge.log.txt

StephanH27 avatar Mar 05 '21 14:03 StephanH27

Ou alors, tu penses que ce serait un problème d'HomeBridge ?

StephanH27 avatar Mar 07 '21 10:03 StephanH27

Je désespère de faire fonctionner un jour mon alarme DeltaDore CTX60 Quelqu'un a-t-il réussi à en piloter une via ce plugin ?

StephanH27 avatar Apr 11 '21 18:04 StephanH27

J'ouvre ce vieux commentaire Cette centrale est mon seul équipement non reconnu ... Une aide serait sympa !

Merci ...

StephanH27 avatar Nov 25 '22 07:11 StephanH27

Tu peux tester la 0.23.12 et voir ce que cela donne, pas évident à l'aveugle mais il y a une petite chance que ça fonctionne (au moins en partie).

mgcrea avatar Nov 25 '22 23:11 mgcrea

Merci beaucoup. Malheureusement, ça ne fonctionne pas (ça plante même tout) Je suis revenu à la version d'hier ...

Je n'aurai pas le temps de prendre des logs aujourd'hui ... demain oui. ScreenShot

StephanH27 avatar Nov 26 '22 07:11 StephanH27

Ok, ça devrait être corrigé avec la v0.23.13

mgcrea avatar Nov 26 '22 17:11 mgcrea

Super, je vois une centrale !!! Mais quand je l'ouvre, j'en vois 5 !

IMG_7EF71EC66448-1

StephanH27 avatar Nov 26 '22 19:11 StephanH27

avec un doute sur cette ligne dans les Log [11/26/2022, 8:36:19 PM] [Tydom] Setting up legacy zones

homebridge.log.txt

Je pense en fait qu'il y a la centrale, et 4 Equipements. Mais j'ai 3 radars, et 10 capteurs d'ouverture. Il faut que je creuse de mon côté.

StephanH27 avatar Nov 26 '22 19:11 StephanH27

Ce sont les zones individuelles par exemple rdc, etage, jardin…

mgcrea avatar Nov 26 '22 20:11 mgcrea

ha ok pour les zones. il faut juste que je vois comment les identifier : elles s'appellent toutes "Centrale"

Et les modes de l'alarme ? J'ai bien cela dans mon fichier de conf, mais c'est sans effet

      "aliases": {
                    "stay": [
                        1
                    ],
                    "night": [
                        2
                    ],
                    "away": [
                        3
                    ]
                },
                "sensors": false
            }

StephanH27 avatar Nov 26 '22 20:11 StephanH27

Bon... Je pense que les zones HomeKit (stay, away night) correspondent aux partielles de ma CTX60. Je vais vérifier par des tests. Par contre, je ne comprends pas ces 4 zones. là aussi, je vais voir dans la doc de la Tyxal+ et essayer de voir comment cela peut être interprété pour la CTX60

Pour info, l'arrêt de l'alarme ce matin a généré 4 ordres d'arrêt dans les logs de la centrale

En tous cas, on est proche du but ! merci !!!

StephanH27 avatar Nov 27 '22 09:11 StephanH27

La centrale supporte jusque 4 zones, normalement seules marquées comme étant utilisées sont censées remonter dans HomeKit mais après ça dépend de ta configuration, je vais peut-être voir pour rajouter une config pour figer les zones disponibles.

Les états dans HomeKit (off, stay, night, away) sont spécifiques à homekit et sont les états par défaut. Côté homebridge, je considère off comme tout éteint et away tout allumé, donc déjà pas besoin de spécifier l'alias "away".

Pour les deux autres, tu peux les associer à un état de tes zones, par ex. si tu as trois zones activables dans tydom, tu peux faire:

          "aliases": {
            "stay": [3],
            "night": [2, 3]
          },

qui signifie alors que activer la zone N#3 revient au même que de mettre l'état stay, et activer les deux zones N#2 & N#3 ([2, 3]) revient au même que de mettre l'état night. L'état away sera [1, 2, 3]

En espérant que ce soit clair!

Pour les ordres dupliqués, j'ai l'impression que l'API de ta centrale ne permet pas de setter toutes les zones d'un coup, d'ou les 4 appels distincts. Pour voir si il y a mieux, il me faudrait les logs de type listen pendant que tu joues avec la centrale via l'appli tydom:

npx tydom-client listen --username 001A25XXXXXX --password XXXXXX

Enfin j'ai release une nouvelle version v0.23.14 qui devrait corriger l'activation indépendante des zones.

mgcrea avatar Nov 27 '22 15:11 mgcrea

Je viens de mettre à jour le plugin, et je m'apprête à générer les logs ..

Il y a toutefois des erreur au lancement du plugin :
[11/27/2022, 5:03:39 PM] [Tydom] Properly loaded 26-accessories [11/27/2022, 5:03:39 PM] [Tydom] Setting up legacy zones [11/27/2022, 5:03:53 PM] [Tydom] Encountered an uncaught error while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"OFF"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"upToDate","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":12},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2022-11-27T16:03:53.846Z"}"

StephanH27 avatar Nov 27 '22 16:11 StephanH27

A noter que la CTX60 ne dispose pas de zones en tant que tel ... Les partielles activent les capteurs qui lui sont associés (ce qui revient un peu près au même au finnal, mais est beaucoup moins souple : on ne peut pas dire que la partielle 1 active les zones 1 et 2 par exemple ...)

Et voici le fichier de traces, obtenu après :
Mise en marche totale, puis arrêt de l'alarme Mise en marche Partielle 1 (zone extérieure seulement, une sorte de mode "Nuit"), puis arrêt de l'alarme Mise en marche Partielle 2 (nuit), puis arrêt de l'alarme Mise en marche Partielle 3 (idem à away) puis arrêt de l'alarme Mise en marche de la partielle 4 (non définie !), puis arrêt de l'alarme. Listen (Terminal).txt

StephanH27 avatar Nov 27 '22 16:11 StephanH27

Bizarre, dans les traces je ne vois pas l'appel qui concerne la mise en marche totale, tu le fait bien avec l'appli Tydom? Possible de refaire un dump avec juste la mise en marche totale et l'arrêt total pour confirmer?

Pour les partielles, on ne peut pas en activer plusieurs en même temps si j'ai bien compris?

mgcrea avatar Nov 28 '22 22:11 mgcrea

Bonsoir, Oui, j'ai fait les traces avec l'App Tydom, depuis le même iPad.: Totale : marche arrêt, puis les 4 partielles (marche arrêt à chaque fois)

Je referai un test demain (en espérant que cela fonctionne à distance, je ne serai pas sur place ...)

Pour les partielles, effectivement, c'est une seule à un instant donné : Chaque partielle peut toutefois avoir des détecteurs communs avec d'autres. Concrètement, j'active la partielle "nuit", ou la partielle "Bâtiments". Je ne peux pas activer les partielles "Bâtiments+Nuit", sauf à créer un partielle qui englobe les capteurs des deux autres.

StephanH27 avatar Nov 28 '22 22:11 StephanH27

Voici un nouveau fichier de traces (uniquement avec une marche totale) Est-ce mieux ? Tydom Terminal.txt

StephanH27 avatar Nov 29 '22 07:11 StephanH27

@mgcrea , Je me permet un up sur ce sujet peut être passé à la trappe ...

A noter pour information que j'ai toujours, environ toutes les 2 minutes une erreur comme suit : [12/3/2022, 8:24:37 PM] [Tydom] Encountered an uncaught error while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"ON"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"expired","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":7},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2022-12-03T19:24:37.861Z"}"

StephanH27 avatar Dec 03 '22 18:12 StephanH27

@mgcrea , Je me permet un up sur ce sujet peut être passé à la trappe ...

A noter pour information que j'ai toujours, environ toutes les 2 minutes une erreur comme suit : [12/3/2022, 8:24:37 PM] [Tydom] Encountered an uncaught error while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"ON"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"expired","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":7},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2022-12-03T19:24:37.861Z"}"

Du coup il me manque la ligne d'après qui devrait indiquer d'ou vient l'erreur, j'ai release une nouvelle version 0.24.0 qui ajoute le log de l'erreur, peux-tu essayer et me transmettre à nouveau le log? Merci!

mgcrea avatar Aug 22 '23 18:08 mgcrea

j'ai mis à jour et j'ai relancé.

Cela donne ça :

[8/22/2023, 9:00:33 PM] [Tydom] Encountered an uncaught error={"name":"AssertionError","message":"Unexpected missing service "Switch" with subtype="zone_0" in accessory","stack":"AssertionError [ERR_ASSERTION]: Unexpected missing service "Switch" with subtype="zone_0" in accessory\n at new AssertionError (node:internal/assert/assertion_error:452:5)\n at assert (/homebridge/node_modules/homebridge-tydom/lib/utils/assert.js:7:15)\n at getAccessoryServiceWithSubtype (/homebridge/node_modules/homebridge-tydom/lib/helpers/accessory.js:28:24)\n at /homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:431:80\n at Array.forEach ()\n at updateSecuritySystem (/homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:376:13)\n at TydomPlatform.handleControllerDataUpdate (/homebridge/node_modules/homebridge-tydom/lib/platform.js:76:13)\n at TydomController.emit (node:events:513:28)\n at /homebridge/node_modules/homebridge-tydom/lib/controller.js:194:22\n at Array.forEach ()"} while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"ON"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"expired","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":26},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2023-08-22T19:00:33.872Z"}" [8/22/2023, 9:01:33 PM] [Tydom] Encountered an uncaught error={"name":"AssertionError","message":"Unexpected missing service "Switch" with subtype="zone_0" in accessory","stack":"AssertionError [ERR_ASSERTION]: Unexpected missing service "Switch" with subtype="zone_0" in accessory\n at new AssertionError (node:internal/assert/assertion_error:452:5)\n at assert (/homebridge/node_modules/homebridge-tydom/lib/utils/assert.js:7:15)\n at getAccessoryServiceWithSubtype (/homebridge/node_modules/homebridge-tydom/lib/helpers/accessory.js:28:24)\n at /homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:431:80\n at Array.forEach ()\n at updateSecuritySystem (/homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:376:13)\n at TydomPlatform.handleControllerDataUpdate (/homebridge/node_modules/homebridge-tydom/lib/platform.js:76:13)\n at TydomController.emit (node:events:513:28)\n at /homebridge/node_modules/homebridge-tydom/lib/controller.js:194:22\n at Array.forEach ()"} while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"ON"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"expired","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":26},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2023-08-22T19:01:33.945Z"}" [8/22/2023, 9:07:33 PM] [Tydom] Encountered an uncaught error={"name":"AssertionError","message":"Unexpected missing service "Switch" with subtype="zone_0" in accessory","stack":"AssertionError [ERR_ASSERTION]: Unexpected missing service "Switch" with subtype="zone_0" in accessory\n at new AssertionError (node:internal/assert/assertion_error:452:5)\n at assert (/homebridge/node_modules/homebridge-tydom/lib/utils/assert.js:7:15)\n at getAccessoryServiceWithSubtype (/homebridge/node_modules/homebridge-tydom/lib/helpers/accessory.js:28:24)\n at /homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:431:80\n at Array.forEach ()\n at updateSecuritySystem (/homebridge/node_modules/homebridge-tydom/lib/accessories/securitySystem.js:376:13)\n at TydomPlatform.handleControllerDataUpdate (/homebridge/node_modules/homebridge-tydom/lib/platform.js:76:13)\n at TydomController.emit (node:events:513:28)\n at /homebridge/node_modules/homebridge-tydom/lib/controller.js:194:22\n at Array.forEach ()"} while processing message={"type":"request","uri":"/devices/data","method":"PUT","status":null,"body":[{"id":197849,"endpoints":[{"id":1,"error":1,"data":[{"name":"alarmMode","validity":"upToDate","value":"ON"},{"name":"alarmState","validity":"upToDate","value":"OFF"},{"name":"alarmTechnical","validity":"upToDate","value":false},{"name":"alarmSOS","validity":"expired","value":false},{"name":"unitBatteryDefect","validity":"upToDate","value":false},{"name":"unitAutoProtect","validity":"upToDate","value":false},{"name":"unitInternalDefect","validity":"upToDate","value":false},{"name":"systAlarmDefect","validity":"upToDate","value":false},{"name":"systAutoProtect","validity":"upToDate","value":false},{"name":"systBatteryDefect","validity":"upToDate","value":false},{"name":"systSupervisionDefect","validity":"upToDate","value":false},{"name":"systOpenIssue","validity":"upToDate","value":false},{"name":"systSectorDefect","validity":"upToDate","value":false},{"name":"systTechnicalDefect","validity":"upToDate","value":false},{"name":"outTemperature","validity":"upToDate","value":26},{"name":"part1State","validity":"upToDate","value":"OFF"},{"name":"part2State","validity":"upToDate","value":"OFF"},{"name":"part3State","validity":"upToDate","value":"OFF"},{"name":"part4State","validity":"upToDate","value":"OFF"}]}]}],"headers":{},"date":"2023-08-22T19:07:33.941Z"}"

StephanH27 avatar Aug 22 '23 19:08 StephanH27

Ok top, j'ai release une 0.24.1 a tester qui pourrait corriger l'erreur.

mgcrea avatar Aug 22 '23 20:08 mgcrea

Merci beaucoup !!! J'ai installé la 0.24.1 Je n'ai plus l'erreur dans les logs. Je ne suis pas chez moi … je testerai plus à fond vendredi ...

StephanH27 avatar Aug 22 '23 21:08 StephanH27