Bonjour à tous,
Mon problème.
Je suis en train de créer sous ESPHOME la partie logiciel de mon trackeur solaire pour mes panneaux solaire.
Je vais utiliser un esp32vroom pour cela avec comme capteurs une cellule 4 axes pour suivre le soleil, 4 capteur fin de course pour chaque axe, un anémomètre pour le vent et un sélecteur 3 positions pour 3 modes auto, manuel et off.
Je débute totalement avec ESPHOME, et je souhaiterais savoir si mon code est juste ou tout simplement bon a rien.
Je n’ai pas pu le tester car toujours en attente de réception de matériel.
Merci a tous.
Ma configuration
[center]## System Information
version | core-2024.12.5 |
---|---|
installation_type | Home Assistant Supervised |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.13.0 |
os_name | Linux |
os_version | 6.1.0-26-amd64 |
arch | x86_64 |
timezone | Europe/Berlin |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
HACS Data | ok |
GitHub API Calls Remaining | 5000 |
Installed Version | 2.0.1 |
Stage | running |
Available Repositories | 1495 |
Downloaded Repositories | 5 |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Debian GNU/Linux 12 (bookworm) |
---|---|
update_channel | stable |
supervisor_version | supervisor-2024.12.0 |
agent_version | 1.6.0 |
docker_version | 27.3.1 |
disk_total | 914.4 GB |
disk_used | 31.8 GB |
healthy | true |
supported | true |
host_connectivity | true |
supervisor_connectivity | true |
ntp_synchronized | true |
virtualization | |
supervisor_api | ok |
version_api | ok |
installed_addons | File editor (5.8.0), Samba share (12.3.2), Terminal & SSH (9.16.0), Mosquitto broker (6.4.1), Zigbee2MQTT (1.42.0-2), Home Assistant Google Drive Backup (0.112.1), Duck DNS (1.18.0), ESPHome Device Builder (2024.12.2) |
Dashboards
dashboards | 5 |
---|---|
resources | 2 |
views | 5 |
mode | storage |
Recorder
oldest_recorder_run | 13 décembre 2024 à 17:43 |
---|---|
current_recorder_run | 21 décembre 2024 à 01:37 |
estimated_db_size | 59.62 MiB |
database_engine | sqlite |
database_version | 3.45.3 |
CODE
esphome:
name: trackeur
friendly_name: Trackeur
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxxxxxxxxxxxxxxxxxxx"
ota:
- platform: esphome
password: "xxxxxxxxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.101
gateway: 192.168.1.254
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Trackeur Fallback Hotspot"
password: "xxxxxxxxxxxxxxxxxxxxxx"
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
sensor:
- platform: adc
pin: GPIO32
name: "capteur_est"
attenuation: 12dB
filters:
- round: 1
id: capteur_est
update_interval: 1s
- platform: adc
pin: GPIO33
name: "capteur_ouest"
attenuation: 12dB
filters:
- round: 1
id: capteur_ouest
update_interval: 1s
- platform: adc
pin: GPIO34
name: "capteur_sud"
attenuation: 12dB
filters:
- round: 1
id: capteur_sud
update_interval: 1s
- platform: adc
pin: GPIO35
name: "capteur_nord"
attenuation: 12dB
filters:
- round: 1
id: capteur_nord
update_interval: 1s
switch:
- platform: gpio
pin: GPIO4
name: "rotation_est"
id: rotation_est
- platform: gpio
pin: GPIO13
name: "rotation_ouest"
id: rotation_ouest
- platform: gpio
pin: GPIO14
name: "rotation_nord"
id: rotation_nord
- platform: gpio
pin: GPIO16
name: "rotation_sud"
id: rotation_sud
binary_sensor:
- platform: pulse_meter
pin: GPIO4
mode: INPUT
id: capteur_vent
unit_of_measurement: 'm/s'
name: "capteur_vent"
- platform: gpio
pin: GPIO22
name: "mode_manuel"
id: mode_manuel
- platform: gpio
pin: GPIO17
name: "fin_de_course_est"
id: fin_de_course_est
- platform: gpio
pin: GPIO18
name: "fin_de_course_ouest"
id: fin_de_course_ouest
- platform: gpio
pin: GPIO19
name: "fin_de_course_nord"
id: fin_de_course_nord
- platform: gpio
pin: GPIO21
name: "fin_de_course_sud"
id: fin_de_course_sud
- platform: gpio
pin: GPIO23
name: "mode_automatique"
id: mode_automatique
on_state:
if:
time:
- platform: sntp
on_time:
- seconds: 0
minutes: 30
hours: 22
days_of_week: MON-SUN
then:
- script.execute: mode_nuit
else:
if:
time:
- platform: sntp
on_time:
- seconds: 0
minutes: 30
hours: 7
days_of_week: MON-SUN
then:
- script.execute: positionnement_trackeur
if:
condition:
# ici je ne suis pas sur de moi
lambda: 'return id(capteur_vent.state > 10;'
then:
- script.execute: mode_vent
script:
id: positionnement_trackeur
mode: mode_automatique
then:
while:
condition:
# du coup ici non plus
lambda: 'return id(capteur_est).state < id(capteur_ouest).state;'
and:
if:
condition:
fin_de_course_est.is_off: fin_de_course_est
then:
-switch_on: rotation_est
while:
condition:
# encore ici
lambda: 'return id(capteur_ouest).state < id(capteur_est).state;'
and:
if:
condition:
fin_de_course_ouest.is_off: fin_de_course_ouest
then:
-switch_on: rotation_ouest
while:
condition:
# bien sur ici aussi
lambda: 'return id(capteur_sud).state < id(capteur_nord).state;'
and:
if:
condition:
fin_de_course_sud.is_off: fin_de_course_sud
then:
-switch_on: rotation_sud
while:
condition:
# idem ici
lambda: 'return id(capteur_nord).state < id(capteur_sud).state;'
and:
if:
condition:
fin_de_course_nord.is_off: fin_de_course_nord
then:
-switch_on: rotation_nord
id: mode_nuit
mode: mode_nuit
then:
while:
codition:
fin_de_course_est.is_off: fin_de_course_est
then:
-switch_on: rotation_est
while:
condition:
fin_de_course_sud.is_off:fin_de_course_sud
then:
-switch_on: rotation_sud
id: mode_vent
mode: mode_vent
then:
while:
codition:
fin_de_course_est.is_off: fin_de_course_est
then:
-switch_on: rotation_est
while:
condition:
fin_de_course_nor.is_off:fin_de_course_nord
then:
-switch_on: rotation_nord