Site Tools


en:domotique:garagebox

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:domotique:garagebox [2025/02/11 16:30] – [Parts selection] kodeinen:domotique:garagebox [2025/02/18 14:21] (current) – [Résultats] kodein
Line 1: Line 1:
-FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// 
- 
 ====== Why I want home automation for my separate garages too ====== ====== Why I want home automation for my separate garages too ======
 As William would say : //"Why not ?"// LOL As William would say : //"Why not ?"// LOL
Line 65: Line 63:
  
 GPIO is the only language it talks. GPIO is the only language it talks.
-====== Essais ====== +====== Attempts ====== 
-J'ai acheté "un peude matériel pour réaliser plusieurs montages en parallèle et pouvoir les tester sans devoir démonter un pour faire l'autre+I bought "somepartsEnough to be able to make multiple prototypes in parallels without having to take apart the previous ones. Here is the "short" list : 
-  * 5 ESP32 "classiques" avec connecteur antenne ipex+  * 5 ESP32
   * 1 ESP32-C6 (zigbee)   * 1 ESP32-C6 (zigbee)
   * 1 ESP32-H2 (zigbee)   * 1 ESP32-H2 (zigbee)
   * 2 LD2420 (radar)   * 2 LD2420 (radar)
-  * 1 LTR390 (lumière)+  * 1 LTR390 (light)
   * 2 BME280 (t°)   * 2 BME280 (t°)
-  * 5 relais avec optocoupleurs +  * 5 relays 
-  * 2 kits solaires avec un porte li-ion 18650 +  * 2 solar kits with 18650 socket 
-  * 1 DC-DC converter qui accepte à 6V en entrée et sort 3.3V (j'aurais du en prendre 3, mais…) +  * 1 DC-DC converter that takes to 6V on input and spits a stable 3.3V on the output. 
-Ça devrait me permettre de réaliser quelques essais sans trop me prendre le choux.+
 ===== Test001 ESPHome ===== ===== Test001 ESPHome =====
-Autant débuter par un truc simple sans faire non plus dans le simpliste (j'ai pas envie de juste lire/écrire des GPIO), donc récupérer les données d'un capteur de t° et les remonter au central domotique. +I'll start directly trying to use I²C bus. I don't want to loose time trying to read/write GPIO since it's too easySo I'll try to plug a BME280 on the ESP32
-Si j'arrive déjà à faire ça, ça veut dire que le esp32 parle via I²C au capteur et transmet les valeurs via wifi au serveur domotique+ 
-Le tout sera alimenté directement par un chargeur USB, histoire de pas trop se casser les bonbons.+If I get that to work most of the hardest work will be done. 
 + 
 +I'll directly power the whole thing using ESP32'USB.
  
 ==== Firmware ==== ==== Firmware ====
-Le plus complexe pour moi, c'est faire le programme. N'ayant jamais utilisé ESPHome, faut le temps d'apprendre quoi mettre dans le code pour obtenir le fonctionnement désiré et comment pousser ce code dans l'ESP32. +I never used ESPHome so I need some time to get used on how things are coded and how to get that code into the ESP32.
-=== Initialiser le core ===+
  
-Dans un premier temps, je suis passé par l'interface graphique du plugin ESPHome Device Builder de Home Assistant et un pc avec chromium. +=== Initialise the ESP === 
-Ce qui permis d'assez facilement pousser un premier programme plus ou moins vide dans un ESP32-WROOM-32U surnommé "test001"+At first I used ESPHome Device Builder's GUI from my Home Assistant using chromium. It allowed me to easily upload mostly void program into one ESP32-WROOM-32U now named "test001".
  
-Mais dès que le code s'est étofféle raspi s'est retrouvé à bout de souffle pendant la compilation+But as soon as I added some bus and sensor definitionsthe rapberry pi running Home Assistant gave up on life while trying to compile codexD
  
-Pour soulager ce pauvre raspi il a fallu installer les outils CLI ESPHome sur un "vrai" ordiÇa prends tout de suite vraiment beaucoup moins de temps pour compiler et je peux pousser le firmware directement par usb dans le core sans passer par un navigateur web+To fix this, I installed ESPHome's CLI tools on one of my beefier computersIt's far faster and I can still upload the new program either using USB or over the air.
  
-=== Voyons ce code ===+=== Let's take a peek at the code ===
 <code yaml>esphome: <code yaml>esphome:
   name: test001   name: test001
Line 129: Line 128:
   - platform: homeassistant   - platform: homeassistant
     id: homeassistant_time</code>     id: homeassistant_time</code>
-Ici on a tout le setup de base du module ESPHome, j'y ai ajouté une sync avec l'horloge du serveurÇa coute rien et ça peut m'éviter des surprises si je prévois des automatismes interne à l'esp basés sur l'heure+We have here the basic setup of the ESP32. I added time sync because I may add some (local) automation using time of the dayAnd it's easy to add syncing with HA server
 <code yaml>i2c: <code yaml>i2c:
   sda: GPIO21   sda: GPIO21
Line 136: Line 135:
   id: bus_a   id: bus_a
 </code> </code>
-On initialise le bus I²C sur les pins 21 pour SDL et 22 pour SDA et on le désigne par l'identifiant bus_a. Rien de bien folichon.+Initialising the I²C bus, getting it all sweet and ready to talk with some peripherals.
 <code yaml> <code yaml>
 sensor: sensor:
Line 147: Line 146:
     humidity:     humidity:
       name: "BME280 Humidity"</code>       name: "BME280 Humidity"</code>
-On définit d'abord le type de capteurici un BME280.\\ +We first define the kind of sensorhere a BME280 using I²C.\\ 
-Ensuite, petite subtilité, mon capteur n'était pas détecté par l'ESPJ'ai poussé un sketch sniffeur d'adresse I²C sur un arduino. Il m'a signalé qu'un truc répondait à l'adresse 0x76 après avoir câblé le capteur dessus. Évidemment, l'adresse par défaut pour ces capteurs dans ESPHome est 0x77, ça ne risquait pas de fonctionner. Après avoir spécifié l'adresse, on obtient bien les remontées de valeurs du capteurs.\\ +Then I had to define the 0x76 address because the default one is 0x77 so the ESP couldn't establish the connection to the BMEI had to use an address sniffer sketch on a arduino to get the right address from the BME.\\ 
-Puis les différentes valeurs à remonter au serveur et le nom sous lequel les afficher. J'ai laissé les noms par défauts donnés sur le site ESPHome parce que c'est avant tout un proto, il n'est pas destiné à être utilisé tel quel.+Finally we define the names that will be shown in Home Assistant for the various readings made by the sensor.\\
  
 ==== Hardware ==== ==== Hardware ====
-C'est très simple de câbler un capteur I²C sur le core, seuls fils suffisent +Wiring I²C devices is really simple. You only need wires 
-  * GND sur GND +  * GND on GND 
-  * 3.3V sur 3.3V +  * 3.3V on 3.3V 
-  * SDA sur gpio 21 +  * SDA on gpio 21 
-  * SCL sur gpio 22 +  * SCL on gpio 22 
-<gallery center&nocrop&400x400&lightbox>:domotique:esphome:test001_wiring_001.png Simulation de câblage | Illustration du câblage d'un BME280 à un ESP32</gallery>+<gallery center&nocrop&400x400&lightbox>:domotique:esphome:test001_wiring_001.png Wiring schematics of a BME280 to an ESP32</gallery>
  
 ==== Résultats ==== ==== Résultats ====
-Dans un premier temps je n'avais que ça +As I said earlier the default I²C address wasn't the one used by my BME so at first I had that result 
-<gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0001.png Infos du module test001 dans Home Assistant | Le module est bien visible, mais ne remonte pas de données de t° etc.</gallery> +<gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0001.png Module is shown in Home Assistant but no values are displayed.</gallery> 
-Après avoir corrigé l'adresse dans le firmware +After using the right address 
-<gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0002.png Infos du module test001 dans Home Assistant après correction | Le module est présent et remonte des données de t° etc.</gallery> +<gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0002.png Module is shown in Home Assistant, this time values are displayed.</gallery> 
-C'est officiellement un grand succès!+Huge success(I'm making a note here)
  
-==== Améliorations ==== 
-Il va être nécessaire d'étalonner les capteurs lorsque le module complet sera installé à sa place définitive. Parce que si la pression semble correcte (par rapport à mes autres capteurs et météo France), la température et l'humidité paraissent douteuses. Le capteur zigbee du commerce et un petit thermomètre hygromètre de table dans la même pièce donnent des relevés très similaires entre-eux, mais ces relevés sont différents de ceux de test001 (genre 10% d'humidité en plus et 1 ou 2 degrés en moins). 
  
-==== Ajout LTR390 ==== + 
-Ajouter le capteur lumière et UV est vraiment trivial. Le bus I²C est déjà initialisé, il y a juste à brancher les quatre pins du capteurs sur les mêmes pins du core que le BME280Et niveau code, c'est pas plus compliqué que pour le BME on rajoute ça dans la section "sensor" :+==== Adding a LTR390 ==== 
 +It's quite trivial since it also use I²C busOnce again 4 wires connected on the same 4 pins on the ESP32 side and a bit of code are needed :
 <code yaml>  - platform: ltr390 <code yaml>  - platform: ltr390
     uv_index:     uv_index:
Line 181: Line 179:
       name: "Light Sensor Counts"       name: "Light Sensor Counts"
 </code> </code>
-<gallery center&nocrop&400x400&lightbox>:domotique:esphome:test001_wiring_002.png Simulation de câblage | Illustration du câblage d'un BME280 et LTR390 à un ESP32</gallery> +<gallery center&nocrop&400x400&lightbox>:domotique:esphome:test001_wiring_002.png Schematics of the wiring of the LTR390 on the previous wiring</gallery> 
-Et ça fonctionne directement.+And it just works. 
 +<gallery center&nocrop&400x400&lightbox>:domotique:esphome:photo001.jpg Prototype wired and running | Wiring is messy : wrong wire colors, some of them far too long and ESP straddling two breadboards >.> </gallery> 
 +==== Addind a LD2420 ==== 
 +This radar isn't harder to wire than the previous two devices : 
 +  * 3.3V on 3.3V 
 +  * GND on GND 
 +  * RX on TX0 ESP 
 +  * OT1 on RX0 ESP (on older LD2420 firmware TX may be on OT2)
  
- +Then you need to initialize the UARTSince we already use an UART for logsyou have to keep them from mixing up
-==== Ajout LD2420 ==== +<code yaml>logger: 
-Le radar à ondes millimétriques est assez simple à raccorder physiquement, encore une fois 4 fils suffisent : +  id: logz 
-  * 3.3V sur 3.3V +[…] 
-  * GND sur GND +uart: 
-  * RX sur TX0 coté ESP +  tx_pin: GPIO17 
-  * OT2 ou OT1 (en fonction de la version de firmware) sur RX0 coté ESP +  rx_pin: GPIO16
-Si on rajoute un cinquième filon peut avoir le retour sur GPIO de la présence détectée ou non et éventuellement pouvoir utiliser des modes plus économes en énergie sur l'ESP avec le GPIO qui vient le réveiller. Dans mon cas, pas très utile, le montage ne tournant pas sur batterie. +
- +
-Il faut d'abord configurer le bus UART qu'on va exploiter.  +
-<code yaml>uart: +
-  tx_pin: GPIO01 +
-  rx_pin: GPIO03+
   baud_rate: 115200   baud_rate: 115200
 +  id: radar
 </code> </code>
-Ensuite, le code pour le module n'est pas extrêmement complexe (c'est principalement attribuer à des variables d'entrés ou de sorties des noms)mais il expose plus d'interfaces que nos autres capteurs, principalement pour configurer le radar et récupérer les données du radar. +That prevents from getting logs on the sensor channel and inversely.\\ 
-<code yaml>ld2420:+I'rather define UART speed myself than hope the default is the good setting. As for the OT2 pinif your LD2420 is on older firmware you may need to set it to 256000.
  
-text_sensor: +The rest of the code isn't complex but there are a lot of parameters so it's quite lengthier than the previous devices. Moreover it's the default code I found on ESPHome website I did no change on it. So as of now, I'll only put what I change in the code to prevent having boring large slabs of code everywhere.
-  - platform: ld2420 +
-    fw_version: +
-      name: LD2420 Firmware+
  
-sensor: +So, with all this the sensor works surprisingly well. Let me be clear, distance readings are all over the place. But even if the PCB is facing the ceiling it detects me everywhere in the room. I had to go out of the room and move away from the door opening to be undetected.\\ 
-  - platform: ld2420 +I guess in an open space like in front of the garage and with a well calibrated sensor it should return more accurate readings.
-    moving_distance: +
-      name : Moving Distance+
  
-binary_sensor: +==== Automation ====
-  - platform: ld2420 +
-    has_target: +
-      name: Presence+
  
-select: +===== Now the same using zigbee ===== 
-  - platform: ld2420 +I want to evaluate how harder it would be to make the same device using "classic" code and zigbee communication
-    operating_mode: +Because most of my current devices are using that radio communicationsso it would be great to keep going with it.
-      name: Operating Mode +
-number: +
-  - platform: ld2420 +
-    presence_timeout: +
-      name: Detection Presence Timeout +
-    min_gate_distance: +
-      name: Detection Gate Minimum +
-    max_gate_distance: +
-      name: Detection Gate Maximum +
- +
-    gate_select: +
-      name: Select Gate to Set +
-    still_threshold: +
-      name: Set Still Threshold Value +
-    move_threshold: +
-      name: Set Move Threshold Value +
- +
-    gate_move_sensitivity: +
-      name: Move Calibration Sensitivity Factor +
-    gate_still_sensitivity: +
-      name: Still Calibration Sensitivity Factor +
-</code> +
-===== On garde globalement les mêmes, mais en zigbee ===== +
-Ouais, pour tester et comparer le rapport emmerdement/bénéfices+
-J'aimerais aussi beaucoup pouvoir comparer la couverture réseau entre les deux. Surtout que sous peuquelques modules zigbee supplémentaires devraient être installés dans la maison.+
en/domotique/garagebox.1739291455.txt.gz · Last modified: by kodein