Flasher un shelly (1) avec ESPHome
Article très rapide pour mettre ESPHome sur un Shelly 1 (s'applique aussi pour les autre Shelly, mais je n'ai que des 1).
Alors première étape: Sortez votre fer à souder, puis rangez le! On en aura pas besoin aujourd'hui. Donc la première étape, c'est de flasher Tasmota sur le Shelly. (Mais attend! tu nous parle de Tasmota alors que le titre parle d'ESPHome! Arnaque!) Non, on va juste se servir de Tasmota pour flasher ESPHome sur le shelly, car ils ont un superbe outil pour le faire :) .
Flash de Tasmota
Cela servira de plateforme pour mettre notre code ESPHome. Pour cela, allez sur le site: https://github.com/yaourdt/mgos-to-tasmota et trouvez le lien pour votre modèle de shelly (ici le 1):
Dans ce lien, remplacez shellyip
par l'adresse ip de votre Shelly. Pour l'exemple:
http://192.168.1.25/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-Shelly1.zip
Rentrez cette IP dans votre navigateur, cela lancera l'installation de tasmota sur le shelly. Attendez 2 minutes puis cherchez le réseau wifi généré par le shelly, il aura le nom: tasmota-xxxx
. Entrez les informations de votre réseau wifi et laissez le redémarrer.
Flash d'ESPHome
Entrez l'adresse IP de votre shelly dans votre navigateur. Vous devriez tomber sur la page suivante:
Cliquez sur Firmware Upgrade
.
Cliquez sur Choose File et sélectionnez le fichier ESPHome a flasher (voir chapitre suivant si vous n'en avez pas de prêt). Enfin, cliquez sur Start upgrade. Après un moment, le shelly sera a nouveau connecté a votre Wifi et ESPHome le verra. Vous verrez dans l'interface que votre shelly est vert:
Préparer son fichier ESPHome
Sur l'interface ESPHome, on crée un nouveau device en cliquant sur le +
en bas a droite.
On lui donne un nom, un SSID (si possible le votre). Dans la fenêtre d'après, on sélectionne ESP8266
. Et on fini la création du fichier.
Et maintenant on va modifier le fichier pour l'adapter au shelly 1. Ouvrez le fichier en appuyant sur le bouton EDIT
puis remplacez le contenu par ce code:
# Basic Config
esphome:
name: shelly_1
platform: ESP8266
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
logger:
api:
ota:
# Device Specific Config
output:
- platform: gpio
pin: GPIO4
id: shelly_1_relay
light:
- platform: binary
name: "Shelly 1 Light"
output: shelly_1_relay
id: lightid
binary_sensor:
- platform: gpio
pin:
number: GPIO5
#mode: INPUT_PULLUP
#inverted: True
name: "Switch Shelly 1"
on_state:
then:
- light.toggle: lightid
internal: true
id: switchid
Ce code est la base a utiliser.
D'autre sensors peuvent être ajoutés a ce code, pour exemple, mon shelly 1 pour mon imprimante 3D:
# Basic Config
substitutions:
device_name: "Imprimante"
esphome:
name: rostock_max
platform: ESP8266
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Imprimante power Fallback Hotspot"
password: !secret fallback_password
captive_portal:
logger:
api:
ota:
# Enable Web server (optional).
web_server:
port: 80
# Device Specific Config
output:
- platform: gpio
pin: GPIO4
id: shelly_1_relay
switch:
- platform: output
name: ${device_name} Switch
output: shelly_1_relay
id: lightid
binary_sensor:
- platform: gpio
pin:
number: GPIO5
#mode: INPUT_PULLUP
#inverted: True
name: ${device_name} Switch
on_state:
then:
- switch.toggle: lightid
internal: true
id: switchid
# Sensors with general information.
sensor:
# Uptime sensor.
- platform: uptime
name: ${device_name} Uptime
# WiFi Signal sensor.
- platform: wifi_signal
name: ${device_name} WiFi Signal
update_interval: 60s
# Text sensors with general information.
text_sensor:
- platform: wifi_info
ip_address:
name: ${device_name} IP
J'utilise des variables pour assigner les noms du device, et j'ai des sensors pour l'uptime, l'adresse IP et la force du signal wifi. J'ai aussi activé l'interface web pour pouvoir le contrôler directement si besoin.
Une fois le code prêt, il suffit de le télécharger pour l'uploader sur le shelly (seulement la première fois, après on pourra utiliser l'OTA pour les mises à jour).
On clic sur Install
puis sur Manual Download
qui permet d'obtenir le fichier .bin
.
Et là on continue avec les instructions du chapitre précédent.
Quelques liens utiles:
- La page ESPHome sur le shelly 1: Shelly 1 | ESPHome-Devices
- La page ESPHome sur le shelly 2.5: Shelly 2.5 | ESPHome-Devices
- La page ESPHomeDevices qui peut vous intéresser: ESPHome-Devices
Voilà, j'espère que cet article vous est utile. De mon côté j'ai flashé mes 3 shelly 1 avec ESPHome depuis maintenant 2 mois et je n'ai décelé aucun problème.
N'hésitez pas a me faire part de votre expérience :)
A bientôt!