Ce guide t'accompagne d'une caméra Qiara stock (ou défunte) à un setup OpenQiara fonctionnel qui parle à Home Assistant. Il suppose que tu es à l'aise avec SSH et Home Assistant, mais ne suppose pas de connaissances en reverse engineering.
TL;DR — OpenQiara est un daemon overlay qui remplace l'application
fbxhomecloud-dépendante d'une caméra Qiara par un service Go 100% local. Tes capteurs continuent de marcher, ta caméra n'a plus besoin des serveurs Qiara (désormais défunts), et tout se retrouve dans MQTT.
Matériel :
- Une caméra Qiara (le modèle rond avec un cache vie privée — modèle "HOMELABCAM")
- Ses capteurs 868 MHz existants (DWS, PIR, KPD, SRN). OpenQiara ne peut pas appairer des capteurs neufs achetés ailleurs.
- Un lecteur de microSD sur ton ordinateur (pour accéder à la SD de la caméra si tu as besoin de récupération offline — pas requis pour le happy path)
Sur ton ordinateur :
- Linux ou macOS avec Go 1.26+ installé
- Une paire de clés SSH (
~/.ssh/id_ed25519fait l'affaire)
Sur ton réseau :
- Un réseau WiFi 2.4 GHz (la puce WiFi de la caméra est 2.4 GHz uniquement)
- Un broker MQTT joignable depuis la caméra (Mosquitto fait l'affaire)
- Une instance Home Assistant avec l'intégration MQTT activée
- Un compte cloud Qiara (le cloud est mort de toute façon)
- Une connexion internet sur la caméra (tout est local)
- Un firmware re-flashé — OpenQiara tourne au-dessus du rootfs stock
Si ta caméra est encore en ligne depuis l'époque Qiara, elle est probablement déjà connectée à ton WiFi. Trouve son IP :
arp -a | grep -i lwipTu devrais voir une entrée, du genre 192.168.1.50.
Si ta caméra a été factory-resettée ou jamais provisionnée, il faudra préparer
la SD offline d'abord — voir install.md pour la procédure de
préparation SD. Reviens ici une fois que tu as l'accès SSH.
Teste la connexion :
ssh root@192.168.1.50Le rootfs stock de la caméra autorise le login root via SSH sans mot de passe.
Ajoute ta clé publique à /root/.ssh/authorized_keys dès que tu es dedans
— tu te remercieras plus tard.
Clone le repo et cross-compile pour ARM :
git clone https://github.com/Caligone/openqiara
cd openqiara
GOOS=linux GOARCH=arm GOARM=7 go build -trimpath -ldflags="-s -w" \
-o bin/openqiarad ./cmd/openqiaradÇa produit un binaire unique lié statiquement à bin/openqiarad (~10 MB).
Pas besoin de runtime Go sur la caméra.
Le repo fournit deux scripts qui automatisent le déploiement. Mets l'IP de la caméra et lance-les :
export CAM_HOST=192.168.1.50 # IP de ta caméra
export SSH_KEY=~/.ssh/id_ed25519 # ta clé SSH
export MQTT_BROKER=tcp://192.168.1.10:1883
export MQTT_USER=openqiara
export MQTT_PASS=changeme
./scripts/configure.sh # écrit /data/openqiara.json sur la caméra
./scripts/deploy.sh # cross-compile, upload, redémarreTu devrais voir openqiarad démarrer dans le log tailé à la fin de
deploy.sh. Si tu vois MQTT connected et charmux ready, c'est bon.
Par défaut, deploy.sh lance openqiarad uniquement pour le boot courant.
Pour le faire auto-démarrer, installe le boot hook :
./scripts/install_boot.shÇa patche /etc/init.d/rcS.real pour lancer /data/boot.sh à chaque boot,
qui à son tour démarre openqiarad.
Reboote pour vérifier :
ssh root@$CAM_HOST reboot
# Attendre ~60 secondes
ssh root@$CAM_HOST 'pidof openqiarad && echo OK'OpenQiara sert une petite web UI à http://openqiara.local (port 80).
Depuis là tu peux :
- Voir l'état des capteurs en temps réel (motion, porte ouverte/fermée, codes KPD)
- Appairer de nouveaux capteurs (clic "Pairing" → saisir le fingerprint QR)
- Configurer le moteur d'alarme (mode standalone ou bridge Alarmo)
- Régler les timings (délai d'armement, délai pending, durée du wail)
- Définir le PIN du clavier
- Déclencher la sirène manuellement pour tester
À la première ouverture, on te demandera de définir un mot de passe admin.
- Dans la web UI, clic Capteurs → Appairer
- Choisis le type de capteur (DWS / PIR / KPD / SRN)
- Appui long sur le bouton d'appairage du capteur pendant 3 secondes (il est sous le couvercle de la pile pour la plupart des types de capteurs)
- Attends jusqu'à 30 secondes — l'UI montrera le nouveau capteur dès que le handshake est terminé
- Le capteur est maintenant appairé. Ouvre MQTT Explorer (ou Home Assistant)
et tu devrais voir une nouvelle entité sous le préfixe de topic
openqiara/
Si l'appairage échoue : voir docs/sensors.md pour le
troubleshooting spécifique au capteur et l'emplacement du bouton d'appairage
par type.
OpenQiara publie les messages MQTT discovery Home Assistant, donc les capteurs devraient apparaître automatiquement dans HA sous Settings → Devices & Services → MQTT → Devices.
Si tu ne les vois pas :
- Vérifie que l'intégration MQTT de HA utilise le même broker que
openqiara.json - Vérifie que le préfixe de topic est bien
homeassistant/par défaut pour la discovery - Vérifie que le préfixe
openqiara/apparaît dans MQTT Explorer
OpenQiara propose deux modes d'alarme :
-
Standalone (par défaut) : la machine à états d'alarme locale dans
openqiaradpossède l'état. L'armement via KPD applique un délai d'armement (10s par défaut, configurable). L'armement via HK/HA est instantané. Les capteurs en alarme au moment de l'armement déclenchent immédiatement en mode Remote, avec une période de grâce en mode Local. -
Bridge Alarmo : le composant Alarmo de Home Assistant est la source de vérité.
openqiaradtransmet les commandes utilisateur àalarmo/commandet reflètealarmo/statevers MQTT/HK. Utile si tu centralises déjà la logique d'alarme dans HA.
Bascule via l'onglet Configuration de la web UI ; un redémarrage du daemon
est nécessaire pour que le changement prenne pleinement effet. Voir
docs/mqtt.md pour la référence complète des topics.
"Capteurs appairés mais pas d'events"
Le canal PKT a besoin d'un ACK initial de la gateway pour commencer à
forwarder. Ça se passe automatiquement au démarrage d'openqiarad ; si ça
échoue, regarde le log pour pkt forwarding enabled. Un reboot règle
généralement le souci.
"Le KPD montre le mauvais PIN"
Le clavier ne supporte qu'un seul PIN à la fois, et ce PIN a été gravé
pendant le setup Qiara d'origine. Pour le changer : appaire le clavier à neuf
depuis OpenQiara et définis un nouveau PIN via la web UI. Voir
docs/kpd.md.
"Batterie / température affiche 0"
Batterie et température en mode charmux ne sont pas lisibles actuellement —
fbxhome obtenait ces valeurs du cloud Qiara Sigfox qui est offline. La web UI
masque les champs à 0. Voir la section "Open questions" de
docs/protocol.md pour l'état actuel du RE.
"La caméra redémarre aléatoirement"
Vérifie que tu n'envoies pas d'opcodes CTRL dangereux (0x03, 0x08) — ils
crashent le MCU et corrompent la NVM. OpenQiara n'envoie jamais ces opcodes
par design.
docs/sensors.md— appairage, events, et particularités par typedocs/mqtt.md— référence des topics MQTT et discovery HAdocs/protocol.md— référence protocole DomusRF (pour contributeurs)docs/architecture.md— architecture interne deopenqiaraddocs/install.md— installation avancée (prép SD, recovery)
OpenQiara est un projet d'interopérabilité. Il tourne au-dessus du rootfs
stock Qiara/Free et utilise des binaires constructeur (charmux, hlcamd,
uartboot, modules kernel) qui restent sur l'appareil inchangés. Utilisation
à tes risques et périls. Modifier ta caméra peut annuler la garantie
constructeur (mais Qiara étant défunte, c'est surtout théorique) et peut
briquer l'appareil si tu ignores les avertissements sur les opcodes MCU
dangereux.
Fais un backup de /dev/mmcblk0p1 (la partition rootfs) avant tout truc
irréversible :
ssh root@$CAM_HOST 'dd if=/dev/mmcblk0p1 | gzip' > rootfs-backup.img.gzGarde ce fichier en lieu sûr. C'est ton billet retour si quelque chose tourne mal.