Bonjour
De mon coté j’utilise le blueprint et ca fonctionne plutot bien. Seul la touche SOS qui ne répond pas ou bien j’ai pas compris comment elle fonctionne
Loïc
Bonjour
De mon coté j’utilise le blueprint et ca fonctionne plutot bien. Seul la touche SOS qui ne répond pas ou bien j’ai pas compris comment elle fonctionne
Loïc
En fait le blueprint n’émet pas de bips successifs et clignotement de la led jusqu’à armement de l’alarme. C’est pour çà que j’ai rajouter le flux node red en plus.
Bonjour à tous,
J’ai effectivement mis à jour mon flux mais je pense que l’ancien fonctionne.
Le nouveau est traduit en francais et la configuration est simplifiée
Je vous refais en image les 4 étapes rapides de configuration :
[{"id":"7585c8cca575bbd1","type":"tab","label":"Intégration Keypad","disabled":false,"info":"# Goal\r\nThis flow synchronize alarmo with a keypad frient KEYZB-110\r\nref : https://www.zigbee2mqtt.io/devices/\r\n\r\nYou need to adapt :\r\n- ","env":[]},{"id":"5cf954be45757eb8","type":"group","z":"7585c8cca575bbd1","name":"Mettre à jour le clavier en fonction de l'état de l'alarme","style":{"label":true},"nodes":["a1636fec8e5262ce","18e2c8e68f700944","24f7f5fd5dee8f32","e35b1984724bae27","dfacf394f8cb268a","d811130016f120d9"],"x":14,"y":19,"w":1052,"h":142},{"id":"346897eded33ac92","type":"group","z":"7585c8cca575bbd1","name":"Mettre à jour l'alarme en fonction des actions clavier","style":{"label":true},"nodes":["8ff49e42baa6e5a2","e3297e7c1aae35f3","e6595d79046f9c72","5f07e2a2e80ffada"],"x":14,"y":179,"w":852,"h":129.5},{"id":"64cef2cba18cc076","type":"group","z":"7585c8cca575bbd1","name":"Créer et mettre à jour le capteur \"lecteur RFID\"","style":{"label":true},"nodes":["e341d9f9f0fab34f","425258d1f3e10866","816acb82da7beeac"],"x":14,"y":339,"w":912,"h":82},{"id":"8ff49e42baa6e5a2","type":"function","z":"7585c8cca575bbd1","g":"346897eded33ac92","name":"Créer une commande Alarmo","func":"var p=msg.payload;\n\n//Use case : SOS button\nif ( p.action==\"emergency\" )\n{\n return [msg,null,null];\n}\n\n//Ignore null action\nif ( p.action == null || p.action_transaction==null)\n{\n return [null,null,null];\n}\n//Store last valid keypad_action\nflow.set(\"keypad_last\",p);\n\nvar modes=\n{\n \"arm_day_zones\": \"ARM_HOME\",\n \"arm_night_zones\": \"ARM_AWAY\",\n \"arm_all_zones\": \"ARM_AWAY\",\n \"disarm\": \"DISARM\"\n};\n\nif ( p.action in modes )\n{\n var np={ \"command\": modes[p.action] };\n np['code']=p.action_code;\n msg.topic = flow.get(\"alarmo_command_topic\");\n msg.payload=np;\n msg['qos']=2;\n msg['retain']=true; //According to alarmo documentation\n}\nelse\n msg=null;\n\nreturn [null,msg,flow.get(\"keypad_last\")];","outputs":3,"timeout":0,"noerr":0,"initialize":"/**\n * Guide de démarrage\n */\n\n/** 1) Paramétrer le topic MQTT de votre clavier\n * \n * Remplacer \"zigbee2mqtt/keypad_accueil_kine\" par le topic mqtt de votre clavier \n * Typiquement il est formé ainsi \"zigbee2mqtt/<le nom simplifié de votre clavier dans zigbee2mqtt>\"\n * \n * /!\\ Ce topic doit être aussi saisi dans le noeud \"Quand le clavier est actionné\",\n * dans le champ sujet\n */\nflow.set(\"keypad_event_topic\", \"zigbee2mqtt/en_alarm_keypad\");\n\n\n/** 2) Parametrer les topics d'alarmo\n * le topic par défaut d'alarmo n'est normalement pas à changer\n *\n * /!\\ Pour que l'alarmo fonctionne, il faut que l'option \n * \"Utilisation avec MQTT\" soit activée dans l'onglet générale\n *\n * /!\\ Attention, il ne faut pas créer de zones dans Alarmo \n * Ce flux NodeRed ne fonctionne pas pour le multizone\n * \n * 3) Déployer le flux et vérouiller l'alarme depuis home assistant\n * Il est nécessaire d'initialiser une première fois le clavier avec l'état de l'alarme\n * \n *\n * NB : si le clavier se retrouve dans un état instable, \n * Je vous conseille de changer l'état de l'alarme via l'interface home assistant.\n * Cela vous assure de résoudre le soucis\n * Ceci dit, ca ne devrait pas arrivé, et n'hésitez pas à faire remonter un bug si vous en détectez\n * mais compte tenu de l'implémentation, une activation/désactivation de l'alarme via l'interface permettra toujours au clavier de revenir à un état correcte. \n * \n */\n// \nflow.set(\"alarmo_event_topic\", \"alarmo/event\");\nflow.set(\"alarmo_command_topic\", \"alarmo/command\");\n\n//Last keypad action payload, A Ne pas toucher\nflow.set(\"keypad_last\", null); \nflow.set(\"keypad_command_topic\", flow.get(\"keypad_event_topic\") + \"/set\"); //Don't touch\n\n//","finalize":"","libs":[],"x":450,"y":260,"wires":[["5f07e2a2e80ffada"],["e6595d79046f9c72"],["816acb82da7beeac"]],"outputLabels":["SOS Button Clicked","Alarmo Command","[DEBUG] Last keypad action"],"info":"Open 'OnStart' tab, to edit the 4 following topics"},{"id":"a1636fec8e5262ce","type":"function","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Créer l'action clavier adéquate, si nécessaire","func":"var keypad_last = flow.get(\"keypad_last\");\nif (keypad_last == null )\n return [null,null];\nmsg[\"topic\"] = flow.get(\"keypad_command_topic\");\n\nvar arm_events={\n \"ARM_AWAY\":\"arm_all_zones\",\n \"ARM_HOME\":\"arm_day_zones\",\n \"ARM_NIGHT\":\"arm_night_zones\",\n \"ARM_VACATION\":\"arm_all_zones\",\n \"INVALID_CODE_PROVIDED\":\"invalid_code\",\n \"COMMAND_NOT_ALLOWED\" : \"already_disarmed\",\n \"FAILED_TO_ARM\": \"invalid_code\"\n}\nvar event = msg.payload.event;\nif ( event in arm_events )\n{\n if (keypad_last!=null)\n {\n var keypad_last_copy = JSON.parse(JSON.stringify(keypad_last));\n var payload =\n {\n \"arm_mode\":\n {\n \"transaction\": keypad_last_copy.action_transaction,\n \"mode\": arm_events[event]\n }\n };\n msg[\"payload\"] = payload;\n flow.set(\"keypad_last\",null);\n }\n}\nelse\n msg=null;\n\nreturn [msg, keypad_last];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":60,"wires":[["24f7f5fd5dee8f32"],[]],"inputLabels":["Alarmo event"],"outputLabels":["Keypad responses","[DEBUG] Last keypad action"]},{"id":"e3297e7c1aae35f3","type":"mqtt in","z":"7585c8cca575bbd1","g":"346897eded33ac92","name":"Quand le clavier est actionné","topic":"zigbee2mqtt/en_alarm_keypad","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":160,"y":260,"wires":[["8ff49e42baa6e5a2"]]},{"id":"18e2c8e68f700944","type":"mqtt in","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Quand un évenement Alarmo survient","topic":"alarmo/event","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":190,"y":60,"wires":[["a1636fec8e5262ce"]]},{"id":"24f7f5fd5dee8f32","type":"mqtt out","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Mettre à jour le clavier","topic":"","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":940,"y":60,"wires":[]},{"id":"e6595d79046f9c72","type":"mqtt out","z":"7585c8cca575bbd1","g":"346897eded33ac92","name":"Publier la commande","topic":"","qos":"2","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":740,"y":260,"wires":[]},{"id":"e35b1984724bae27","type":"trigger-state","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Quand l'état de l'alarme change","server":"cc7e32c2.da4f1","version":4,"inputs":0,"outputs":2,"exposeAsEntityConfig":"","entityId":"alarm_control_panel.alarmo","entityIdType":"exact","debugEnabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is_not","comparatorValueDatatype":"prevEntity","comparatorValue":"state"}],"customOutputs":[],"outputInitially":false,"stateType":"str","enableInput":false,"x":170,"y":120,"wires":[["dfacf394f8cb268a"],[]]},{"id":"dfacf394f8cb268a","type":"function","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Créer l'action clavier adéquate, si nécessaire","func":"var state=msg.payload;\nvar messages = []\nmsg[\"topic\"] = flow.get(\"keypad_command_topic\");\n\n//Hack : there is no event disarm\nif ( state == \"disarmed\") \n{\n var keypad_last = flow.get(\"keypad_last\");\n if (keypad_last != null )\n {\n var keypad_last_copy = JSON.parse(JSON.stringify(keypad_last));\n var msg2=\n {\n \"topic\": msg.topic,\n \"payload\":\n {\n \"arm_mode\":\n {\n \"transaction\": keypad_last_copy.action_transaction,\n \"mode\": \"disarm\"\n }\n \n }\n }\n messages.push(msg2);\n flow.set(\"keypad_last\", null);\n }\n}\n\nvar alarmo_states = {\n \"armed_away\": \"arm_all_zones\",\n \"armed_night\": \"arm_night_zones\",\n \"armed_home\": \"arm_day_zones\",\n \"armed_vacation\": \"arm_all_zones\",\n \"disarmed\": \"disarm\",\n \"triggered\": \"in_alarm\",\n \"arming\": \"exit_delay\",\n \"pending\": \"exit_delay\"\n};\n\n//Tell keypad the state of alarmo\nif ( state in alarmo_states )\n{\n var p =\n {\n \"arm_mode\":\n {\n \"mode\": alarmo_states[state]\n }\n };\n msg.payload = p;\n messages.push(msg);\n} \nreturn [messages,flow.get(\"keypad_last\")];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":120,"wires":[["24f7f5fd5dee8f32"],[]],"outputLabels":["Keypad command ","[DEBUG] Last keypad action"]},{"id":"5f07e2a2e80ffada","type":"debug","z":"7585c8cca575bbd1","g":"346897eded33ac92","name":"SOS Button","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":750,"y":220,"wires":[]},{"id":"d811130016f120d9","type":"comment","z":"7585c8cca575bbd1","g":"5cf954be45757eb8","name":"Guide de démarrage","info":"# Guide de démarrage\n1) Activer le controle d'alarmo par mqtt \nIl faut se rendre sur les paramètres d'alarmo.\nDans l'onglet général, il faut activer l'option \"Utilisation avec MQTT\" \n\n2) Paramétrer le topic pour votre keypad\n\nCliquer sur le noeud \"Créer une commande Alarmo\", dans l'onglet \"au démarrage\", \nspécifier le topic de votre clavier\n\n - keypad_event_topic\n\n3) Configure OnKeypadEvents node with the same topic\n\nThe attributes \"topic\" should match keypad_event_topic\n\nYou can deploy your flow, it should work \n\nNB : \n\n# if you have a specific alarmo config \n\nIf you have a specific alarmo config, you need to adapt\n - The variables alarmo_event_topic and alarmo_event_command on ProcessKeypadEvents Node \n It should match your alarmo mqtt config\n - The subcription topic on OnAlarmoEvents node\n It should match alarmo_event_topic\n - The entity on OnAlarmoState node\n \nThose topics should match, your alarmo mqtt config \n\nIf needed, do the same for OnAlarmoEvents\n\n# Set up RFID\n\n1) Put your tag on the keypad and press any \"arm\" button\n2) Go to the debug console and copy the code printed by \"Show Code\" node\n It should look like this \"+AD56456\"\n3) Got to the Alarmo panel just add a user\n\n# Notes \n \nYou can handle custom actions.\n - Replace \"SOS Node\" with your subflow \n to perform an action when SOS button is pressed\n - Replace \"SHOW Code Node\" with you subflow to perform \n a custom action when a specific code is prompted\n\n@author : Akim SAIDANI","x":920,"y":120,"wires":[]},{"id":"425258d1f3e10866","type":"mqtt out","z":"7585c8cca575bbd1","g":"64cef2cba18cc076","name":"Publier la valeur/définition du capteur","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":750,"y":380,"wires":[]},{"id":"816acb82da7beeac","type":"function","z":"7585c8cca575bbd1","g":"64cef2cba18cc076","name":"Créer ou mettre à jour le capteur RFID","func":"var code = msg.action_code;\nvar topic=msg.keypad_event_topic;\n\nvar keypad_topic = flow.get(\"keypad_event_topic\");\nvar keypad_name = keypad_topic.replace(/^.*[\\\\/]/, '');\nvar keypad_rfid_name = keypad_name + \"_rfid\";\nvar keypad_rfid_topic = \"keypads/\" + keypad_rfid_name;\n\nif ( topic!=null )\n{\n var discovery_topic = \"homeassistant/sensor/\" + keypad_rfid_name + \"/config\"\n var discovery_payload = {\n \"name\": keypad_rfid_name,\n \"state_topic\": keypad_rfid_topic,\n \"unique_id\": keypad_rfid_name\n };\n return { \"topic\": discovery_topic, \"payload\": discovery_payload };\n}\nelse if( code!=null && code.startsWith(\"+\"))\n{\n return { \"topic\": keypad_rfid_topic,\"payload\":code};\n}\nelse\n return null;\n\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":380,"wires":[["425258d1f3e10866"]]},{"id":"e341d9f9f0fab34f","type":"inject","z":"7585c8cca575bbd1","g":"64cef2cba18cc076","name":"Au démarrage","props":[{"p":"keypad_event_topic","v":"keypad_event_topic","vt":"flow"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":140,"y":380,"wires":[["816acb82da7beeac"]]},{"id":"5914a38474afa853","type":"mqtt-broker","name":"Mqtt local","broker":"homeassistant.local","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"cc7e32c2.da4f1","type":"server","name":"Home Assistant","addon":true}]
Importer ce nouveau flux dans node red.
Le topic est formé du nom simplifié de votre keypad avec le préfixe « zigbee2mqtt/ »
On retrouve ce nom simplifié ici
Il faut saisir ce topic également dans le noeud « Quand le clavier est actionné »
le controle d’alarmo via mqtt doit être activée
Il faut activer/désactiver l’alarme une première fois via l’interface Home Assistant pour initialiser le clavier
Important, le clavier est connecté à la zone Alarmo.
Ca ne marche pas pour le multizone (il faudra adapter le flux sinon)
Si vous renommez la zone, il faudra modifier le topic en conséquence dans le noeud « création d’une commande Alarmo »
Bjr,
De quel blueprint parlez-vous ?
Puis-je avoir le lien svp.
Salut,
Je suis reparti de zéro, importé ton nouveau flux puis suivi tes instructions.
Je n’ai plus aucun souci tout fonctionne, j’ai donc pu enlevé le blueprint que j’avais mis en plus.
Je te remercie infiniment pour ton travail car je n’ai trouvé que toi qui ai fait un travail aussi complet et simple à configurer pour ce clavier .
Salut Luc,
Il parle du même blueprint que j’ai utilisé, c’est à dire celui ci:
https://community.home-assistant.io/t/zigbee2mqtt-sync-keypad-and-alarm-control-panel-states/345311
Je te conseille quand même d’utiliser le dernier flux nod red d’akim car pour ma part, il fonctionne parfaitement bien maintenant.
Merci pour la réponse.
Peut-on mettre plusieurs codes pin pour le clavier pour activer et désactiver l’alarme.
Je ne connais pas du tout nod red …
Bonjour à toutes, tous,
Un grand merci à Akim pour ton travail et ta disponibilité.
Ainsi qu’aux autres contributeurs sur le sujet.
Grâce à vous tout fonctionne sur mon système.
Armand
Je me permets de répondre.
Tu peux gérer plusieurs codes pin dans Alarmo (section CODES → Gestion des utilisateurs), cela fonctionne avec le flux d’Akim.
Armand
Hello, j’utilise aussi ce keypad avec Alarmo sur HA via la dernière version du code d’@akim pour Node Red et un grand merci pour son travail.
Malheureusement les LEDs du clavier ne fonctionnent toujours pas
Ceux qui ont rencontré le pb pourraient me donner un coup de main ?
Un grand merci par avance !:
Bonjour Eklozion,
Je suis ravi que çà fonctionne pour toi.
J’en profite pour donner d’autres précisions pour ceux qui galèrent.
Si vous avez télécharger le blueprint, il faut bien-sur le désactiver
J’en profite pour vous montrer comment fonctionne l’utilisation d’un badge rfid.
Le flux créé automatiquement un capteur qui a le même nom que votre keypad avec le suffixe « _rfid ».
Allez dans outils de développement, puis dans l’onglet état, taper « rfid » et vous devriez trouver le nom de votre lecteur RFID.
Pour lire un badge, il suffit de passer le badge sur votre clavier, vous allez entendre un bip.
Appuyer sur la touche pour armer ou désarmer l’alarme.
Evidemment il ne se passe rien car votre badge n’est pas autorisé.
Le contenu du badge devrait être visible dans l’état du capteur
Il commence forcément par un ‹ + ›.
Il suffit d’ajouter ce code dans alarmo (sans oublier le +) en créant un nouvel utilisateur
Pour les badges, vous pouvez commandez ceux là.
Ils sont pas cher et fonctionne très bien.
https://amzn.eu/d/0ydkFi9
Personnellement, je badge pour armer et désarmer.
C’es très partique pour la femme de ménage qui aussi un badge et n’a pas besoin de code. Ce qui me permet de connaitre aussi son arrivée et son départ.
Globalement Alarmo et ce clavier fonctionne super bien.
@Steph73 Je peux t’aider, pourrais tu donner des infos sur ce qui marche et ce qui ne marche pas.
Bonjour,
J’ai aussi ce clavier avec Alarmo. J’utilise ZHA et pour la gestion du clavier, j’ai juste 4 automatismes (3 pour les modes d’armements (nuit, présence, absence) et 1 pour le désarmement) Je désarme l’alarme par code sur le clavier, ou un bages RFID, ou par l’application et les LEDs du clavier représentent bien l’état de l’alarme.
Pour les badges, j’ai ce modèle :
Pour la gestion du clavier j’ai suivi ce Tuto :
Bonjour @akim.
Bon désolé, j’ai fait un premier post, puis je l’ai modifié pour mettre un autre.
Je suis parti un peu dans tous les sens.
Je t’explique :
J’ai d’abord essayé avec le BluePrint et tout semblait OK.
3 badges compatibles pour lesquels j’ai bien récupéré les codes (Nickel)
J’ai voulu faire pareil avec mon smartphone Huaiwei P30 Pro.
Mauvaise idée car en fait le téléphone génère un nouveau code à chaque utilisation. (on oublie le smartphone)
Avec le BluePrint et les badges tout semblait fonctionner sauf qu’au bout d’un moment (tu ne sais pas pourquoi) les LED et les bips finissent par ne plus marcher.
J’ai donc ajouté (par la force des choses) Node Red que je ne connaissais pas.
J’ai importé ton dernier flux qui m’a tout stabilisé : Fonctionnement + LEDs + Bip clavier.
Maintenant, si je retire ou désactive le blueprint, les changements de modes fonctionnent toujours mais plus les Bips ni les LED’s du clavier.
Tant que les 2 fonctionnent en parallèle tout marche sauf que la cohabitation Node red + BluePrint ne me plait pas plus que ça.
J’ai l’impression que c’est tout bancale et surtout de ne rien maîtriser.
L’autre étrangeté est que depuis la mise en route du flux node red, si je reboot HA, Alarmo bascule en mode armé (absent) à chaque démarrage. Avec potentiellement la sirène qui se déclenche si je ne pense pas à changer le mode au moment du demarrage de HA…
Merci pour l’aide que tu pourras m’apporter.
Stéphane
De mon côté, avec le blueprint, ce n’était pas stable…
Du coup j’ai installé Node Red et enregistrer son flux mais les 4 noeuds violets ne sont pas verts …
Une idée ?
Un grand merci pour l’aide apportée !
La connexion au broker mqtt échoue. Il faut mettre les bonnes infos de connexion. Broker, user, password.
Où doit-on renseigner ces infos ?
Merci beaucoup pour l’aide
Un petit coup d’oeil à la doc: Connect to an MQTT Broker : Node-RED
J’avoue être dépassé …
J’ai renseigné les identifiants de connexion à Zigbee2mqtt ici mais cela n’a rien donné …
Je suppose que zigbee2mqtt se connecte bien au broker.
Si tel est le cas, en mettant dans l’onglet connexion
le nom du broker (tel que configuré dans z2m) et dans l’onglet sécurité
le même user et password que z2m, ça marche.