Différences entre les versions de « Domotique, atelier du jj/mm (à préciser) »
Ligne 4 : | Ligne 4 : | ||
Fournitures, un ESP32 standard, un ESP32 SIM800 (SMS et appels) | Fournitures, un ESP32 standard, un ESP32 SIM800 (SMS et appels) | ||
Les étapes, | |||
- installation de ESPHome sur HA | - installation de ESPHome sur HA |
Version du 27 mars 2024 à 09:32
L'atelier du 27 mars en préparation...
Objectif général : se familiariser avec un ESP32 sur HA, via ESPHome
Fournitures, un ESP32 standard, un ESP32 SIM800 (SMS et appels)
Les étapes,
- installation de ESPHome sur HA
- connexion d'un ESP32
- installation de programmes de test : serveur web, allumage d'une LED, envoi et réception de SMS, etc.
- création d'automatisations utilisant les ESP 32
Antisèche pour ESP32 SIM800
esphome: name: esp32-800 friendly_name: ESP32 800 esp32: board: esp-wrover-kit #remplace esp32dev framework: type: arduino # Enable logging logger: ota: password: "b22ec83a50a16926e258c8cb99ce9a43" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp32-800 Fallback Hotspot" password: "AEQtghaRTjG5" captive_portal: # Home Assistant API # Enable Home Assistant API api: encryption: key: "yyhOhxam5Y7grXxgq0DfyDD36+E7aU1juuYXuMCgOnM=" services: - service: send_sms variables: recipient: string message: string then: - sim800l.send_sms: recipient: !lambda 'return recipient;' message: !lambda 'return message;' - lambda: id(esp_sim800_sms_message).publish_state(message); - service: dial variables: recipient: string then: - sim800l.dial: recipient: !lambda 'return recipient;' # Retourne le dernier message reçus au dernier expéditeut en y ajoutant OK - service: reply_sms_ok then: - text_sensor.template.publish: id: esp_sim800_sms_message state: !lambda |- return id(esp_sim800_sms_message).state + " OK"; - sim800l.send_sms: recipient: !lambda "return id(esp_sim800_sms_expediteur).state;" message: !lambda "return id(esp_sim800_sms_message).state;" uart: baud_rate: 9600 tx_pin: 27 rx_pin: 26 switch: - platform: gpio id: "key_pin" pin: 4 restore_mode: ALWAYS_OFF - platform: gpio id: "reset_pin" pin: 5 restore_mode: ALWAYS_ON - platform: gpio id: "power_pin" pin: 23 restore_mode: ALWAYS_ON - platform: gpio id: "Blue_Led800" pin: 13 restore_mode: ALWAYS_ON # Bouton de redémarrage button: - platform: restart id: esp_sim800_restart name: "ESP-SIM800 Redémarrage" sim800l: on_sms_received: - lambda: |- id(esp_sim800_sms_expediteur).publish_state(sender); id(esp_sim800_sms_message).publish_state(message); - logger.log: format: "Received '%s' from %s" args: [ 'message.c_str()', 'sender.c_str()' ] text_sensor: - platform: template id: esp_sim800_sms_expediteur name: "Sms Expediteur" - platform: template id: esp_sim800_sms_message name: "Sms Message" sensor: - platform: sim800l rssi: name: "ESP sim800 signal" binary_sensor: - platform: sim800l registered: name: "ESP sim800 status" # Example configuration entry web_server: port: 80 version: 1
Antisèche pour ESP32
esphome: name: esp32-wroom friendly_name: ESP32 Wroom esp32: board: esp32dev framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: encryption: key: "pAUYEiM6r/qULEiwGBqwDCx+R7hun6ee6SYUmTtaMHI=" ota: password: "47a5f828dcfa7ccb984e418bfeee4d06" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp32-Wroom Fallback Hotspot" password: "wsYS22L7axfh" # Example configuration entry web_server: port: 80 version: 1 # ajouté depuis cette page, https://www.hacf.fr/esphome-introduction/ binary_sensor: # statut - platform: status name: "Statut" sensor: # Qualité du signal - platform: wifi_signal name: "Signal Wifi" update_interval: 60s # Temps de fonctionnement - platform: uptime name: "Allumé depuis (s)" id: uptime_sec switch: # Bouton de redémarrage - platform: restart name: "Redémarrage" # LED bleue - platform: gpio name: "LedBleu2" pin: 2 # Transformation des secondes en jours text_sensor: - platform: template name: "Allumé depuis (j)" lambda: |- int seconds = (id(uptime_sec).state); int days = seconds / (24 * 3600); seconds = seconds % (24 * 3600); int hours = seconds / 3600; seconds = seconds % 3600; int minutes = seconds / 60; seconds = seconds % 60; return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() }; icon: mdi:clock-start update_interval: 60s
Pour aller plus loin, ou en référence
https://www.youtube.com/watch?v=3GbyYQHQvV8&ab_channel=Abr%C3%A8ge
https://www.youtube.com/watch?v=AbRFvk2iZs8&ab_channel=HorizonDomotique
Et pour aller encore plus loin mais c'est juste pour se donner des idées,
https://www.youtube.com/watch?v=16UpLNC4pos&ab_channel=Abr%C3%A8ge