Sommaire
🧭 Introduction
Sécuriser son domicile tout en simplifiant l'accès à ses proches est un défi majeur de la maison connectée. C’est précisément la mission du Clavier Intelligent Frient (KEYZB-110). Ce clavier ne se contente pas d'être un simple pavé numérique : il se veut être le véritable gardien de votre porte d’entrée, capable de gérer aussi bien vos accès que votre système d’alarme.
Alliant la fiabilité du protocole Zigbee à une approche locale sans cloud, ce clavier promet une sécurité qui reste opérationnelle en toutes circonstances. Que ce soit par l'utilisation de codes PIN personnalisés ou de badges RFID, il offre une flexibilité d'usage adaptée à toute la famille et aux invités.
Pleinement compatible avec Home Assistant, il s'impose comme un outil polyvalent pour automatiser votre système d'alarme en toute sérénité.
Vous voulez commander ce produit ? Domadoo offre aux membres de la communauté HACF une réduction de 5%, valable sur tout le site hors promotions, et ce, jusqu'au 31 mai 2026.
Pour en profiter, utilisez le code discount "HACF".
📦 Déballage
Le clavier est emballé dans un carton très soigné, protégé par un fourreau coulissant. Dès son ouverture, l'appareil dégage une impression de qualité et de robustesse avec des finitions très soignée.

Voici le contenu détaillé que vous trouverez à l'intérieur :
- Le clavier Intelligent Keypad : Un boîtier blanc compact, doté de touches physiques agréables au toucher et disposées en cercle.
- L'alimentation : 4 piles AA alcalines sont incluses dans le pack, un point très appréciable pour une installation immédiate.
- 2 badges et 2 cartes RFID : Fournis pour faciliter l’accès des différents utilisateurs, ils assurent une identification rapide et fluide. Assez pour débuter.
- Le kit de fixation murale : Il comprend 2 vis et 2 chevilles pour une pose durable, ainsi que 2 adhésifs doubles-faces pour une fixation sans perçage.
- La documentation : Vous disposez d'un carton avec un QR code permettant d'accéder au manuel d'installation en ligne (très sommaire).


📊 Caractéristiques
Dimensions (LxHxP) : 90*90*22 mm
Poids : 92,3 gr
Alimentation : 4 Piles LR03 (AA) incluses
Sensibilité radio : -100 dBm
Puissance extérieure : +10 dBm
Pose : intérieure et extérieure (IP56)
Température de fonctionnement : 0 - 50 °C
Humidité de fonctionnement : 5 % - 85 % sans condensation
Fonctions : détection de présence de personnes (≈ 5-10 cm) avec un intervalle de détection de 500 ms (réaction de 1 sec)
Clavier : boutons numériques de 0 à 9 + 6 boutons de fonction
RFID : Compatible avec les étiquettes conformes aux normes ISO 14443A et MIFARE Classic (chaque étiquette doit posséder un identifiant unique (UID).
Distance de lecture RFID : ≈ 5 cm.
Protocole : Zigbee 3.0
Certifications : Conforme aux directives CE, FCC, IC, ISED, RED, RoHS et REACH. Certifié EN50131 Alarme (en option) Zigbee 3.0
🔧 Installation physique
L'installation du Clavier Intelligent Frient est simple, mais elle impose quelques choix stratégiques selon que vous privilégiez l'esthétique ou la sécurité maximale.
Le choix du support : Vis ou Adhésif ?
Comme vous l'avez remarqué, le clavier est fourni avec un kit complet : vis, chevilles et adhésifs doubles-faces.
- La fixation par vis (Recommandée) : C'est la solution la plus sûre. Elle est indispensable si vous souhaitez utiliser la fonction d'autoprotection (tamper switch). Sans une fixation permanente contre le mur par les vis, le capteur arrière ne pourra pas détecter un arrachement ou un sabotage. Je précise que le boîtier ne comporte pas de trous pré-percés pour la fixation du clavier au mur ; il est donc nécessaire de les réaliser soi-même à l’aide d’une perceuse, ce qui est dommage, car ils auraient pu être prévus en usine.
- La fixation par adhésif : Si vous optez pour une fixation par adhésif double-face afin de protéger votre mur, assurez-vous que la surface est parfaitement propre et sèche. Notez également que l’adhésif fourni est de mauvaise facture et je vous conseille de ne pas l’utiliser. J'ai utilisé pour ma part des adhésifs "3M Command" pour plus de praticité. De manière générale, je vous déconseille formellement l’usage d’adhésif pour une installation en extérieur ou pour un usage strictement sécurisé.
Précautions de placement
Pour garantir le bon fonctionnement des capteurs intégrés, respectez ces quelques règles :
- Évitez les obstacles : Ne placez aucun objet mobile (plante, décoration) à moins de 40 cm du clavier. Cela risquerait de déclencher inutilement le détecteur de présence et d'épuiser les piles prématurément.
- Exposition : Bien que certifié IP54 (résistant aux projections), il est fortement recommandé d'installer le clavier à l'abri de la pluie directe et d'éviter une exposition prolongée au plein soleil.
- Température : L'appareil fonctionne de manière optimale entre 0 et 50 °C.
Procédure d'installation pas à pas
- Ouverture du boîtier : Commencez par retirer la petite vis située au bas de l'appareil à l'aide d'un tournevis cruciforme.
- Fixation de la plaque : Fixez la plaque arrière au mur. Si vous choisissez de visser, sachez que les trous dans le plastique ne sont pas toujours pré-percés ; il vous faudra peut-être percer directement le support arrière avec les vis.
- Mise sous tension : Insérez les 4 piles AA en respectant la polarité.
- Fermeture : Emboîtez le clavier sur la plaque en l'accrochant d'abord par le haut, puis en le poussant fermement contre le support jusqu'au "clic".
- Sécurisation : Remettez la vis au bas de l'appareil pour verrouiller l'ensemble.
PHOTO DU BOITIER OUVERT AVEC LES PILES
⚙️ Configuration
Une fois installé physiquement, le Clavier Intelligent Frient doit être intégré à votre réseau Zigbee. Contrairement à d'autres périphériques, l'intelligence de ce clavier (gestion des codes et des accès) ne réside pas que dans l'appareil lui-même, mais aussi dans Home Assistant.
🔗Appairage du clavier
Le clavier dispose de deux modes pour rejoindre votre réseau :
- Appairage automatique : Dès l'insertion des piles, le clavier lance une recherche automatique d'un réseau Zigbee ouvert pendant 15 minutes. La LED jaune clignote durant cette phase et s'arrête une fois la connexion établie.
- Appairage manuel : Si la recherche automatique échoue, vous pouvez forcer le mode appairage. La procédure est la même que décrite dans le paragraphe ci-dessous.
Une fois l'appairage effectué, voici les données que vous pouvez avoir (pour ma part, j'utilise Zigbee2MQTT) :

⏪Réinitialisation du clavier
Voici la procédure détaillée pour effectuer une réinitialisation aux paramètres usine (factory reset) du Clavier Intelligent Frient :
- Ouverture du boîtier : Retirez la vis de sécurité située au bas de l'appareil à l'aide d'un tournevis cruciforme pour ouvrir le boîtier.
- Localisation du bouton : Identifiez le bouton de menu situé à l'intérieur du compartiment, placé entre les piles.
- Action de réinitialisation : Utilisez une épingle fine ou un trombone pour maintenir ce bouton enfoncé.
- Suivi de la séquence LED : Il est crucial de ne pas relâcher le bouton trop tôt. Observez attentivement le témoin LED qui va clignoter selon cette progression :
- Il clignote d'abord une fois,
- Ensuite, il clignote deux fois d'affilée,
- Enfin, il se met à clignoter plusieurs fois de suite rapidement.
- Finalisation : Relâchez le bouton précisément au moment où la LED clignote plusieurs fois de suite.
- Confirmation : Le témoin émettra alors un clignotement long unique pour confirmer que la réinitialisation est terminée et que l'appareil est revenu à son état d'usine.
Cette manipulation est indispensable si vous devez connecter votre clavier à une nouvelle passerelle domotique ou si l'appareil présente un comportement anormal. Après cette étape, le clavier se remettra automatiquement en mode recherche de réseau Zigbee (la LED jaune clignotera).
🏠 Intégration à Home Assistant
Concernant l'intégration à Home Assistant, voici les entités remontées via MQTT (j'utilise Zigbee2MQTT pour ma part) :

Quant aux capteurs remontés dans Home Assistant :
- Action code : c'est le code utilisé sur le clavier
- Action transaction : c'est un numéro unique de transaction à Home Assistant (incrémentielle)
- Action zone : c'est l'action sur une zone (par défaut toujours 23)
- Manipulation : C'est le capteur de sabotage (qui permet de savoir si le clavier a été ouvert ou non)
- Batterie (binary_sensor) : capteur binaire qui donne l'état des piles (vrai ou faux)
- Batterie (sensor) : Pourcentage des piles
- Tension : Tension des piles
🛡️Installation et paramétrage d'Alarmo
Pour ma part, j'utilise ce clavier avec l'intégration Alarmo. Cette approche est particulièrement efficace, car elle permet de paramétrer tous les codes et les utilisateurs directement dans l'interface de l'intégration, offrant une souplesse totale sans jamais avoir à manipuler physiquement le boîtier pour la programmation. L'installation se déroule en quelques étapes simples :
Installation de l'intégration
Il existe trois méthodes pour ajouter les fichiers nécessaires à votre instance Home Assistant :
- Via le bouton ci-dessous :
- Via HACS : Dans le panneau HACS, allez dans la section "Intégrations", cliquez sur le bouton orange "+", recherchez "Alarmo" et sélectionnez "Installer ce dépôt dans HACS".
- Manuellement (non recommandé) : Téléchargez la dernière version (archive zip) sur GitHub et extrayez le dossier
alarmodans le répertoirecustom_componentsde votre installation Home Assistant.
Initialisation
- Redémarrez Home Assistant pour que le système puisse charger les nouveaux fichiers de l'intégration.
Activation de l'intégration
- Rendez-vous dans Configuration > Appareils et services.
- Cliquez sur le bouton "Ajouter l'intégration" (+).
- Recherchez "Alarmo" dans la liste et cliquez dessus pour l'ajouter.
Configuration finale
Une fois ces étapes terminées, l'intégration est prête. Un nouveau lien nommé "Alarmo" apparaîtra dans votre menu latéral gauche. C'est ici que vous pourrez accéder au panneau de configuration pour :
- Sélectionner vos capteurs de sécurité existants (portes, fenêtres, mouvement).
- Définir vos modes d'armement (Absent, Présent, Nuit, Vacances, Personnalisé) et les délais de sortie/entrée.
- Créer vos utilisateurs et leurs codes PIN respectifs, qui seront ensuite reconnus par votre clavier Frient.
- Créer les notifications et actions lors du passage aux différents modes d'armement (voir partie Exemple d'une notification et d'une action paramétrées sur Alarmo)
Pour parfaire votre installation, vous pouvez également ajouter la carte Alarmo (Alarmo-card) à votre tableau de bord Lovelace pour un contrôle visuel facilité incluant un compte à rebours.
🛠️Réglages des accès (codes et RFID)
Le fonctionnement de ce clavier est particulier : il transmet les touches pressées ou l'identifiant du badge à votre système qui décide ensuite de l'action à mener. Il faut ensuite renvoyer l'information au clavier pour que les actions soient prises en compte.
Le véritable avantage du clavier réside dans sa gestion déportée des accès. Contrairement à de nombreux systèmes traditionnels, le clavier ne stocke aucun code ni badge en interne ; il se contente de transmettre les informations saisies (chiffres ou identifiant de badge) à votre serveur domotique via Zigbee. Dans ma configuration, j'utilise l'intégration Alarmo sur Home Assistant pour centraliser cette gestion.
- Gestion des Codes PIN multiples : Grâce à Alarmo, vous pouvez créer une multitude d'utilisateurs (famille, amis…) disposant chacun de leur propre code secret. Lorsque vous tapez un code sur les touches physiques (0 à 9), l'information est envoyée instantanément à Alarmo qui vérifie la correspondance dans sa base de données et autorise ou non l'action demandée.
- Intégration des Badges RFID : Le clavier intègre un lecteur compatible avec les standards MIFARE Classic et ISO14443A (fréquence 13,56 MHz). Pour ajouter un nouveau badge à votre système Alarmo, la procédure est simple :
- Sur Home Assistant, allez dans Paramètres, Appareils et services, MQTT et sélectionner le clavier (dans ma situation, le boîtier est nommé "Clavier alarme").
- Ouvrez l'entité
sensor.clavier_alarme_action_codeet regardez l'historique du capteur. - Passez votre badge devant le lecteur (au centre du cercle noir) et tenter de désarmer en appuyant sur le cadenas.
- Le système affiche alors un identifiant unique (UID), généralement sous la forme
+123456789.
Si vous avez besoin de plus de badges ou cartes, vous pouvez vous en procurer sur le site Domadoo : BADGE RFID 13.56 MHz Mifare 1K - Controle d'accès.
Pour ma part, j'ai utilisé le badge d'ouverture de la porte d'entrée de mon immeuble.
Il vous suffit ensuite de copier cet identifiant et de l'enregistrer comme "code" pour l'utilisateur de votre choix dans les paramètres d'Alarmo. Un simple passage de badge sera désormais reconnu comme une identification valide.
- Historique et Personnalisation : Cette méthode de configuration centralisée permet une traçabilité parfaite des accès. Puisque chaque badge ou code est lié à un utilisateur spécifique dans l'intégration, vous pouvez configurer des notifications personnalisées pour savoir exactement qui a armé ou désarmé le système et à quelle heure. C'est une solution idéale pour accorder des accès temporaires sans avoir à distribuer de clés physiques.
🛠️Exemple d'une notification et d'une action paramétrées sur Alarmo
Voici ci-dessous 2 captures d'écran illustrant une notification et une action afin de comprendre comment les utiliser :
Notification :

Action (appel de scripts pour les sirènes) :

🛠️Exemples d'une automatisation mise en place avec Alarmo
Après quelques tests, j'ai mis en place une automatisation fonctionnelle sur mon instance HA. Comme mentionné plus haut, j'utilise l'intégration Alarmo pour la gestion de l'alarme à mon domicile et Telegram pour les notifications.
Voici le code de mon automatisation :
alias: Gestion clavier alarme
description: Gestion clavier Frient KEYZB-110
triggers:
# Trigger principal : réception MQTT depuis Zigbee2MQTT
- trigger: mqtt
id: action_normale
options:
topic: zigbee2mqtt/Clavier alarme
value_template: "{{ value_json.action | default('') }}"
# Trigger de secours : si le capteur passe à unknown (pour mode SOS)
- trigger: state
entity_id: sensor.clavier_alarme_action_code
to: unknown
id: emergency_fallback
actions:
# Initialisation des variables
- variables:
# Action envoyée par le clavier (arm, disarm, etc.)
action: |
{% if trigger.id == 'emergency_fallback' %}
emergency # fallback = mode panique
{% else %}
{{ trigger.payload_json.action | default('') }}
{% endif %}
# Code utilisateur (si fourni)
code: |
{% if trigger.id == 'emergency_fallback' %}
{% else %}
{{ trigger.payload_json.action_code | default('') }}
{% endif %}
# ID de transaction MQTT (utile pour répondre au clavier)
transaction: |
{% if trigger.id == 'emergency_fallback' %}
{% else %}
{{ trigger.payload_json.action_transaction | default('') }}
{% endif %}
# Infos supplémentaires
battery: "{{ trigger.payload_json.battery | default('') }}"
tamper: "{{ trigger.payload_json.tamper | default(false) }}"
# Entité de l’alarme Alarmo
alarm_entity: alarm_control_panel.alarmo
# Gestion sabotage (tamper)
- if:
- condition: template
value_template: "{{ tamper == true }}"
then:
- action: notify.telegram_groupe
data:
message: ⚠️ ALERTE SABOTAGE — Le clavier alarme a été ouvert ou arraché !
- stop: Tamper détecté # Stop immédiat
# Vérification de la validité des données reçues
- condition: template
value_template: |
{{ action is not none
and action not in ['', 'unknown']
and (action == 'emergency' or (
transaction is not none
and transaction not in ['', 'unknown']
)) }}
# Traduction des actions Zigbee à Alarmo
- variables:
result: |
{% if action == 'disarm' %}
disarm
{% elif action == 'arm_all_zones' %}
away
{% elif action == 'arm_day_zones' %}
home
{% elif action == 'arm_night_zones' %}
night
{% elif action == 'emergency' %}
panic
{% else %}
invalid
{% endif %}
# Si action inconnue
- if:
- condition: template
value_template: "{{ result == 'invalid' }}"
then:
# Réponse au clavier : code invalide
- action: mqtt.publish
data:
topic: zigbee2mqtt/Clavier alarme/set
payload: |
{
"arm_mode": {
"transaction": {{ transaction }},
"mode": "invalid_code"
}
}
# Notification Telegram si action inconnue
- action: notify.telegram_groupe
data:
message: "❓ Action inconnue reçue du clavier : {{ action }}"
- stop: Action inconnue
# Gestion mode panique (SOS)
- if:
- condition: template
value_template: "{{ result == 'panic' }}"
then:
# Retour d'information au clavier
- action: mqtt.publish
data:
topic: zigbee2mqtt/Clavier alarme/set
payload: |
{
"arm_mode": {
"transaction": {{ transaction }},
"mode": "emergency"
}
}
# Déclenchement alarme immédiat
- action: alarm_control_panel.alarm_trigger
target:
entity_id: "{{ alarm_entity }}"
data: {}
# Notification Telegram
- action: notify.telegram_groupe
data:
message: 🚨 SOS déclenché depuis le clavier alarme !
- stop: Panic traité
# Vérifie présence du code pour désarmement
- condition: template
value_template: |
{% if result == 'disarm' %}
{{ code is not none and code not in ['', 'unknown'] }}
{% else %}
true
{% endif %}
# Exécution de l’action selon le mode
- choose:
# Désarmement et sonnerie d'une petite sirène pour prévenir
- conditions:
- condition: template
value_template: "{{ result == 'disarm' }}"
sequence:
- action: alarmo.disarm
target:
entity_id: "{{ alarm_entity }}"
data:
code: "{{ code }}"
- if:
- condition: state
entity_id: alarm_control_panel.alarmo
state:
- disarmed
then:
- data:
topic: zigbee2mqtt/Sirène/set
payload: "{\"duration\": 2, \"brightness\":0, \"volume\": 7}"
enabled: true
action: mqtt.publish
# Armement absent et sonnerie d'une petite sirène pour prévenir
- conditions:
- condition: template
value_template: "{{ result == 'away' }}"
sequence:
- action: alarmo.arm
target:
entity_id: "{{ alarm_entity }}"
data:
mode: away
code: "{{ code }}"
- if:
- condition: state
entity_id: alarm_control_panel.alarmo
state:
- arming
then:
- data:
topic: zigbee2mqtt/Sirène/set
payload: "{\"duration\": 2, \"brightness\":0, \"volume\": 7}"
enabled: true
action: mqtt.publish
# Armement présent
- conditions:
- condition: template
value_template: "{{ result == 'home' }}"
sequence:
- action: alarmo.arm
target:
entity_id: "{{ alarm_entity }}"
data:
mode: home
code: "{{ code }}"
# Armement nuit
- conditions:
- condition: template
value_template: "{{ result == 'night' }}"
sequence:
- action: alarmo.arm
target:
entity_id: "{{ alarm_entity }}"
data:
mode: night
code: "{{ code }}"
# Attente pour laisser le temps à Alarmo de changer d’état
- delay: "00:00:02"
# Vérification du succès de l’action
- variables:
new_state: "{{ states(alarm_entity) }}"
success: |
{% if result == 'disarm' and new_state == 'disarmed' %}
true
{% elif result == 'away' and new_state in ['armed_away', 'arming'] %}
true
{% elif result == 'home' and new_state in ['armed_home', 'arming'] %}
true
{% elif result == 'night' and new_state in ['armed_night', 'arming'] %}
true
{% else %}
false
{% endif %}
# Retour d’état vers le clavier
- action: mqtt.publish
data:
topic: zigbee2mqtt/Clavier alarme/set
payload: |
{
"arm_mode": {
"transaction": {{ transaction }},
"mode": "{{ action if success == 'true' else 'invalid_code' }}"
}
}
# Notification Telegram
- action: notify.telegram_groupe
data:
message: >
{% set etats = {
'disarm': 'Désarmée',
'arm_all_zones': 'Absent',
'arm_day_zones': 'Présent',
'arm_night_zones': 'Nuit'
} %} {% if success == 'true' %} ✅ Alarme mise à jour depuis le clavier
Mode : {{ etats[action] | default(action) }} Utilisateur : {{
state_attr(alarm_entity, 'changed_by') | default('inconnu') }} Batterie
clavier : {{ battery }}% {% else %} ❌ Tentative refusée sur le clavier
Action : {{ etats[action] | default(action) }} Code invalide {% endif %}
# Mode d’exécution : file d’attente (évite les collisions)
mode: queued
max: 5NB : pour la dernière notification Telegram :
# Notification Telegram
- action: notify.telegram_groupe
data:
message: >
{% set etats = {
'disarm': 'Désarmée',
'arm_all_zones': 'Absent',
'arm_day_zones': 'Présent',
'arm_night_zones': 'Nuit'
} %} {% if success == 'true' %} ✅ Alarme mise à jour depuis le clavier
Mode : {{ etats[action] | default(action) }} Utilisateur : {{
state_attr(alarm_entity, 'changed_by') | default('inconnu') }} Batterie
clavier : {{ battery }}% {% else %} ❌ Tentative refusée sur le clavier
Action : {{ etats[action] | default(action) }} Code invalide {% endif %}
J'ai pris la décision de la désactiver pour ma part, car j'utilise les notifications Telegram via Alarmo. Je n'ai par contre pas l'information d'une tentative refusée sur le clavier (pas pertinente pour moi) ni le pourcentage de la batterie (je suis tous mes pourcentages sur un dashboard dédié).
✅ Conclusion
Le Clavier Intelligent Frient s'impose comme l'un des meilleurs accessoires de sécurité pour les utilisateurs de domotique locale. Sa force réside dans sa double authentification (code et RFID) et sa capacité à fonctionner de manière autonome, sans dépendre d'un cloud externe. Malgré une installation physique qui demande un peu de patience et de bricolage (trous non percés), sa réactivité et sa robustesse au quotidien en font un investissement très qualitatif pour sécuriser une entrée ou piloter une alarme sous Home Assistant.
| Points forts | Points faibles |
| Sécurité 100% locale : Protocole Zigbee 3.0 sans cloud (fonctionne même sans internet) | Prix élevé : Positionné à 78,95 € sur Domadoo |
| Lecteur RFID intégré : Compatible Mifare Classic 13,56 MHz pour un accès rapide par badge | Installation physique perfectible : Les trous de fixation ne sont pas pré-percés |
| Gestion intelligente de l'énergie : Détecteur de présence activant le rétroéclairage uniquement lors d'une approche | Adhésifs fournis inefficaces : Le double-face inclus est jugé de mauvaise qualité ; l'usage de vis est fortement recommandé |
| Usage extérieur : Certification IP54 et large plage de température (0°C à +50°C) | Documentation succincte : Le manuel en ligne est très pauvre en informations techniques sur la configuration logicielle |
| Alimentation standard : Fonctionne avec 4 piles AA (incluses), faciles à trouver et à remplacer | |
| Design compact et robuste : Finition de haute qualité |
Nous tenons à remercier notre partenaire, Domadoo, qui a gracieusement offert ce matériel.
Notre unique volonté est de partager, après test et intégration avec HA, nos avis sur du matériel nous semblant intéressant pour la communauté. Il est important de souligner que HACF reste totalement libre de sa ligne éditoriale et les auteurs de leurs propos.
Les médias HACF ont cependant des liens affiliés nous permettant de compléter nos revenus liés aux adhésions et dons, ce qui nous permet de mener nos différentes actions (voir https://www.hacf.fr/association-hacf/#financement).