Frient Keypad KEPZB-110

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.

1 « J'aime »

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 :slight_smile:

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.