La porte-fenêtre du salon et ses rideaux, la main sur la vanne de l'étagère steampunk

Pourquoi, et surtout comment, connecter ses rideaux

En 2019, l’article sur l’étagère steampunk se terminait par un « reste à faire » : « exploiter la vanne… ». J’avais même passé un câble électrique dans les tuyaux « pour permettre une commande future à partir de la fameuse vanne ».

Trois ans plus tard, voici la commande future : la vanne ouvre et ferme les rideaux du salon.

L'étagère steampunk sur le mur bleu, la vanne rouge sur le tuyau du bas

Ce projet a d’abord été une présentation « fun » devant mes collègues de Lucca, avec un programme ambitieux : la méthode du double diamant, la différence entre les stratégies pull et push, un schéma d’architecture, quelques conseils pour prendre soin de son couple, la sobriété énergétique et, pour finir, quasi sauver le monde. Je reprends ici le même chemin.

Déformation professionnelle oblige, on suit le double diamant : d’abord explorer le problème, ensuite seulement chercher la solution.

Le schéma du double diamant : découvrir, définir, développer, délivrer

Plantons le décor : l’espace du problème

Le salon a une grande porte-fenêtre qui donne sur la rue. Le matin, rideaux fermés, on vit dans le noir :

Le salon dans la pénombre à 8h du matin, rideaux fermés, un filet de lumière entre les deux pans

En journée, une fois les rideaux ouverts, la fenêtre se reflète dans la TV :

La TV éteinte dans laquelle se reflète la porte-fenêtre

Rideaux ouverts ou fermés, la différence se voit tout de suite quand la TV est allumée :

Et le soir, vu de la rue, tout le quartier profite du programme à travers le voilage :

La fenêtre du salon vue de la rue, l'écran de la TV visible à travers le voilage

Le cahier des charges tient en quatre lignes :

  • ouvrir les rideaux au lever du soleil ;
  • les fermer à la tombée de la nuit ;
  • pouvoir les commander avec la vanne de l’étagère ;
  • les fermer quand on allume la TV.

Au départ, rien ne fonctionne :

Les quatre critères (soleil, nuit, vanne, TV), tous barrés d'une croix rouge

Comment connecter ses rideaux : l’espace de la solution

Étape 1 : des robots sur la tringle

Plutôt que de changer de rideaux ou de poser une tringle motorisée, j’ai choisi des SwitchBot Curtain : un petit robot qui s’accroche sur la tringle existante et tire le rideau. Il en faut un par pan de rideau : deux dans le salon TV, et deux dans l’autre salon.

La boîte du SwitchBot Curtain et le robot qui s'accroche à la tringle

Les robots communiquent en Bluetooth avec un petit hub, relié à Internet. L’application SwitchBot gère le lever et le coucher du soleil, et l’intégration Google Home permet de dire « OK Google, ferme les rideaux ».

Étape 1 : les rideaux SwitchBot, leur hub et Internet ; le soleil et la nuit passent au vert

Et surtout, le fonctionnement analogique est conservé : on peut toujours tirer le rideau à la main.

Étape 2 : la vanne

Place à la vanne steampunk, celle qui fonctionne comme un interrupteur. Son contact est relié à un GPIO (une broche d’entrée/sortie) d’un Raspberry Pi. Quand on tourne la vanne, un script Python sur le Raspberry Pi appelle l’API de SwitchBot.

La vanne fonctionne comme un interrupteur va-et-vient : on la tourne, et on obtient l’inverse de l’état actuel. Rideaux fermés, ils s’ouvrent ; rideaux ouverts, ils se ferment. Peu importe que la dernière manœuvre vienne du soleil, de Google ou de la vanne.

Étape 2 : un Raspberry Pi relié à la vanne rejoint l'architecture ; la vanne passe au vert

Côté code, je l’avoue, la version de 2022 était… artisanale : le script de la vanne relançait la commande des rideaux toutes les demi-secondes tant que la vanne restait ouverte ! Voici une version remise au propre pour l’article.

D’abord, un petit module commun qui parle à l’API SwitchBot. Le jeton et la clé secrète se trouvent dans l’application SwitchBot (Profil, Préférences, Options développeur), et chaque appel est signé :

switchbot.pyRaspberry Pi / Python
"""Commande des rideaux SwitchBot par l'API officielle (v1.1)."""
import base64
import hashlib
import hmac
import os
import time
import uuid

import requests

API = "https://api.switch-bot.com/v1.1"
# Jeton et clé secrète : appli SwitchBot > Profil > Préférences > Options développeur
TOKEN = os.environ["SWITCHBOT_TOKEN"]
SECRET = os.environ["SWITCHBOT_SECRET"]
# Identifiants des robots du salon, séparés par des virgules
RIDEAUX = os.environ["SWITCHBOT_RIDEAUX"].split(",")


def entetes():
    """Chaque appel est signé : HMAC-SHA256 du jeton, de l'heure et d'un nombre aléatoire."""
    t = str(int(time.time() * 1000))
    nonce = uuid.uuid4().hex
    message = f"{TOKEN}{t}{nonce}".encode()
    signature = hmac.new(SECRET.encode(), message, hashlib.sha256).digest()
    return {"Authorization": TOKEN, "sign": base64.b64encode(signature).decode(),
            "t": t, "nonce": nonce, "Content-Type": "application/json; charset=utf8"}


def appel(methode, chemin, **options):
    r = requests.request(methode, API + chemin, headers=entetes(), timeout=10, **options)
    r.raise_for_status()
    reponse = r.json()
    if reponse.get("statusCode") != 100:  # 100 = succès pour SwitchBot
        raise RuntimeError(f"SwitchBot a refusé : {reponse}")
    return reponse.get("body", {})


def position():
    """Position du premier rideau : 0 = ouvert, 100 = fermé."""
    return appel("GET", f"/devices/{RIDEAUX[0]}/status")["slidePosition"]


def commande(ordre):
    for rideau in RIDEAUX:
        appel("POST", f"/devices/{rideau}/commands",
              json={"command": ordre, "parameter": "default", "commandType": "command"})


def ouvrir():
    commande("turnOn")


def fermer():
    commande("turnOff")


def basculer():
    """L'inverse de l'état actuel : plutôt fermé, on ouvre ; plutôt ouvert, on ferme."""
    if position() > 50:
        ouvrir()
    else:
        fermer()

Puis la lecture de la vanne. Le script ne réagit qu’au changement de position, une seule fois, et ignore les rebonds du contact (un contact mécanique « rebondit » quelques millisecondes en s’ouvrant ou en se fermant) :

vanne.pyRaspberry Pi / Python
"""La vanne de l'étagère steampunk : chaque manœuvre inverse l'état des rideaux."""
import time

import RPi.GPIO as GPIO

import switchbot

BROCHE = 4  # GPIO4 : le contact de la vanne le relie au 3,3 V

GPIO.setmode(GPIO.BCM)
GPIO.setup(BROCHE, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  # au repos, l'entrée est tirée à 0


def lecture_stable():
    """Deux lectures identiques à 50 ms d'écart : on ignore les rebonds du contact."""
    while True:
        valeur = GPIO.input(BROCHE)
        time.sleep(0.05)
        if GPIO.input(BROCHE) == valeur:
            return valeur


try:
    etat = lecture_stable()
    while True:
        nouvel_etat = lecture_stable()
        if nouvel_etat != etat:  # la vanne a bougé, peu importe dans quel sens
            etat = nouvel_etat
            try:
                switchbot.basculer()
            except Exception as erreur:  # réseau ou API indisponible : on réessaiera
                print("Échec de la commande :", erreur)
        time.sleep(0.1)
finally:
    GPIO.cleanup()

Étape 3 : la TV

Dernier critère, la TV. Quand on l’allume, les rideaux se ferment : plus de reflet dans l’écran, et plus de spectacle pour les passants.

Pour savoir si la TV est allumée, un second script Python interroge en permanence son adresse IP, plus précisément sa page de description réseau, qui ne répond que lorsque la TV est allumée. Tant qu’elle ne répond pas, la TV est éteinte ; dès qu’elle répond, on ferme. C’est ce qu’on appelle du polling : le script va chercher l’information lui-même, en boucle (une stratégie « pull »). L’inverse, une stratégie push, serait que la TV prévienne elle-même qu’elle vient de s’allumer. Mais à ce moment-là, la TV ne proposait tout simplement pas cette possibilité : le polling était la seule option.

Étape 3 : la Freebox et la TV complètent le schéma ; les quatre critères sont au vert

Deux démonstrations, la TV qu’on allume et les rideaux qui se ferment :

Le script de la TV, lui aussi remis au propre. Il ne ferme les rideaux qu’au moment où la TV passe d’éteinte à allumée, et attend deux réponses identiques avant de conclure, pour éviter les fausses alertes :

tv.pyRaspberry Pi / Python
"""Ferme les rideaux quand la TV s'allume, par polling de son adresse IP."""
import time

import requests

import switchbot

# Adresse IP de la TV : sa page de description (UPnP) ne répond que TV allumée
URL_TV = "http://192.168.1.6:54243/device.xml"
INTERVALLE = 2     # secondes entre deux interrogations
CONFIRMATIONS = 2  # réponses identiques à la suite avant de changer d'avis


def tv_allumee(session):
    try:
        return session.get(URL_TV, timeout=2).status_code == 200
    except requests.RequestException:
        return False


session = requests.Session()
allumee = tv_allumee(session)
compteur = 0
while True:
    mesure = tv_allumee(session)
    compteur = compteur + 1 if mesure != allumee else 0
    if compteur >= CONFIRMATIONS:  # changement d'état confirmé
        allumee, compteur = mesure, 0
        print("TV allumée" if allumee else "TV éteinte")
        if allumee:
            try:
                switchbot.fermer()
            except Exception as erreur:
                print("Échec de la commande :", erreur)
    time.sleep(INTERVALLE)

Enfin, pour que les deux scripts démarrent avec le Raspberry Pi et redémarrent en cas de plantage, un service systemd chacun (à la place du cron et du tmux de l’époque). Le jeton et la clé SwitchBot sont rangés dans un fichier switchbot.env à part, qu’on ne publie jamais :

rideaux-vanne.servicesystemd
# /etc/systemd/system/rideaux-vanne.service (idem rideaux-tv.service avec tv.py)
[Unit]
Description=Rideaux : lecture de la vanne
After=network-online.target
Wants=network-online.target

[Service]
WorkingDirectory=/home/pi/rideaux
EnvironmentFile=/home/pi/rideaux/switchbot.env
ExecStart=/usr/bin/python3 vanne.py
Restart=always

[Install]
WantedBy=multi-user.target

Puis sudo systemctl enable --now rideaux-vanne rideaux-tv, et c’est parti.

Bingo !

Le programme est rempli :

  • la méthode du double diamant : c’est fait ;
  • la différence entre pull et push : le polling de la TV ;
  • un schéma d’architecture : il est juste au-dessus ;
  • un conseil pour prendre soin de son couple : garder des boutons, mécaniques ou analogiques. Tout le monde n’a pas envie de sortir son téléphone ou de parler à une enceinte pour ouvrir un rideau. Tirer le rideau à la main, ça marche toujours ;
  • la sobriété énergétique : des rideaux fermés au coucher du soleil gardent la chaleur l’hiver, et protègent du soleil l’été. Les plantes, elles, profitent de la lumière dès le lever du jour ;
  • quasi sauver le monde : on n’en est pas loin, non ?

[Mise à jour 2026] Les rideaux connectés fonctionnent toujours ! À l’époque, ni Home Assistant ni SmartThings ne tournaient à la maison : tout reposait sur le script Python. Depuis, le déclenchement par la TV est d’abord passé par SmartThings, l’application de la TV, avec une routine « Fermer rideaux TV » : si la TV du salon s’allume entre le lever et le coucher du soleil, alors on ferme les rideaux. La nuit, inutile : ils sont déjà fermés depuis le coucher du soleil.

La routine SmartThings « Fermer rideaux TV » : si la TV 65 pouces OLED du salon est allumée entre le lever et le coucher du soleil, alors fermer le store Salon TV

Puis l’ensemble a rejoint Home Assistant. Aujourd’hui, tout tient dans une seule automatisation, « Rideaux salon TV » : quatre déclencheurs à gauche (le lever du soleil, le coucher du soleil, l’allumage de la TV et son extinction), un aiguillage, puis quatre branches qui ouvrent ou ferment les rideaux. Voici sa trace d’exécution du 5 octobre 2026, avec en surbrillance le chemin suivi jusqu’à l’action « Fermer l’ouvrant » :

Trace d'exécution de l'automatisation Home Assistant « Rideaux salon TV » : quatre déclencheurs, un aiguillage, et l'action Fermer l'ouvrant sur le salon TV

Dans l’autre salon, c’est le même principe avec le vidéoprojecteur : on l’allume, les rideaux se ferment… et en prime, le ruban LED caché dans la corniche s’éteint. Mais ça, c’est une autre histoire, et ce sera le sujet du prochain article !

Détecter les essaimages grâce à une balance de ruche connectée

Je vous ai présenté dans l’article Connecter ses ruches le concept et la réalisation d’une balance pour ruche. Je vais dans cet article vous montrer l’efficacité d’un tel dispositif pour la détection des essaimages.

A la sortie de l’hiver, mes deux ruches alors en pleine forme, ont été prises par la folie de l’essaimage. J’ai pu récupérer 9 essaims sur une période de deux semaines grâce à mes balances connectées !

Pour ceux qui ne voient pas de ce qu’est un essaimage, voici un petit rappel : l’essaimage est le moyen de reproduction d’une colonie (assimilable à la reproduction humaine, là où la ponte des œufs de la reine qui donne naissance à des abeilles est assimilable au renouvellement des cellules d’un corps humain). Dans les faits, la reine quitte la ruche avec une moitié des abeilles de la colonie (gorgées de miel) pour trouver un nouveau domicile, tandis que le reste des abeilles élèvent une nouvelle reine (en nourrissant une larve de moins de 3 jours à la gelée royale exclusivement). L’essaim se pose dans un arbre entre 1 et 3 jours, le temps de trouver un nouveau domicile.

4 cellules royales sont visibles dans le bas de ce cadre

Récupérer un essaim, c’est l’opportunité d’augmenter son nombre de colonies naturellement, il faut juste acheter des nouvelles ruches…

Le tout est d’être au courant qu’un essaimage est en cours. Ils se produisent généralement en début d’après midi. Un nuage d’abeilles apparait au dessus des ruches, puis se déplace vers son perchoir temporaire.

Les abeilles mettent plusieurs minutes à se stabiliser. Alors, l’essaim forme une grappe stable d’abeilles calmes.

Essaim de 1,4Kg (14 000 abeilles environ)

Ensuite, des exploratrices partent à la recherche d’un lieu sympa pour la colonie, un volume de 60 litres environ, bien orienté par rapport au soleil, en hauteur. Les exploratrices reviennent vers l’essaim et proposent le lieu qu’elles ont trouvé avec une danse caractéristique, que j’ai pu capturer. En effet, l’essaim est à l’extérieur, donc leur activité est visible plus facilement que dans la ruche.

La danse est visible en bas à gauche de la vidéo

Ensuite, une fois l’essaim stabilisé, on le récupère dans une boite ou un carton, puis on le dépose devant une ruche ou directement à l’interieur.

Une fois la reine à l’intérieur, les abeilles suivent :

Les abeilles « battent le rappel » (elles découvrent la glande de Nazanoff et elles ventilent) ce qui a pour conséquence de récupérer les abeilles qui se sont perdues ou les exploratrices qui n’étaient pas là lors de la capture de l’essaim.

Voici quelques photos d’essaims que j’ai eu la chance de capturer :

Les balances de ruches m’ont été d’une grande aide pour être alerté, en effet, en cas de baisse de plus de 500g en 5 minutes, mon script m’envoie une notification !

Courbe du poids de la ruche 2

La baisse brutale 1 correspond à un essaim primaire de plus de 2Kg, en début d’après midi
La baisse 2 n’est pas due à un essaimage mais à une intervention de ma part : elle correspond à la récupération d’un cadre de miel permettant de donner des réserves à l’essaim dans la ruchette : j’en prends soin, gîte et couvert !
La baisse brutale 3 correspond à un essaim secondaire de 1Kg, le lendemain.

j’ai aussi eu le droit à un essaim farceur, à 17h. 7 000 abeilles environ ont quitté la ruche pour ensuite la réintégrer une vingtaine de minutes après.

Essaim farceur

J’ai été pris au dépourvu, je n’étais pas équipé de 8 ruches, mais juste de 2… donc en attendant les livraisons, j’ai constitué des ruches temporaires basées sur des hausses (des demis cadres) :

Là, on touche à l’essence même de ce blog : le bricolage…

Les abeilles n’aimant pas le vide, ont construit sous le cadre de hausse :

Connecter ses ruches !

En juin 2019, j’ai découvert l’apiculture grâce à un voisin apiculteur amateur passionné depuis 40 ans.

Après un été 2019 studieux à lire « l’apiculture pour les nuls » et à regarder l’ensemble des épisodes de « Les maîtres des abeilles » en famille, nous voilà prêts !

La découverte de l’apiculture

Je réserve deux ruches et deux essaims pour Mars 2020. En attendant, je prépare une dalle béton pour accueillir une ruche au potager et l’autre dans mon jardin de ville.

En plein confinement, je suis appelé par la route d’or pour prendre rendez-vous. Une semaine plus tard, c’est fait. Après un voyage unique avec mon laisser-passer d’apiculteur, me voici doté de deux ruches !

Pour simplifier la mise en place, nous avons placé les deux ruches sur un toit-terrasse ensoleillé toute la journée… et sous notre regard.

Mes deux ruches orientées Est.

Deux semaines après, première visite avec mon coach, histoire de faire connaissance avec les dizaines de milliers de locataires.

La reine est visible au centre. Elle a un point vert.

Le courant est bien passé 😉

Comme je l’ai fait pour le potager et pour le poulailler, je me suis lancé le défi de connecter les ruches !

Le cahier des charges est le suivant :

  • monitorer le poids des ruches, on peut déduire une quantité d’informations des variations de poids des ruches.
  • pouvoir prendre une photo de l’activité des abeilles sur la planche d’envol, à la demande ou sur un événement donné.
  • pouvoir détecter une attaque de frelon et cerise sur le gâteau, les terrasser… (à l’heure où j’écris cet article, ces deux fonctionnalités sont encore de l’ordre du rêve…)

Conception d’une balance de ruche

J’ai lu pas mal d’articles et de technologies sur les balances. Il existe 4 façons de placer des capteurs de poids.

Je suis parti sur l’option 1, un capteur central unique. Comme l’indique le comparateur, ce n’est pas la solution la plus stable mécaniquement, la prochaine fois que je fais une balance, je partirai sur l’option 4 qui est plus stable et a en plus l’avantage de ne pas avoir besoin de structure.

Réalisation des deux plateaux en inox

Le principe de la balance réside dans le fait que le poids présent sur le capteur modifie de façon infime le courant qui passe par ses bornes. A l’aide d’un amplificateur, le Raspberry Pi enregistre clairement des modifications de poids.

Capteur installé sur les deux plateaux de la balance

Test et étalonnage à l’aide de trois paquets de 1Kg

Résultat en live : 1 000g puis 2 000g, puis 3 000g : pas mal !

Et hop, voici mes deux ruches équipées d’une balance.

Les deux balances sont raccordées à un Raspberry Pi 3 équipé de Domoticz.

Voici le type de données que l’on peut collecter sur 7 jours.

Notre analyse :

  1. sortie du matin, dès les premiers rayons du soleil
  2. récolte abondante (quasi 2Kg) sur une journée incroyable après plusieurs jours humides
  3. soleil d’artifice : c’est le nom donné à cette période propice au premier vol des nouvelles abeilles (1 000 nouvelles chaque jour). Elles choisissent le meilleur moment pour tester leurs ailes : beau temps sans vent… Le lendemain, il est apparu plus tôt
  4. typique d’une nuit après une grosse journée de récolte. Toute la nuit, les abeilles ventilent (elles se mettent sur la planche d’envol, mais à l’envers et battent des ailes pour former un courant d’air) afin de baisser le niveau d’humidité du miel. Le taux d’humidité doit descendre à 19% pour que le miel puisse se conserver. A ce moment, les abeilles operculent les alvéoles. La ventilation fait descendre le taux d’humidité ; il y a perte d’eau donc de poids.
  5. cette nuit là, les abeilles ont plutôt construit des alvéoles en cire à partir du miel : il faut 9Kg de miel pour faire 1Kg de cire. Pas besoin de ventiler, le poids reste stable.

Zoom sur une journée et deux nuits :

Soleil d’artifice
Ventilation nocturne
Graph de l’évolution 24h le jour de la récolte : -53Kg (deux hausses : miel + structure)

Une baisse brutale de poids peut aussi s’expliquer par un essaimage. C’est à dire 20 000 abeilles qui quittent la ruche avec la reine. Une telle masse d’abeilles représente un poids de 2Kg (une abeille fait 0,1g). J’ai mis en place une alerte pushbullet pour alerter d’un essaimage, ce qui me permet de récupérer un essaim qui se serait réfugié dans un arbre près des ruches. Je n’ai pas pu valider, puisque je n’ai pas eu d’essaimage… ce sera pour l’année prochaine !

[Mise à jour une année après] J’ai pu valider l’alerte essaimage ! J’ai rédigé un article dédié !

Voici ce à quoi aurait pu ressembler un essaimage sur la balance, mais dans mon cas, c’était plus un bug de la balance ou alors une petite sortie (puis retour) inexpliquée de 20 000 abeilles !

Courbe de poids sur une année, de mars à mars

Timelapse de la récolte

Nous avons eu des variations de couleur de miel tout au long de la récolte
Récolte de 50Kg de miel sur les deux ruches

Domoticz permet aussi d’amasser des métriques métrologiques sur les services météo open, comme openweather. On peut utiliser ces datas via l’API de domoticz.

Exemple pour le vent :

La température est aussi disponible. J’ai aussi ajouté une sonde de température au cœur du couvain pour monitorer sa température.

On observe que le couvain reste à la même température, jour comme nuit alors que la température extérieure varie. Une alerte est configurable dans Domoticz pour être alerté d’une baisse de température dans le couvain, qui correspondrait à un vrai problème pour la colonie.

Température à l’extérieur de la ruche

Une capture écran d’une mauvaise semaine !

Maintenant de la récolte est passée, attaquons nous au problème des frelons !

Détection des frelons

Les frelons, asiatiques surtout, attaquent les abeilles à partir de mi juillet, le rythme des attaques s’intensifiant jusqu’à mi novembre.

L’objectif est de trouver une solution à la fois fiable et abordable pour détecter et tuer les frelons qui attaquent les ruches.

Nous allons tester deux approches :
– par le son
– par l’image

En attendant, on améliore notre revers de badminton en pulvérisant les frelons asiatiques qui attaquent mes ruches !

Approche par l’image

La fondation Raspberry Pi a lancé une caméra HQ pour Haute Qualité. Cette caméra fonctionne avec des objectifs.

J’en ai un exemplaire, j’ai profité des vacances d’été pour avancer sur ce projet.

J’ai placé cette caméra au dessus de la ruche, dirigée vers le bas, pour prendre en photo devant la planche d’envol, car les frelons en vol stationnaire sont toujours dans la zone.

En attendant une solution à base d’IA / Deep learning, je me suis attaqué à l’acquisition d’image :

Photo brute
Une fois zoomée

Puis au traitement sur la base d’un nombre de pixels contiguës orangés caractéristiques des frelons asiatiques à l’aide de la librairie OpenCV. Des articles comme celui ci : https://answers.opencv.org/question/74444/detect-flying-hornets/ m’ont donné de l’espoir.

Les résultats sont intéressants :

Gros succès. On voit la planche d’envol avec les abeilles qui ne sont pas détectées.
le centre des cercles bleu montre les pixels orangés contiguës. On voit aussi une abeille non détectée (en rose)
On voit sur cette photo les faux positifs : des graines de bouleau sont détectées comme frelons…
Une feuille de bouleau
Soleil d’artifice qui fait un feu d’artifice de détections…

Vous l’avez compris, soit il faut que j’améliore mon algorithme de détection OpenCV, soit il faut que je passe au deep learning (qui est fait pour ça !).

Par exemple, l’API de Google n’est pas opérationnelle !

Une façon d’avancer plus rapidement serait de tomber sur un modèle déjà existant comme https://hackaday.io/project/161581-ai-equiped-wasp-and-asian-hornet-sentry-gun et https://www.kaggle.com/tegwyntwmffat/european-wasp-vespula-vulgaris-kitti-format, mais il ne fonctionne pas avec mon système.

Une fois détecté, on passera à l’action. J’ai plein d’idées, mais c’est pour après. D’ailleurs, la détection par l’image a ma préférence parce qu’elle est limitée dans l’espace (pas de risque de photographier un 747 entre la ruche et le sol) et en plus, une fois localisé en vol stationnaire, on a une idée de où il faut agir, à la différence du son.