Bonjour à tous !
Je suis sur le point de réaliser une carte de commande Chauffage / Fil pilote que je souhaite installer dans mon tableau elec.
j’ai 8 radiateurs électriques dont tout les fils pilotes arrivent au TGBT.
l’idée est de contrôler la chauffe des radiateurs en mode confort/hors-gel, via un ESP8266 wemo D1 Mini programmé via ESPHome et intégration à Home Assistant.
Dans un premier temps jouer avec les programmations horaires, puis dans un second les asservirs à des sondes de temperature type Xiaomi LYWSD03MMC.
Je sais qu’il y a déjà pas mal de schémas diffusé à ce sujet mais il y avait toujours un petit truc qui ne me convenait pas alors je me suis lancé
Update 11/02/20 V0.3 :
// Mon alim est en 5V
// l’esp wemo fonctionne en 3V3 via un petit régulateur LDO ME6211 pouvant fournir jusqu’a 500mA
// sachant qu’en peak sur une transmission wifi l’esp peux tirer jusqu’a 450mA il reste pas grand chose pour alimenter le MCP23017 et les optotriacs
le risque etant de provoquer un reset de l’esp
// 2 options :
// soit j’alimente tout le monde en 3V3 en ajoutant un régulateur 5V → 3V3 type LM317 fournissant suffisament de courant
// soit je reste en 5V mais dans ce cas je doit adapter la liaison i2C entre l’esp et le MCP23017 à base de mosfet 2N7000
// car l’état logique haut de l’esp sera à 3V3 et celui du mcp23017 est de 5v-0,7v=4,3v min
je trouve dommage de recreer une regulation à 3V3 juste pour adapter les tension i2c je part donc sur l’option 2:
Update 13/02/20 V0.8 :
modif du schéma en integrant l’adapteur de niveaux i2C 3V3 to 5V
je viens de tester sur une petite plaque de test nickel !!!
le codage sous esphome est vraiment facile (voir ci-dessous)
esphome:
name: espilote
platform: ESP8266
board: d1_mini
### init sequence####
on_boot:
priority: -100
then:
- switch.turn_on: fp1
- delay: 0.5s
- switch.turn_off: fp1
- switch.turn_on: fp2
- delay: 0.5s
- switch.turn_off: fp2
- switch.turn_on: fp3
- delay: 0.5s
- switch.turn_off: fp3
- switch.turn_on: fp4
- delay: 0.5s
- switch.turn_off: fp4
- switch.turn_on: fp5
- delay: 0.5s
- switch.turn_off: fp5
- switch.turn_on: fp6
- delay: 0.5s
- switch.turn_off: fp6
- switch.turn_on: fp7
- delay: 0.5s
- switch.turn_off: fp7
- switch.turn_on: fp8
- delay: 0.5s
- switch.turn_off: fp8
- switch.turn_on: fp1
- switch.turn_on: fp2
- switch.turn_on: fp3
- switch.turn_on: fp4
- switch.turn_on: fp5
- switch.turn_on: fp6
- switch.turn_on: fp7
- switch.turn_on: fp8
- delay: 0.2s
- switch.turn_off: fp1
- switch.turn_off: fp2
- switch.turn_off: fp3
- switch.turn_off: fp4
- switch.turn_off: fp5
- switch.turn_off: fp6
- switch.turn_off: fp7
- switch.turn_off: fp8
- delay: 0.2s
- switch.turn_on: fp1
- switch.turn_on: fp2
- switch.turn_on: fp3
- switch.turn_on: fp4
- switch.turn_on: fp5
- switch.turn_on: fp6
- switch.turn_on: fp7
- switch.turn_on: fp8
- delay: 0.2s
- switch.turn_off: fp1
- switch.turn_off: fp2
- switch.turn_off: fp3
- switch.turn_off: fp4
- switch.turn_off: fp5
- switch.turn_off: fp6
- switch.turn_off: fp7
- switch.turn_off: fp8
- delay: 0.2s
## MAJ SSID ALT
wifi:
networks:
- ssid: "xxxxxxxxx"
password: "xxxxxxxxx"
- ssid: "xxxxxxxxx"
password: "xxxxxxxxx"
manual_ip:
static_ip: 192.168.1.211
gateway: 192.169.1.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Espilote Fallback Hotspot"
password: "xxxxxxxxx"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "xxxxxxxxx"
ota:
password: "xxxxxxxxx"
#######################
web_server:
port: 80
#i2c Pin setup
i2c:
- id: bus_a
sda: D2
scl: D1
scan: True
# Config MCP address
mcp23017:
- id: 'mcp23017_hub'
address: 0x20
# MAJ ////////// WIFI STATUT
sensor:
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 60s
switch:
- platform: gpio
name: "FP1"
pin:
mcp23017: mcp23017_hub
# Use pin number 0
number: 0
mode: OUTPUT
inverted: False
id: fp1
on_turn_on:
- output.turn_off: ledfp1
on_turn_off:
- output.turn_on: ledfp1
- platform: gpio
name: "FP2"
pin:
mcp23017: mcp23017_hub
# Use pin number 1
number: 1
mode: OUTPUT
inverted: False
id: fp2
on_turn_on:
- output.turn_off: ledfp2
on_turn_off:
- output.turn_on: ledfp2
- platform: gpio
name: "FP3"
pin:
mcp23017: mcp23017_hub
# Use pin number 2
number: 2
mode: OUTPUT
inverted: False
id: fp3
on_turn_on:
- output.turn_off: ledfp3
on_turn_off:
- output.turn_on: ledfp3
- platform: gpio
name: "FP4"
pin:
mcp23017: mcp23017_hub
# Use pin number 3
number: 3
mode: OUTPUT
inverted: False
id: fp4
on_turn_on:
- output.turn_off: ledfp4
on_turn_off:
- output.turn_on: ledfp4
- platform: gpio
name: "FP5"
pin:
mcp23017: mcp23017_hub
# Use pin number 4
number: 4
mode: OUTPUT
inverted: False
id: fp5
on_turn_on:
- output.turn_off: ledfp5
on_turn_off:
- output.turn_on: ledfp5
- platform: gpio
name: "FP6"
pin:
mcp23017: mcp23017_hub
# Use pin number 5
number: 5
mode: OUTPUT
inverted: False
id: fp6
on_turn_on:
- output.turn_off: ledfp6
on_turn_off:
- output.turn_on: ledfp6
- platform: gpio
name: "FP7"
pin:
mcp23017: mcp23017_hub
# Use pin number 6
number: 6
mode: OUTPUT
inverted: False
id: fp7
on_turn_on:
- output.turn_off: ledfp7
on_turn_off:
- output.turn_on: ledfp7
- platform: gpio
name: "FP8"
pin:
mcp23017: mcp23017_hub
# Use pin number 7
number: 7
mode: OUTPUT
inverted: False
id: fp8
on_turn_on:
- output.turn_off: ledfp8
on_turn_off:
- output.turn_on: ledfp8
#################################
output :
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 8
id: ledfp1
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 9
id: ledfp2
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 10
id: ledfp3
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 11
id: ledfp4
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 12
id: ledfp5
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 13
id: ledfp6
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 14
id: ledfp7
- platform: gpio
pin:
mcp23017: mcp23017_hub
number: 15
id: ledfp8
Voici donc mon schema en V1.2 :
J’ai fait une petit carte LED pour afficher en face avant l’etat des different circuit
Ces leds sont connecter aux GPOut 9-16 du MCP23017
je dispose d’une petite alim de chez meanwell 5V-3A sur rail din
https://www.meanwell-web.com/fr-fr/ac-dc-ultra-slim-din-rail-power-supply-input-range-hdr–30–5
j’aimerai intégrer cette carte dans un boitier rail din aussi genre ca :
https://secure.reichelt.com/fr/fr/module-aprarail-db4-ventil-ferm–apra-db4-gbk-p209186.html?&nbc=1
voici la carte que j’ai commander chez JLPCB
integration dans le Boitier avec le soft fusion 360 qui intègre maintenant les fonctions de eagle CAO
Update 23/03/2020 :
voici les cartes reçus début mars et montées
fusion 360 c’est vraiment cool what you see is what you get !
si vous êtes intéressé par les fichiers fusion cad 3d c’est par là:
https://drive.google.com/drive/folders/1QqcysZMWLQzIWShHSq1c7B4GyTyHWJvU?usp=sharing
je lance les tests
Update 05/04/20 :
Tout est oppérationel !!
Le boitier est en place dans mon tableau électrique et tout les circuits sont asservies à une sonde de temperature Xiaomi LYWSD03MMC modifié (cf : custom firmware ), le tout integtré dans Home Assistant avec un thermostat et un programmateur par zones
à propos des sondes xiaomi LYWSD03MMC :
j’ai commandé 8 sondes sur aliexpress
le top c’est leur prix 1,7€ par unités (port compris)
par là :
elles fonctionnement en Bluetooth Low Energy BLE
le problème c’est que par défaut il faut une passerelle de chez xiaomi pour exploiter les infos
et le tout passe par le cloud (bof)
il y a donc deux trois geek qui ce sont amusé à reprogrammé leur firmware et qui propose donc une version modifié permettant de désactiver la clef d’appairage (bindkey) et ajouter le message de pourcentage de battery , de re-calibrer la temperature et l’hydrométrie et quelques autre petites fonctions tunning et le tout other the air OTA !!
ci-dessous le liens sur git hub :
Ensuite j’utilise le module Bluetooth de mon Raspberry Pi 3b+ pour récupérer les messages BLE des 8 sondes a l’aide du module Passive BLE Monitor :
dispo via HACS (Home Assistant Community Store)
Pour ceux dont la couverture Bluetooth est limité il existe 2 solutions que je n’ai pas exploré mais qui peuvent dans certains cas solutionner les soucis de couverture.
-
soit utiliser un dongle usb Bluetooth amelioré branché directement sur le Raspi le soucis c’est que ca coute 34€
exemple :
UD100-G03 Dongle USB Bluetooth longue portée - lextronic -
soit utiliser un ou 2 ESP32 (wifi + Ble) et s’en servir comme passerelle BLE/Wifi leur assigner chacun une partie des Sondes et repeter le message avec esphome
voir le post sur le site d’esphome :
ESP32 Bluetooth Low Energy Tracker Hub — ESPHome
et enfin voici le systeme en place dan s mon TGBT :