Alors, toute la configuration que j’ai ce fait côté Alarmo. Ensuite, j’utilise 2 blueprints qui envoient les bonnes infos à mes 2 keypads (un Ring en Zwave et un Frient en Zigbee).
Le clavier ne va servir qu’à envoyer le message sur Z2M qu’Alarmo va lire et désarmer/armer si le code est bon.
Pareil, lorsque tu armes/désarmes ton alarme, Alarmo prévient les entités concernées (les keypad dans mon cas) pour qu’ils informent l’utilisateur (le Ring me parle alors que le Frient affiche une diode). Et pareil lorsque tu ouvres la porte et que le compte à rebours se met en marche.
Salut,
j’ai également ce keypad. J’ai testé le bluprint ca marche globalement mais c’est compliqué à utiliser et y a des bugs.
Pa exemple, la gestion des led est incomplète. Le keypad n’est pas prévenu quand le délai pour entrer est activé. Il n’est pas non plus prévenu quand l’alarme est déclenché.
Le plus chiant c’est de saisir les codes à 2 endroits différents.
Pour y remédier, je vous partage mon automatisation faite sur node red.
[{"id":"7585c8cca575bbd1","type":"tab","label":"Keypad Frient","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":"8ff49e42baa6e5a2","type":"function","z":"7585c8cca575bbd1","name":"ProcessKeypadEvents","func":"var p=msg.payload;\n\n//Use case : SOS button\nif ( p.action==\"emergency\" )\n{\n return [msg,null,null];\n}\n\n\n//Filter void 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_NIGHT\",\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\n}\nelse\n msg=null;\n\nreturn [null,msg,flow.get(\"keypad_last\")];","outputs":3,"timeout":0,"noerr":0,"initialize":"//Setup topic\nflow.set(\"keypad_event_topic\", \"zigbee2mqtt/en_alarm_keypad\");\nflow.set(\"keypad_command_topic\", flow.get(\"keypad_event_topic\")+\"/set\");\n\n//Default topic for alarmo, change it if needed\nflow.set(\"alarmo_event_topic\", \"alarmo/event\");\nflow.set(\"alarmo_command_topic\", \"alarmo/command\");\n\n//Last keypad action payload, DON'T TOUCH IT\nflow.set(\"keypad_last\", null); ","finalize":"","libs":[],"x":320,"y":160,"wires":[["5f07e2a2e80ffada"],["e6595d79046f9c72"],["9a25af79771647a9"]],"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","name":"ProcessAlarmoEvents","func":"var keypad_last = flow.get(\"keypad_last\");\nif (keypad_last == null )\n return [null,null];\n//Set topic\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\": \"not_ready\"\n}\nvar event = msg.payload.event;\nif ( event in arm_events )\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}\nelse\n msg=null;\n\nreturn [msg, keypad_last];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":40,"wires":[["24f7f5fd5dee8f32"],[]],"inputLabels":["Alarmo event"],"outputLabels":["Keypad responses","[DEBUG] Last keypad action"]},{"id":"e3297e7c1aae35f3","type":"mqtt in","z":"7585c8cca575bbd1","name":"OnKeypadEvents","topic":"zigbee2mqtt/en_alarm_keypad","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":100,"y":160,"wires":[["8ff49e42baa6e5a2"]]},{"id":"18e2c8e68f700944","type":"mqtt in","z":"7585c8cca575bbd1","name":"OnAlarmoEvents","topic":"alarmo/event","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":100,"y":40,"wires":[["a1636fec8e5262ce"]]},{"id":"24f7f5fd5dee8f32","type":"mqtt out","z":"7585c8cca575bbd1","name":"UpdateKeypad","topic":"","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":580,"y":40,"wires":[]},{"id":"e6595d79046f9c72","type":"mqtt out","z":"7585c8cca575bbd1","name":"UpdateAlarmo","topic":"","qos":"2","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":580,"y":160,"wires":[]},{"id":"e35b1984724bae27","type":"trigger-state","z":"7585c8cca575bbd1","name":"OnAlarmoState","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":100,"y":100,"wires":[["dfacf394f8cb268a"],[]]},{"id":"dfacf394f8cb268a","type":"function","z":"7585c8cca575bbd1","name":"ProcessAlarmoState","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\": \"entry_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":320,"y":100,"wires":[["24f7f5fd5dee8f32"],[]],"outputLabels":["Keypad command ","[DEBUG] Last keypad action"]},{"id":"5f07e2a2e80ffada","type":"debug","z":"7585c8cca575bbd1","name":"SOS Button","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":100,"wires":[]},{"id":"9a25af79771647a9","type":"debug","z":"7585c8cca575bbd1","name":"Show code","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"action_code","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":220,"wires":[]},{"id":"d811130016f120d9","type":"comment","z":"7585c8cca575bbd1","name":"Getting Started","info":"# Getting started\n1) Activate MQTT Control alarmo \n\n\n2) Edit ProcessKeypadEvents Node\n Go the \"Startup\" tab, define the topic for your keypad\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\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":120,"y":220,"wires":[]},{"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}]
Le flux est très simple, il n’y a que 8 noeuds.
Pour utiliser l’automatisation, il faut juste importer ce flux dans node red et définir le topic pour votre keypad dans le noeud « ProcessKeypadEvents ». Ca se passe dans l’onglet « Au démarrage »
Il faut également reporter ce même topic dans le noeud « OnKeypadEvents ».
Il faut également activer l’utilisation de mqtt dans les paramètres généraux d’Alarmo.
Déployez et ca devrait marcher!
Cette automatisation gère également le RFID, j’ai mis une doc pour aider à le paramétrer.
N’hésitez pas à faire un retour.
Bonjour Akim,
Merci beaucoup pour ce partage, ça fonctionne bien avec node red !
En revanche les leds ne fonctionnent pas :-/ As-tu le même problème ?
Merci pour ton retour ![]()
Salut Frank,
j’ai mis à jour il y a un mois le flux.
Maintenant ca créé également un capteur pour pouvoir afficher le code RFID dans l’IHM.
Personnellement, j’utilise l’alarme au quotidien et les leds (et le son) marchent nickel.
J’ai aussi installé l’alarme chez un ami et pour l’instant pas de problème constaté.
Essie cette version, j’ai peut être corrigé un bug sans le savoir.
Si tu as toujours le soucis des leds je veux bien plus de détails.
[{"id":"8ff49e42baa6e5a2","type":"function","z":"7585c8cca575bbd1","name":"ProcessKeypadEvents","func":"var p=msg.payload;\n\n//Use case : SOS button\nif ( p.action==\"emergency\" )\n{\n return [msg,null,null];\n}\n\n\n//Filter void 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_NIGHT\",\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\n}\nelse\n msg=null;\n\nreturn [null,msg,flow.get(\"keypad_last\")];","outputs":3,"timeout":0,"noerr":0,"initialize":"//Setup topic\nflow.set(\"keypad_event_topic\", \"zigbee2mqtt/en_alarm_keypad\");\nflow.set(\"keypad_command_topic\", flow.get(\"keypad_event_topic\")+\"/set\");\n\n//Default topic for alarmo, change it if needed\nflow.set(\"alarmo_event_topic\", \"alarmo/event\");\nflow.set(\"alarmo_command_topic\", \"alarmo/command\");\n\n//Last keypad action payload, DON'T TOUCH IT\nflow.set(\"keypad_last\", null); ","finalize":"","libs":[],"x":320,"y":160,"wires":[["5f07e2a2e80ffada"],["e6595d79046f9c72"],["9a25af79771647a9","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","name":"ProcessAlarmoEvents","func":"var keypad_last = flow.get(\"keypad_last\");\nif (keypad_last == null )\n return [null,null];\n//Set topic\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 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}\nelse\n msg=null;\n\nreturn [msg, keypad_last];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":40,"wires":[["24f7f5fd5dee8f32"],[]],"inputLabels":["Alarmo event"],"outputLabels":["Keypad responses","[DEBUG] Last keypad action"]},{"id":"e3297e7c1aae35f3","type":"mqtt in","z":"7585c8cca575bbd1","name":"OnKeypadEvents","topic":"zigbee2mqtt/en_alarm_keypad","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":100,"y":160,"wires":[["8ff49e42baa6e5a2"]]},{"id":"18e2c8e68f700944","type":"mqtt in","z":"7585c8cca575bbd1","name":"OnAlarmoEvents","topic":"alarmo/event","qos":"0","datatype":"auto-detect","broker":"5914a38474afa853","nl":false,"rap":true,"rh":0,"inputs":0,"x":100,"y":40,"wires":[["a1636fec8e5262ce"]]},{"id":"24f7f5fd5dee8f32","type":"mqtt out","z":"7585c8cca575bbd1","name":"UpdateKeypad","topic":"","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":580,"y":40,"wires":[]},{"id":"e6595d79046f9c72","type":"mqtt out","z":"7585c8cca575bbd1","name":"UpdateAlarmo","topic":"","qos":"2","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":580,"y":160,"wires":[]},{"id":"e35b1984724bae27","type":"trigger-state","z":"7585c8cca575bbd1","name":"OnAlarmoState","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":100,"y":100,"wires":[["dfacf394f8cb268a"],[]]},{"id":"dfacf394f8cb268a","type":"function","z":"7585c8cca575bbd1","name":"ProcessAlarmoState","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":320,"y":100,"wires":[["24f7f5fd5dee8f32"],[]],"outputLabels":["Keypad command ","[DEBUG] Last keypad action"]},{"id":"5f07e2a2e80ffada","type":"debug","z":"7585c8cca575bbd1","name":"SOS Button","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":100,"wires":[]},{"id":"9a25af79771647a9","type":"debug","z":"7585c8cca575bbd1","name":"Show code","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"action_code","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":220,"wires":[]},{"id":"d811130016f120d9","type":"comment","z":"7585c8cca575bbd1","name":"Getting Started","info":"# Getting started\n1) Activate MQTT Control alarmo \n\n\n2) Edit ProcessKeypadEvents Node\n Go the \"Startup\" tab, define the topic for your keypad\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\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":120,"y":220,"wires":[]},{"id":"425258d1f3e10866","type":"mqtt out","z":"7585c8cca575bbd1","name":"Update Rfid Sensor","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5914a38474afa853","x":790,"y":280,"wires":[]},{"id":"816acb82da7beeac","type":"function","z":"7585c8cca575bbd1","name":"CreateRfidSensor","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.substring(keypad_topic.lastIndexOf('/') + 1);\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":570,"y":280,"wires":[["425258d1f3e10866","a642e9c16bac8fd3"]]},{"id":"a642e9c16bac8fd3","type":"debug","z":"7585c8cca575bbd1","name":"Show RFID","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":790,"y":240,"wires":[]},{"id":"e341d9f9f0fab34f","type":"inject","z":"7585c8cca575bbd1","name":"Create RFID Sensor","props":[{"p":"keypad_event_topic","v":"keypad_event_topic","vt":"flow"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"","x":300,"y":280,"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}]
Bonjour, Je vais paraitre bête, mais je débute avec la domotique, Home assistant et node-red rien que cela…je viens d’installer le flux, et je rencontre un problème :quand j’active l’alarme a partir du panneau d’affichage de home assistant le clavier valide avec les voyants la manip effectuée, mais lorsque j’actionne le clavier rien ne remonte vers alarmo, je pense que j’ai raté quelque chose, mais je ne vois pas ou. pouvez vous venir a mon aide, me fournir quelques pistes de recherche. merci d’avance.
Salut Patdefo,
bienvenue dans l’univers de la domotique.
Ca prend un peu de temps de rentrer dans les sujets, mais l’aide de la communauté ca se fait
Pour ton problème, est ce que tu as activé dans Alarmo « Utilisation avec MQTT » ?
D’autre part, dans le noeud « OnKeypadEvents » est ce que tu es bien abonné au topic de ton keypad ?
C’est le paramètre sujet, il doit correspondre au topic de ton keypad.
Enfin de manière générale, est ce que les 4 nœuds mqtt (en violet) sont bien connectés (comme dans la capture) ?
Voilà, j’espère que çà t’as aidé.
Salut,
Merci pour ton aide, le problème a été résolu, j’ai injecté dans un deuxième flux avec la première version sans le RFID (celle de 04/23) et elle a fonctionné tout de suite, donc j’ai ajouté la partie RFID sur celle ci.
je n’ai toujours pas compris pourquoi la version de mai, ne fonctionne pas seule, peut être une modif autre que le RFID entre les deux versions.
merci encore pour ta réactivité.
Merci @akim pour ton flow, je vais le tester.
Je repose ma question au cas où : vous avez trouvé comment ignorer des capteurs ouverts lorsqu’on arme l’alarme ? Je ne sais pas le faire avec ce Keypad mais je le fais avec mon Ring.
Merci.
Bonjour Akim ![]()
Merci pour ta nouvelle version, mais je ne vois toujours pas les LED s’allumer lorsque l’on passe devant (vert alarme désactivé, rouge activé) pour le son, je ne savais même pas que le clavier en avait
(sauf lors de l’appuie sur les touches)
Le mien est sous ZHA.
Pas de soucis particulier à part l’utilisation des events pour les autos.
Je peux configurer chaque bouton, et même créer un code spécial par utilisateur (pratique pour les enfants ou invité, la notif me dit qui c’est), et les LED s’allument quand j’approche la main.
La seule chose manquante : retour de la pile.
Hello @akim et tout le monde d’ailleurs,
Merci pour ce flux! Ayant acquis récemment ce clavier, je vais pouvoir tester ta solution avec Node-red.
Avant que je l’importe, as tu fait une mise à jour ou est-ce la dernière version 100% fonctionnelle ?
merci pour le flux node red je suis à actuellement avec les bluprint mais c très limité
J’ai testé d’importer le code mais impossible d’armer ou désarmer avec le clavier.
Par contre, si j’arme ou que je désarme par le tableau de bord de ha le clavier réagit bien à chaque fois.
Une idée?
J’ai bien vérifié que le topic était le bon dans ProcessKeypadEvents et OnKeypadEvents et le clavier diffuse bien dans le topic les informations d’armement avec le code.
J’ai aussi importé l’ancien flux mais exactement pareil…
Je me réponds à moi même au cas où ce serait utile à quelqu’un d’autre.
J’ai contourné le souci en important le flux ET un blueprint qui s’apelle PIN-Keypads for Zigbee2MQTT et qui sert justement à armer et désarmer.
C’est peut être pas la manière la plus propre de faire mais au vu du peu d’informations sur ce keypad, ca suffira pour l’utilisation que j’en ai.
Donc pour résumer j’ai bien l’armement/désarmement par code ou rfid, les leds qui fonctionnent et les bips d’armement, désactivation et activation.
Bonjour,
je débute également sur Home assistant, soyez indulgent. je vois que eklosion à réussis ce que je tente de faire depuis hier, je suis un peu perdu, j’ai bien recopier le flux et j’ai également le blueprint, j’ai réussi à intégrer un tag mais impossible d’en mettre un autre. merci de votre aide.
Salut Pascal_Roger. Donc tu as mis en place le flux dans node red, le blueprint et intégré un badge RFID et ça fonctionne avec ce badge déja ou pas? Et autre question, pour ton alarme, utilises tu Alarmo?
Bonjour,
Oui j’utilise alarmo et je dois avouer que ce clavier est un peu galère, j’aimerai pouvoir l’utiliser avec 2 ou 3 badges RFID ou du moins avec 2 code pin distincts (un pour madame et un pour moi), j’ai créé les 2 utilisateurs et codes dans alarmo mais je ne sais pas comment mettre 2 codes différent dans le blueprint, soit il prend un soit l’autre, ajouter un pin supplémentaire ne fonctionne pas, quant au RFID je n’arrive qu’à en faire fonctionner un.
Une aide serait la très bienvenue, je viens juste de me mettre sur Home Assistant après des années de Jeedom et je galère un peu.
merci de votre aide la communauté ![]()
Tu as juste à dupliquer l’automatisation de ton premier code que tu as créé avec le blueprint. Tu dois donc créer autant d’automatisations que de codes et RFID présents dans Alarmo.
Ok j’essaye ça, merci à toi.
De rien, je t’avoue que moi aussi je me suis posé la même question que toi au même moment de la configuration

