Catégorie : maison

  • GallusSense: machine learning, audio streaming… et cocoricos

    GallusSense: machine learning, audio streaming… et cocoricos

    👇 English version

    Dans la série des projets domotiques un peu atypiques, en voici un qui mêle machine learning, streaming audio et gallinacés : GallusSense, un système que j’ai développé pour détecter en temps réel les chants de coq.

    Pourquoi ?

    Les coqs de notre quartier ont un certain succès dans le voisinage ! J’ai eu envie de comptabiliser leurs cris, juste pour le plaisir, et de voir s’il était possible d’en tirer des statistiques intéressantes : heures de chant, fréquence, intensité…

    Première approche : BirdNET-Pi

    Ma première idée a été d’utiliser BirdNET-Pi, un projet open-source très complet basé sur le modèle BirdNET développé par l’université de Cornell. Il permet de détecter et classifier automatiquement les chants d’oiseaux à partir de flux audio.

    🧩 J’ai opté pour la version Docker (plus rapide à déployer sur mon homelab que l’image RPi bare metal), en utilisant un flux RTSP provenant d’une caméra IP Reolink installée dans le jardin.

    Adapter BirdNET pour un coq domestique

    Le coq domestique est une sous-espèce du coq bankiva, appelée Gallus gallus domesticus. BirdNET s’appuie sur une base de données axée sur les espèces sauvages, et ne distingue pas clairement entre Gallus gallus (le coq bankiva d’Asie du Sud-Est) et sa version domestiquée que l’on connaît dans nos campagnes.

    Résultat : comme BirdNET suppose que Gallus gallus est un oiseau sauvage rare en Belgique, il a tendance à rejeter ce type de détection par défaut — même si un coq bien réel (Gallus gallus domesticus) chante à plein poumon dans le quartier.

    Pour obtenir des résultats réellement exploitables, j’ai dû ajuster deux paramètres clés dans BirdNET-Pi :

    • D’abord, j’ai fixé le Species Occurrence Frequency Threshold à 0.0005 — la valeur minimale possible — pour éviter que BirdNET écarte automatiquement les détections de Gallus gallus, jugées peu probables dans ma région.
    • Ensuite, j’ai utilisé une Custom Species List, ne contenant que Gallus gallus (le coq bankiva), afin de filtrer toutes les autres espèces et réduire les faux positifs.

    Des résultats prometteurs… mais limités

    Résultat : ça marchait, mais pas parfaitement. Tous les chants n’étaient pas détectés, et le taux de confiance dépassait rarement 80 %, même avec un coq bien actif à quelques mètres.

    Et surtout, l’interface ne me convenait pas : pensée pour l’observation ornithologique, elle est très complète mais pas vraiment adaptée à la détection d’une seule espèce dans un cadre domestique — encore moins pour un usage un peu ludique ou statistique.

    Cela dit, BirdNET-Pi reste un excellent projet, idéal pour identifier les oiseaux présents dans un jardin, et je le recommande sans hésiter à tous les curieux de biodiversité locale.

    Créer GallusSense

    C’est à ce moment-là que j’ai décidé de développer GallusSense, une solution 100 % dédiée à un seul objectif : détecter les cocoricos en temps réel.

    Comment ça fonctionne ?

    GallusSense repose sur une architecture simple et locale :

    • Il récupère un flux audio en direct (RTSP) depuis une caméra IP ou un micro réseau.
    • Il analyse le signal audio en continu à l’aide de la bibliothèque Python librosa.
    • Il en extrait des caractéristiques MFCC (Mel Frequency Cepstral Coefficients), couramment utilisées en reconnaissance audio.
    • Il passe ces données à un modèle de machine learning entraîné maison, spécifiquement conçu pour reconnaître les chants de coq.
    • Chaque détection est enregistrée dans une base SQLite.
    • Le tout est visualisé dans une interface Streamlit, avec statistiques, courbes et visualisations en temps réel.

    🎯 Le modèle est rapide, local et bien adapté à mon environnement sonore. Résultat : détections fiables, très peu de faux positifs, et surtout une interface beaucoup plus pertinente pour un usage personnel, simple et visuel.

    En savoir plus

    Si le projet vous intrigue ou vous amuse autant que moi, tout est disponible ici :
    📦 Repository GitHub : github.com/dafal/gallussense

    Et pour voir le système en action, je l’ai mis en ligne :
    🔎  gallussense.dafriser.be


    GallusSense: machine learning, audio streaming… and roosters

    Among my more unusual smart home projects, here’s one that combines machine learning, audio streaming, and poultryGallusSense, a system I built to detect rooster crowing in real time.

    Why ?

    The roosters in our neighborhood have become a bit of a hit with the locals! I thought it would be fun to keep track of their crowing, just for curiosity’s sake — and maybe pull out some interesting stats: peak hours, frequency, intensity…

    First attempt: BirdNET-Pi

    My first idea was to try BirdNET-Pi, a well-documented open-source project based on Cornell University’s BirdNET model. It can detect and classify bird sounds from an audio stream.

    🧩 I deployed the Docker version (quicker to get up and running on my homelab than the bare-metal RPi image), using an RTSP audio feed from a Reolink IP camera placed in the garden.

    Adapting BirdNET to a domestic rooster

    The domestic rooster is a subspecies of the red junglefowl, known by its scientific name Gallus gallus domesticus. BirdNET, however, relies on a taxonomy focused on wild species, and doesn’t really distinguish between Gallus gallus(the junglefowl native to Southeast Asia) and the familiar backyard rooster we all know.

    As a result, BirdNET assumes Gallus gallus is unlikely to be found in Belgium, and therefore tends to discard any detection by default — even if a very real Gallus gallus domesticus is crowing loudly right outside.

    Tuning BirdNET-Pi

    To get any usable results, I had to tweak two key parameters:

    • I set the Species Occurrence Frequency Threshold to 0.0005 — the lowest value allowed — so BirdNET wouldn’t automatically discard Gallus gallus detections as improbable.
    • I also used a Custom Species List containing only Gallus gallus (the red junglefowl), to focus the detection and eliminate background noise from other birds.

    Promising results… with limitations

    It worked — sort of. Not all crows were detected, and confidence rarely exceeded 80% even with a very vocal rooster just meters.

    More importantly, the interface wasn’t ideal: great for ornithology, not so much for tracking a single species or for a playful, home-use case.

    That said, BirdNET-Pi is an excellent project for identifying wild birds in your area, and I highly recommend it for garden biodiversity enthusiasts.


    Building GallusSense

    That’s when I decided to build my own system — GallusSense, focused on one thing only: detecting roosters in real time.

    How it works

    GallusSense is a lightweight, local solution. It:

    • grabs a live RTSP audio stream from an IP camera or network mic;
    • processes the audio stream continuously using librosa;
    • extracts MFCC audio features;
    • feeds them into a custom-trained machine learning model that recognizes rooster crows;
    • logs each detection in a SQLite database;
    • displays everything in a Streamlit dashboard, with real-time stats and visualizations.

    🎯 The model is fast, local, and tailored to my environment. It gives reliable detections, very few false positives, and a much more usable interface for simple monitoring.

    Learn more

    If you’re curious (or amused) by the idea, the whole project is on Github:
    📦 GitHub repogithub.com/dafal/gallussense

    And for a live view of it in action:
    🔎  gallussense.dafriser.be

  • Chauffage existant : comment je l’ai rendu plus intelligent

    Chauffage existant : comment je l’ai rendu plus intelligent

    👇 English version

    Lorsque j’ai emménagé dans ma nouvelle maison à Namur, j’ai eu la bonne surprise de découvrir une installation de chauffage tout à fait opérationnelle. Pas de panne, pas de radiateurs froids, et une chaudière fonctionnelle. Bref, rien qui nécessitait d’intervention lourde ou de remplacement complet.

    Mais si tout marchait, rien n’était vraiment optimisé. L’installation ne bénéficiait d’aucune automatisation, les vannes thermostatiques étaient d’un autre âge, et la gestion du chauffage reposait essentiellement sur des réglages manuels et approximatifs.

    Plutôt que de tout repenser, l’objectif est aujourd’hui de m’adapter à l’existant, et d’adapter l’existant à mes besoins. En gardant la base en place, j’ai entamé une série de petites améliorations : remplacement des vannes, ajout d’un pilotage plus intelligent par pièce, et une couche d’automatisation pour rendre l’ensemble plus confortable et plus réactif au quotidien.


    Adapter la chaudière

    Ma maison est équipée d’un chauffage central au gaz, pas idéal d’un point de vue émissions de CO₂, mais pour l’instant, c’est ce qui est en place… et ça fonctionne bien. L’idée n’est donc pas (encore) de tout changer, mais de voir comment limiter la consommation à court terme, tout en gardant une porte ouverte pour une éventuelle conversion vers une énergie plus propre à moyen ou long terme.

    La chaudière en question est une Vaillant atmoTEC plus, un modèle atmosphérique. Contrairement aux chaudières à condensation, qui récupèrent une partie de la chaleur des fumées de combustion pour améliorer leur rendement, les chaudières atmosphériques comme celle-ci brûlent le gaz de manière plus « simple », avec une perte énergétique plus importante. Bref, ce n’est pas la plus efficace, mais elle a l’avantage d’être relativement neuve et… surtout déjà là.

    Premier constat à l’emménagement : aucun thermostat d’ambiance. En fait, comme la maison était subdivisée en un appartement et quatre kots, chaque espace avait ses propres vannes, mais aucune gestion centralisée. Ajoutez à cela l’absence totale de sonde extérieure, et vous obtenez un système qui chauffe, oui, mais à l’aveugle.

    Autre détail (plutôt absurde) : ce type de chaudière a besoin d’avoir au moins un radiateur ouvert en permanence. Sinon, elle se met en sécurité. Pas super pratique quand on cherche justement à mieux contrôler la chaleur pièce par pièce…

    Première piste : écouter la chaudière

    Pour mieux comprendre ce que fait la chaudière (et pourquoi), je me suis tourné vers ebusd, un projet open source qui permet de communiquer avec certaines chaudières Vaillant via le bus eBUS. En gros, cela permet de lire et collecter les données internes de la chaudière : température de l’eau, état de fonctionnement, pressions, etc.

    J’ai utilisé le chip eBUS C6 d’Elecrow (disponible ici), qui se branche sur le bus eBUS d’un côté et de l’autre ESP32 (donc Wifi). Très vite, j’ai pu visualiser pas mal d’informations via ebusd. Le souci ? Lire, oui. Agir, non. Sans un module de contrôle Vaillant supplémentaire, il est très difficile de modifier les consignes ou d’interagir avec la chaudière. Dommage, car ça limite l’intérêt du système pour une automatisation complète.

    Je garde tout de même ebusd actif, et il est bien intégré dans Home Assistant, donc peut-être que j’exploiterai davantage ces données à l’avenir. Un article plus technique suivra sûrement là-dessus.

    Solution retenue : simplicité et efficacité

    Module Shelly Mini 1 gen3 installé dans la chaudière sur bornes 3 et 4.

    En attendant, j’ai opté pour une solution KISS (Keep It Simple, Stupid). Sur la carte mère de la chaudière, un connecteur permet de brancher un simple thermostat on/off (bornes 3 et 4). J’ai donc câblé un petit Shelly 1 Mini, que je peux activer ou désactiver via Home Assistant. Quand il est “on”, la chaudière chauffe (selon sa courbe interne). Quand il est “off”, elle reste au repos.

    Ce n’est pas une régulation très fine — je ne peux pas modifier la courbe de chauffe, par exemple — mais c’est largement mieux que rien. Et surtout, ça fonctionne de manière fiable et sans prise de tête.


    Remplacer les vannes : entre attentes et compromis

    Au départ, je cherchais simplement des vannes thermostatiques connectées en Wi-Fi. Ayant déjà pas mal de modules Shelly dans la maison, j’espérais secrètement une version 2 des vannes Shelly TRV : quelque chose de fiable, simple à intégrer et connecté directement sans hub supplémentaire.

    Mais rapidement, je me suis heurté à un problème assez classique avec les vannes Wi-Fi : elles consomment beaucoup de batterie. Et c’est probablement pour ça qu’on en trouve très peu sur le marché, ou qu’elles finissent par être abandonnées. Une vanne qui doit se reconnecter constamment au réseau Wi-Fi, ça vide les piles en un rien de temps…

    L’alternative Shelly : la BLU TRV

    J’ai finalement patienté un peu, et Shelly a sorti un nouveau modèle, la BLU TRV. C’est une vanne Bluetooth, mais que l’on peut contrôler à distance via un dongle gateway Wi-Fi/Bluetooth (également proposé par Shelly). Les vannes sont aussi compatibles Zigbee, ce qui ouvre d’autres possibilités d’intégration (pas testé puisque que pas de Zigbee dans mon cas).

    Il faut avouer que les premières versions — tant des vannes que des gateways — étaient un peu capricieuses. Bugs, connexions instables, comportement imprévisible… Pas idéal. Mais les dernières mises à jour ont bien stabilisé l’ensemble, et aujourd’hui ça tourne correctement chez moi.

    Quelques limites côté ergonomie

    Je dois cependant souligner deux petits défauts d’ergonomie. D’abord, le système de commande physique : tout le tour de la vanne tourne pour faire différents réglages selon les mouvements autour du corp de la vanne (sorte d’anneau de commande). C’est… original, mais pas forcément intuitif. Ensuite, l’affichage : il est situé dans l’axe de la vanne, ce qui le rend illisible dans la majorité de mes configurations, sauf si il s’agit d’une vanne « équerre » (avec le module thermostatique qui se met de face).

    Dans mon cas, ces limitations sont secondaires : je n’interagis jamais physiquement avec les vannes. Tout est automatisé, les températures sont gérées pièce par pièce depuis Home Assistant, et je n’ai pas besoin de tourner quoi que ce soit à la main. Mais si vous comptez les utiliser manuellement, ces points peuvent faire la différence dans votre choix.

    Ce n’est pas le produit parfait, mais pour mon usage — zéro interaction manuelle, tout en automatique — c’est une solution cohérente, intégrée et stable


    Une couche d’automatisation pour tout orchestrer

    Pour tirer pleinement parti des vannes connectées et rendre le système de chauffage réellement intelligent, j’ai mis en place une automatisation personnalisée dans Home Assistant. L’idée est simple : chaque pièce devient un petit écosystème autonome, capable de réguler sa température selon l’usage réel.

    Concrètement, pour chaque pièce j’utilise :

    • une ou plusieurs vannes thermostatiques connectées (Shelly BLU TRV),

    • une sonde de température (Shelly BLU H/T),

    • un capteur d’ouverture de porte ou de fenêtre (Shelly BLU Door/Window),

    • et surtout, un capteur de présence.

    Côté capteur de présence, j’utilise ce modèle un peu moche mais très efficace : le Human Presence Sensor d’Athom**. Je reviendrai plus en détail sur ce capteur dans un autre article, mais pour l’instant, retenez qu’il fait bien le job pour détecter une présence réelle et continue, même en cas d’activité faible (lecture, travail, etc.).

    Un template Home Assistant pour tout centraliser

    J’ai opté pour un blueprint générique, conçu avec l’aide de l’AI, et que j’applique à chaque pièce avec quelques paramètres.

    👉 Disponible ici : presence_climate2.yaml

    Ce blueprint prend en compte plusieurs conditions pour ajuster la température intelligemment.

    1. Fonctionnement normal : présence détectée

    Si une présence est détectée dans une pièce pendant un certain temps (par exemple 10 minutes), la vanne règle automatiquement la température sur une valeur de confort (typiquement 21°C). En cas d’absence prolongée (aussi configurable), la température redescend à une valeur plus basse (par exemple 17°C).

    2. Aération ou porte ouverte

    Si une fenêtre ou une porte reste ouverte plus de deux minutes, la vanne passe automatiquement à 4°C pour ne pas chauffer dans le vide. Une sécurité utile quand on oublie de fermer une porte (plus personne n’oublie de fermer les portes depuis!)ou quand on aère une pièce le matin.

    3. Préchauffage via calendrier

    Le blueprint peut aussi s’appuyer sur un agenda (calendrier Home Assistant) pour lancer le chauffage à des moments précis, avant même que quelqu’un ne soit détecté.

    C’est ce que j’utilise dans les pièces de vie le matin (chauffage qui démarre avant le lever), ou dans le bureau les jours de télétravail, selon mon emploi du temps. J’utilise l’agenda ici pour le pré-chauffage, le capteur de présence prenant ensuite le relais pour maintenir ou couper la chauffe selon la réalité du moment.

    4. Mode absence forcée

    Un capteur binaire (virtuel ou physique) peut aussi être utilisé pour forcer une température d’absence. Typiquement scène « absence » ou « nuit ».

    Un système souple, fiable et autonome

    Chaque pièce suit donc sa propre logique, tout en restant intégrée dans l’écosystème Home Assistant. Je peux ajuster les paramètres à la volée, surveiller les températures et les consignes, ou forcer des exceptions si besoin. Et surtout, plus besoin de toucher aux vannes : tout est automatisé, intelligent, et économe..


    Contrôler la chaudière et un interrupteur général pour couper tout

    En complément du système pièce par pièce, j’ai mis en place une automatisation supplémentaire qui observe l’état de toutes les vannes thermostatiques. L’idée est simple :

    • Si au moins une vanne est ouverte à plus de 25 %la chaudière s’allume.

    • Si aucune vanne ne dépasse ce seuil, le chauffage reste coupé.

    Pourquoi 25 % ? Parce que les la position des corps des vannes n’est pas toujours très précise. À un seuil plus bas, la chaudière s’arrêtait parfois car l’eau ne pouvais circuler.

    Voici l’automatisation en question, dans Home Assistant :

    alias: Activation chaudière
    triggers:
      - platform: state
        entity_id:
          - sensor.valve_position_maximum
      - platform: state
        entity_id:
          - input_boolean.heating
    actions:
      - if:
          - condition: numeric_state
            entity_id: sensor.valve_position_maximum
            above: 25
          - condition: state
            entity_id: input_boolean.heating
            state: "on"
        then:
          - service: switch.turn_on
            entity_id: switch.chaudiere
        else:
          - service: switch.turn_off
            entity_id: switch.chaudiere
    mode: single

    Dernier élément de l’installation : un interrupteur général pour le chauffage. C’est un interrupteur virtuel dans Home Assistant que j’active en cas de vacances, ou quand la belle saison revient. Lorsqu’il est désactivé, il force le module Shelly de la chaudière à rester éteint, quelle que soit la demande venant des pièces.

    C’est une sécurité simple, mais efficace, pour éviter toute consommation inutile quand il n’y a vraiment plus besoin de chauffer.


    En résumé

    Sans changer toute l’installation, j’ai réussi à moderniser le chauffage pièce par pièce, en ajoutant des capteurs, des vannes intelligentes, et une bonne dose d’automatisation. Après quelques semaine de tests, l’ensemble est fiable, réactif, économe… et surtout adapté à mes usages réels. Tout cela avec un budget raisonnable, sans devoir tout remplacer et surtout avec aucune interaction manuelle.

    D’autres ajustements viendront peut-être, notamment au niveau de l’interaction avec la chaudière via eBUS, ou de l’optimisation de certaines logiques dans Home Assistant. Mais pour l’instant, l’ensemble fait le job — et bien.


    Existing Heating System: How I Made It Smarter

    When I moved into my new house, I was pleasantly surprised to find a fully operational heating system. No breakdowns, no cold radiators, and a boiler that worked just fine. In short, nothing that required heavy intervention or a complete overhaul.

    But while everything worked, nothing was really optimised. The system had zero automation, the thermostatic valves were from another era, and heating control relied entirely on manual and imprecise adjustments.

    Rather than redesigning the whole thing, the idea is to adapt to the existing setup, and adapt it to my needs. By keeping the basic system intact, I started a series of small upgrades: replacing the valves, adding smarter room-by-room control, and a layer of automation to make the system more comfortable and responsive day to day.


    Boiler: adapting the core

    My home is equipped with a gas central heating system — not great for CO₂ emissions, but for now, it’s what’s installed… and it works well. So the goal isn’t (yet) to change everything, but to reduce consumption in the short term, while keeping options open for switching to a cleaner energy source in the future.

    The boiler is a Vaillant atmoTEC plus, an atmospheric model. Unlike condensing boilers, which recover heat from exhaust gases to improve efficiency, atmospheric boilers burn gas more “simply”, resulting in greater energy loss. Not ideal — but the unit is relatively new and, above all, already there.

    First observation when moving in: no central thermostat. Since the house was previously divided into one apartment and four student studios, each had its own manual valves, but no central management. Add to that the complete lack of an outdoor temperature sensor, and you get a system that heats — yes — but blindly.

    Another (rather absurd) detail: this type of boiler requires at least one radiator to stay open at all times. Otherwise, the boiler goes into safety mode. Not very practical when you’re trying to improve room-by-room heating control…

    Step one: listening to the boiler

    To better understand what the boiler was doing (and why), I looked into ebusd, an open-source project that allows communication with some Vaillant boilers via the eBUS protocol. In short, it lets you read and collect internal datafrom the boiler: water temperature, operating status, pressure, etc.

    I used the eBUS C6 adapter from Elecrow (available here), which connects to the eBUS line on one end and to an ESP32 (Wi-Fi capable) on the other. Pretty quickly, I was able to visualize a lot of boiler data via ebusd. The issue? Reading data is easy. Controlling the boiler is not. Without an additional Vaillant control module, it’s very difficult to change settings or send commands. Too bad — it limits the system’s automation potential.

    Still, I keep ebusd running and integrated with Home Assistant, so I may explore it more in the future. A dedicated technical article will likely follow.

    Simple and Effective: The Solution I Chose

    Shelly Mini 1 gen3 installed in the heating boiler mother board ( 3 and 4 pin).

    In the meantime, I went for a KISS approach (Keep It Simple, Stupid). The boiler’s motherboard includes a connector for a basic on/off thermostat (pin 3 and 4). So I hooked up a Shelly 1 Mini, which I can toggle via Home Assistant. When it’s “on”, the boiler heats (based on its internal curve). When it’s “off”, it stays idle.

    It’s not the most precise regulation — I can’t modify the heat curve, for example — but it’s far better than nothing. And above all, it works reliably and without headaches.


    Replacing the Valves: Expectations vs. Reality

    At first, I was looking for Wi-Fi-connected thermostatic valves. Since I already use many Shelly modules in the house, I was hoping for a second-generation Shelly TRV: something reliable, easy to integrate, and working without a hub.

    But I quickly ran into the usual problem with Wi-Fi valves: they drain batteries. That’s probably why they’re rare — or end up discontinued. A valve constantly reconnecting to Wi-Fi burns through batteries in no time…

    The Shelly Alternative: BLU TRV

    Eventually, I waited a bit, and Shelly released a new model, the BLU TRV. It’s a Bluetooth valve, remotely controllable via a Wi-Fi/Bluetooth gateway dongle (also from Shelly). The valves are also Zigbee-compatible, which opens up other integration options (not tested here — I don’t use Zigbee).

    To be fair, the first firmware versions (both valves and gateways) were a bit buggy: unstable connections, weird behaviors… not great. But recent updates have stabilized everything, and the system is now working smoothly for me.

    A Few Ergonomic Limitations

    That said, two small downsides worth mentioning:

    • The physical control ring: the entire outer shell of the valve rotates to change settings depending on how you move it. It’s… unique, but not exactly intuitive.

    • The display orientation: it’s aligned with the valve’s axis, which makes it unreadable in most cases — unless your valve is mounted facing forward (like with angled radiator connections).

    Personally, these limitations don’t matter: I never interact with the valves manually. Everything is automated via Home Assistant, and I don’t need to touch a thing. But if you’re planning to use them manually, this could be a dealbreaker.

    It’s not a perfect product, but for my use — fully automated, no manual interaction — it’s a solid, integrated and stable solution.


    A Layer of Automation to Orchestrate It All

    To fully leverage the smart valves and make the heating system truly intelligent, I set up custom automation in Home Assistant. The idea: each room becomes a mini-autonomous climate zone, adjusting temperature based on actual usage.

    For each room, I use:

    • one or more Shelly BLU TRV thermostatic valves,

    • a temperature sensor (Shelly BLU HT),

    • a door or window sensor (Shelly BLU Window/Door),

    • and most importantly, a presence sensor.

    For presence detection, I use this slightly ugly but very effective device: the Human Presence Sensor from Athom. I’ll go deeper into it in another article, but for now just know that it does a great job detecting real, continuous presence — even during quiet activities like reading or working.

    One Automation Template to Rule Them All

    Instead of building a different automation for every room, I created a generic blueprint (with the help of ChatGPT) and apply it to each zone with a few parameters.

    👉 Available here: presence_climate2.yaml

    The blueprint takes several scenarios into account to intelligently control the heating:

    1. Normal behavior: presence detected

    If presence is detected for a certain time (e.g., 10 minutes), the valve sets the comfort temperature (e.g., 21°C). After extended absence, it lowers the temperature to an energy-saving value (e.g., 17°C).

    2. Window or door open

    If a window or door is left open for more than 2 minutes, the valve switches to 4°C to avoid heating into thin air. A simple but effective safeguard. (Since I implemented this… no one forgets to close doors anymore!)

    3. Pre-heating via calendar

    The blueprint can use a Home Assistant calendar to preheat a room before someone is even present.

    I use this in living spaces in the morning (heating kicks in before we wake up), and in the home office on work-from-home days. The calendar handles the pre-heating, while the presence sensor takes over for fine-tuned control.

    4. Forced absence mode

    A virtual or physical binary sensor can enforce absence temperature, useful for “away” or “night” modes.

    A Flexible, Reliable, Autonomous System

    Each room follows its own logic while remaining fully integrated in the Home Assistant ecosystem. I can adjust thresholds on the fly, monitor temperatures and settings, or apply exceptions when needed. And best of all: no need to touch the valves — it’s all automatic, smart, and energy-efficient.


    Controlling the Boiler and a Master Switch to Shut Everything Down

    In addition to the room-by-room setup, I’ve added a supplementary automation that monitors the position of all thermostatic valves. The idea is simple:

    • If at least one valve is open more than 25%, the boiler is turned on.

    • If none of the valves exceed that threshold, the heating stays off.

    Why 25%? Because valve body position aren’t always perfectly accurate. With a lower threshold, the boiler would sometimes shut off because water cannot circulate.

    Here’s the automation in Home Assistant:

    alias: Activation chaudière
    triggers:
      - platform: state
        entity_id:
          - sensor.valve_position_maximum
      - platform: state
        entity_id:
          - input_boolean.heating
    actions:
      - if:
          - condition: numeric_state
            entity_id: sensor.valve_position_maximum
            above: 25
          - condition: state
            entity_id: input_boolean.heating
            state: "on"
        then:
          - service: switch.turn_on
            entity_id: switch.chaudiere
        else:
          - service: switch.turn_off
            entity_id: switch.chaudiere
    mode: single

    The final piece of the setup is a master switch for the heating system. It’s a virtual switch in Home Assistant that I toggle when we go on holiday or once the warm season arrives. When it’s off, it forces the Shelly switch on the boiler to stay off, no matter what any room might be asking for.

    It’s a simple but effective safeguard to avoid any unnecessary heating when it’s clearly no longer needed.


    In Summary

    Without replacing the entire system, I’ve managed to modernize my heating setup room by room, adding sensors, smart valves, and a healthy dose of automation. After a few weeks of testing, it’s proving to be reliable, responsive, and energy-efficient — all tailored to my real-life usage.

    And all this with a reasonable budget, no major changes, and zero manual interaction.

    More refinements may come later, especially in terms of eBUS integration or automation logic optimisation in Home Assistant. But for now, the system just works — and works well.

  • Illuminer notre foyer

    Illuminer notre foyer

    L’éclairage joue un rôle essentiel dans une maison, influençant à la fois l’ambiance et notre bien-être au quotidien. Dès notre emménagement dans notre nouvelle maison de ville à Namur, il est devenu évident que l’éclairage existant ne répondait pas à nos attentes. Entre des ampoules défectueuses, un éclairage insuffisant et des températures de lumière inadaptées, il était clair que des changements s’imposaient.

    Un petit aperçu de toutes les ampoules que nous avons remplacées avant même d’emménager.

    Je dois avouer que je suis un peu maniaque quand il s’agit d’éclairage. Pour moi, chaque pièce doit bénéficier d’une lumière adaptée à son usage et à l’atmosphère souhaitée. Dans notre ancienne habitation, une partie importante de l’éclairage était assurée par des luminaires DeltaLight, une entreprise belge spécialisée dans les solutions d’éclairage de qualité.

    Le passage d’un logement bien exposé à une maison plus sombre et mal éclairée a rendu encore plus essentiel l’investissement dans un bon système d’éclairage.

    Nous n’avons pas attendu d’emménager pour nous attaquer à ce problème. Avant même de poser nos valises, nous avons remplacé la plupart des ampoules ainsi que certains lampadaires. L’objectif n’était pas d’engager de grosses dépenses pour l’instant, car des travaux d’embellissement plus conséquents sont prévus. Il s’agissait plutôt d’optimiser l’éclairage existant en exploitant les points lumineux en place et les lampadaires laissés par les anciens propriétaires.

    Dans cet article, je vais partager avec vous les choix que nous avons faits et expliquer pourquoi un bon éclairage est essentiel pour transformer une maison en un véritable foyer.

    Intensité, Couleur et Indice de Rendu des Couleurs

    La température de couleur, exprimée en Kelvin (K), influence fortement l’ambiance d’un espace. Une température basse, entre 2700 K et 3000 K, diffuse une lumière chaude et accueillante, idéale pour les pièces dédiées à la détente, comme le salon ou la chambre. À l’inverse, une température plus élevée, au-delà de 4000 K, produit une lumière blanche et froide, propice à la concentration et à l’éveil, particulièrement adaptée aux bureaux et aux cuisines.

    L’intensité lumineuse, mesurée en lumens (lm), détermine la quantité de lumière diffusée. Une intensité élevée favorise la clarté et améliore la visibilité, essentielle dans les environnements nécessitant une bonne précision visuelle, comme les ateliers, les bureaux ou les cuisines. À l’inverse, une intensité plus faible crée une atmosphère tamisée, propice à la relaxation et au repos, parfaite pour les chambres et les salons.

    Enfin, l’indice de rendu des couleurs (IRC) est un critère essentiel qui évalue la capacité d’une source lumineuse à restituer fidèlement les couleurs. Un IRC élevé, supérieur à 80, garantit des teintes naturelles et éclatantes. Cela est particulièrement important dans des environnements où la justesse des couleurs est primordiale, comme les galeries d’art, les ateliers créatifs… mais aussi dans une cuisine ou au-dessus de la table de salle à manger !

    Lors de nos premières visites, l’éclairage de la maison s’est révélé insuffisant et inadapté :

    • Les ampoules halogènes 12V, notamment dans la cuisine et la salle de bain, étaient énergivores et diffusaient une lumière trop chaude, altérant le rendu naturel des couleurs.
    • À l’inverse, certains spots GU10 créaient une ambiance froide et stérile.
    • De nombreuses ampoules LED bon marché affichaient un IRC trop faible, entraînant un rendu des couleurs peu harmonieux et parfois même désagréable.

    Le Défi de trouver les bonnes ampoules

    Trouver les bonnes ampoules est vite devenu un casse-tête. Pour des luminaires haut de gamme, pas de souci : on peut dénicher des modèles qui combinent une bonne intensité, une température de couleur autour de 3000K, et un IRC supérieur à 90. Mais pour des ampoules grand public, c’est une autre paire de manches.

    • Déjà, question intensité, on est souvent limité à 1000 lumens max. Si on veut plus de puissance, il faut se tourner vers des gammes pro ou spécialisées, et là, ça peut vite chiffrer.
    • Ensuite, la couleur de la lumière : 2800K, c’est trop chaud pour nous. On préfère le 3000K, qui offre un bon équilibre. Mais trouver des ampoules à 3000K, c’est mission impossible. La plupart des magasins ne proposent que du 2800K. Pourquoi ?
    • Et pour couronner le tout, l’IRC. Là, c’est carrément la galère. Des ampoules avec un bon IRC, c’est rare. La plupart des modèles grand public ont un IRC médiocre, ce qui fausse les couleurs.

    Bref, trouver une ampoule qui coche toutes les cases, c’est un vrai parcours du combattant.

    Voici quelques unes des ampoules que nous avons installées:

    Philips MASTER LEDspot Expert Color GU10

    La meilleure des ampoules LED GU10 dispo en 3000K et avec un IRC de 97.

    • Existe en 3 couleurs: 2700K (code 927), 3000K (code 930) et 4000K (code 940).
    • 2 puissances: 3,9 W et 5,5 W.
    • 2 angles d’ouverture du faisceau lumineux: 36° (code 36D) et 25° (code 25D)

    Le top pour remplacer des ampoules sur des appliques low-cost !

    Télécharger fiche technique

    Achetées sur lampdirect.be.

    e3light – Ampoule LED 10,5W (1521lm) CRI95 3000K Dimmable E27

    L’une des rare ampoules E27 trouvée qui allient puissance lumineuse, couleur à 3000K et un très bon indice de couleur. Néanmoins, je trouve que celles reçues ont une légère dominance dans les jaunes.

    Achetée sur lampenmaster.be.

    Télécharger fiche technique

    Philips CorePro 17,5W

    L’ampoule Philips CorePro n’offre pas le meilleur IRC, mais elle compense par une intensité lumineuse maximale. Idéale pour remplacer les vieilles ampoules E27 dans la cave, sa température de couleur de 4000K est parfaite pour ce type de pièce, offrant une lumière claire et fonctionnelle.

    Achetées sur lampdirect.be.

    Télécharger fiche technique

    Gamme TP-Link Tapo

    J’ai également opté pour les ampoules intelligentes TP-Link Tapo dans certains cas. Bien que le CRI ne soit pas parfait, les dernières versions comme la Tapo L535E offrent une qualité correcte. Leur fonctionnalité RGB permet de choisir la couleur de la lumière selon l’ambiance souhaitée. De plus, elles s’intègrent facilement avec Home Assistant.

    Philips TrueForce Core LED 36W

    J’ai également testé une HPL LED TrueForce CorePro. Bien que leur indice de rendu des couleurs (CRI) soit standard, ces ampoules d’extérieur (lampadaires) offrent une intensité lumineuse optimale, en particulier la version 36W à 5500 lumens. Testée dans une grande pièce avec un lustre, elle s’est révélées un peu trop puissante 🙃, ce qui m’amène à essayer la version 3000 lumens pour un éclairage plus équilibré.

    Elles sont disponibles en 2800K, 3000K et 4000K. Cependant, leur prix reste relativement élevé, oscillant entre 25 et 50 € l’unité.

    DeltaLight Spy

    Pour la cuisine, j’ai opté pour un autre budget avec les luminaires DeltaLight Spy (qui pourront être récupéré après transformation). Pour l’instant, j’ai installé deux Spy pour éclairer la table de travail et une étagère, avec l’intention de compléter avec des DeltaLight Reo. J’ai choisi des ampoules à 3000K, mais j’hésite à passer à 4000K pour une lumière plus vive. Avec un CRI de 95, les couleurs ressortent parfaitement, surtout les tomates rouges !

    Gamme Spy sur DeltaLight

    Achetées sur lampdirect.be.

    Télécharger fiche technique

    J’espère que ces quelques références vous seront utiles. N’hésitez pas à tester différentes ampoules pour trouver celles qui vous conviennent le mieux.

    Bonne chance dans vos projets d’éclairage !

  • Bienvenue sur colline3.house!

    Bonjour à tous,

    Après des années à partager mes aventures sur mon ancien blog PDH6, me voici de retour avec un nouveau projet passionnant : la rénovation de ma maison de ville à Namur, en Belgique.

    Un nouveau départ

    J’ai fait le grand saut en quittant ma maison passive nichée dans la campagne pour m’installer dans une maison de ville au cœur de Namur. Ce changement de décor s’accompagne de nouveaux défis, notamment en termes d’isolation et de consommation énergétique. Si mon ancienne maison était un modèle d’efficacité énergétique, ma nouvelle demeure nécessite des améliorations pour atteindre un niveau de confort similaire.

    Pourquoi ce Blog ?

    L’objectif de ce blog est de partager avec vous les différentes étapes de ma rénovation. J’aborderai des sujets variés tels que l’énergie, la domotique, l’éclairage, et même la création d’un homelab. Chaque article sera l’occasion de découvrir des solutions innovantes et des astuces pour améliorer votre propre habitat.

    Les défis à relever

    En quittant notre maison passive, nous avons troqué les longs trajets contre une proximité avec les commodités de la ville. Cependant, cette nouvelle maison, moins bien isolée, représente un défi en termes de consommation énergétique et de confort. J’espère que mes expériences et mes solutions pourront vous inspirer dans vos propres projets de rénovation.

    Une aide précieuse

    Je tiens à mentionner que certains articles seront améliorés ou rédigés avec l’aide de Le Chat Pro, une intelligence artificielle qui m’assiste dans la rédaction. Cela me permet de vous offrir des contenus de qualité tout en gardant un rythme de publication régulier.

    À venir

    J’espère pouvoir poster régulièrement pour vous tenir informés de l’avancement de mes travaux et partager mes découvertes. Restez connectés pour ne rien manquer de cette aventure !

    Merci de me suivre et à très bientôt pour de nouvelles aventures rénovatrices !

    N’hésitez pas à me faire part de vos retours ou des modifications que vous souhaiteriez apporter !


    Hello everyone,

    After years of sharing my adventures on my old blog PDH6, I’m back with an exciting new project: renovating my townhouse in Namur, Belgium.

    A fresh start

    I’ve taken the big leap from my passive house nestled in the countryside to a townhouse in the heart of Namur. This change of scenery comes with new challenges, especially in terms of insulation and energy consumption. While my old house was a model of energy efficiency, my new home needs improvements to reach a similar level of comfort.

    Why this blog?

    The goal of this blog is to share the different stages of my renovation journey with you. I’ll cover a variety of topics, including energy, home automation, lighting, and even setting up a homelab. Each article will be an opportunity to discover innovative solutions and tips to improve your own home.

    Challenges ahead

    By leaving my passive house, I’ve traded long commutes for proximity to the city’s amenities. However, this new house, which is not well insulated, presents a challenge in terms of energy consumption and comfort. I hope my experiences and solutions can inspire your own renovation projects.

    A helping hand

    I want to mention that some articles will be improved or written with the help of Le Chat Pro, an AI that assists me in writing. This allows me to provide you with quality content while maintaining a regular posting schedule.

    What’s coming up

    I hope to post regularly to keep you updated on the progress of my work and share my discoveries. Stay tuned for more on this adventure!

    Thank you for following me, and see you soon for more renovation adventures!

    Feel free to let me know if you’d like any changes or additions!