Bonjour,
Sous ESPHOME, j’aimerais pouvoir lancer une requête HTTP en fonction de l’élévation du soleil et de l’activation ou non d’un switch.
J’ai fait ce code mais la requête ne se lance pas quand mon switch est activé.
Les adresses URL fonctionne correctement quand je les exécute dans mon navigateur Web.
esphome:
name: esp32-test
friendly_name: ESP32 test
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXXXX"
# Composant pour suivre le soleil (azimut et élévation)
sun:
latitude: !secret latitude
longitude: !secret longitude
id: my_sun
# Configuration de l'accès à l'heure via Home Assistant
time:
- platform: sntp
id: sntp_time
timezone: "Europe/Brussels"
ota:
- platform: esphome
password: "XXXXX"
http_request:
useragent: esphome/device
timeout: 10s
verify_ssl: false
wifi:
networks:
- ssid: !secret wifi_bas_ssid
password: !secret wifi_bas_password
priority: 0.0
- ssid: !secret wifi_ssid
password: !secret wifi_password
priority: 1.0
manual_ip:
static_ip: 192.168.1.138
gateway: 192.168.1.1
subnet: 255.255.255.0
dns1: 8.8.8.8
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Test Fallback Hotspot"
password: "tFnmAxhCuFPD"
captive_portal:
sensor:
- platform: sun
name: Elevation soleil
type: elevation
id: sun_elevation
# Configuration du switch pour activer ou désactiver l'envoi de la requête
switch:
- platform: template
id: request_switch
name: Request http
turn_on_action:
- switch.template.publish:
id: request_switch
state: ON
turn_off_action:
- switch.template.publish:
id: request_switch
state: OFF
icon: "mdi:gesture-swipe"
optimistic: false
# Automation qui vérifie l'élévation du soleil toutes les 60 secondes et envoie une requête vers la camera du couloir si les conditions sont remplies
interval:
- interval: 60s
then:
- if:
condition:
# vérifie que le switch est activé
- switch.is_on: request_switch
then:
- if:
condition:
# Condition pour vérifier l'élévation du soleil (ex: si elle est supérieure à 5 degrés)
- lambda: |-
return (id(sun_elevation).state > 5,0);
then:
- http_request.get:
url: "http://www.monadresse.com"
- if:
condition:
# Condition pour vérifier l'élévation du soleil (ex: si elle est supérieure à 5 degrés)
- lambda: |-
return (id(sun_elevation).state < 5,0);
then:
- http_request.get:
url: "http://www.monadresse.com"
```
D'après vous il y a une erreur dans mon code ? je vois pas la boulette!
Merci