LeLapinFou:
et pour éviter de le faire partout, utiliser un :
<<: !include .common.yaml
cela permet de ne le changer qu’a un seul endroit pour tous tes ESP
Comme le dit @WarC0zes preneur de la solution car même si j’ai pas beaucoup de devices (juste 16) cela permet de faire autrement et d’apprendre autre chose aussi
Par contre sur mes BLE Proxy j’ai toujours des emmerdes sur la mise à jour OTA !! et je ne sais pas d’où cela vient ce petit caillou dans la chaussure
Salut,
j’ai du ajouter le code:
ota:
- platform: esphome
dans le YAML du bluetooth proxy. Car ca récupère pas sur le fichier source ( packages ) la configue du ota.
packages:
esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/m5stack-atom-lite.yaml@main
substitutions:
name: atom-bluetooth-proxy-ad7a6c
friendly_name: Bluetooth Proxy ad7a6c
packages:
esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/m5stack-atom-lite.yaml@main
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.bluetooth-proxy
version: "1.0"
api:
encryption:
key: in4/0Ffpxxxxxxxxxxxxxxx
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ota:
- platform: esphome
Un bug ???
pourtant c’est bien sur le fichier source du package:
J’ai un code similaire enfin je crois :
substitutions:
name: "ble-amis"
friendly_name: "BLE Amis"
board : "wemos_d1_mini32"
packages:
esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
project:
name: esphome.bluetooth-proxy
version: "1.0"
esp32:
board: ${board}
framework:
type: esp-idf
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption_key
# Allow Over-The-Air updates
ota:
- platform: esphome
password: !secret ota_password
Le password: est pas obligatoire.
essaye de supprimer la ligne du password et mets a jours.
Il est bien là le password !
Tu veux dire en claire mais c’est relou ça car sur les autres ESP (autre que BLE) ça passe
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
rajoute min_version: 2024.6.0 pour les bluetooth proxy et teste avec un mot de pass configue pour le ota.
Toujours le même soucis de mot de pass !!
ERROR ESP requests password, but no password given!
ça fait Deux version en gros que je reflash un à un les ESP pour que cela passe
Je sais pas où ça merde
Je vais tester sans mettre de MDP sur un et attendre la prochaine mise à jour
Bob
Juin 21, 2024, 10:39
28
Bonjour,
WarC0zes:
<<: !include common.yaml
Donc pour cette fois il faut bien passer dans tous les fichiers esphome_xyz.yaml pour ajouter cette ligne ?
Bob
1 « J'aime »
Xek
Juin 21, 2024, 2:35
29
Bonjour,
Chez moi, suite à la maj et à la modif one-wire et donc dallas, je n’ai plus de remonté de température sur mes ESP32 équipé de sondes DS18B20.
one_wire:
- platform: gpio
pin: GPIO14
sensor:
- platform: dallas_temp
address: 0xbf7a6g181e72ff28
name: "Sonde 1"
id: sonde_1
Dans les logs leurs adresses remontent bien et n’ont pas changé, mais rien à faire, aucune info ne remonte depuis…
[15:24:53][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[15:24:53][C][dallas.temp.sensor:034]: Address: 0xbf7a6g181e72ff28 (DS18B20)
[15:24:53][C][dallas.temp.sensor:035]: Resolution: 12 bits
[15:24:53][C][dallas.temp.sensor:036]: Update Interval: 60.0s
J’ai d’autre ESP (D1 Mini) avec les mêmes sondes et la modif est passée sans problème, seuls mes trois ESP32 WROOM Devkit ne veulent plus rien savoir. Un reboot n’a rien changé…
Après recherche, j’ai trouvé ce post sur github :
opened 06:50PM - 14 Jun 24 UTC
integration: dallas_temp
integration: one_wire
### The problem
I've been successfully using a Dallas onewire temperature sen… sor on my ESP8266 boards for quite a while, but after upgrading from 2024.5.x to 2024.6.x (beta) and updating the config, my sensor is no longer detected. I've been using automatic discovery as I only have a single sensor hooked up to a single GPIO, and now I have to explicitly specify the address of the sensor (which I got from seeing what was discovered in 2024.5.5). As you can see the in the config below, I was using `index: 0` in my older working config, but I don't see a way to specify that in the new one. Explicitly specifying the address of the sensor works, though.
The release notes from the PR imply that discovery should work and that `index` is no longer required:
> The index option has been removed. If there is only one device on the bus, then the address is optional. Otherwise, you must specify the address.
### Which version of ESPHome has the issue?
2024.6.0b2
### What type of installation are you using?
Home Assistant Add-on
### Which version of Home Assistant has the issue?
2024.6.2
### What platform are you using?
ESP8266
### Board
nodemcu
### Component causing the issue
one_wire
### Example YAML snippet
I had the following snippet working find for a long time on 2024.5.x and prior ESPHome versions:
```
# Temp Sensor on D02/GPIO4
dallas:
- pin: 4
update_interval: 60min
id: kit_water_temp
# Individual sensors
sensor:
- platform: dallas
index: 0
name: Kitchen Water Temp
filters:
- lambda: return x * (9.0/5.0) + 32.0;
unit_of_measurement: "°F"
accuracy_decimals: 2
interval:
- interval: 2sec
then:
component.update: kit_water_temp
```
I modified the config to work with 2024.6.x beta and simplified it a bit, but it no longer detects my onewire sensor:
```
# Temp Sensor on D02/GPIO4
one_wire:
- platform: gpio
pin: 4
# Individual sensors
sensor:
- platform: dallas_temp
update_interval: 2sec
name: Kitchen Water Temp
filters:
- lambda: return x * (9.0/5.0) + 32.0;
unit_of_measurement: "°F"
accuracy_decimals: 2
```
When I add `address: 0x480000006a42a528`, it detects the sensor and reports correct data. I was specifying `index: 0` in the original config, as either that or `address` was required, but I don't see a way to specify `index: 0` in the new config.
### Anything in the logs that might be useful for us?
2024.6.0b2 not working:
```
INFO ESPHome 2024.6.0b2
INFO Reading configuration /config/kitchen-water-temp-new.yaml...
INFO Starting log output from 192.168.1.53 using esphome API
INFO Successfully connected to kit-water-temp @ 192.168.1.53 in 0.005s
INFO Successful handshake with kit-water-temp @ 192.168.1.53 in 0.018s
[11:19:10][I][app:100]: ESPHome version 2024.6.0b2 compiled on Jun 14 2024, 11:06:57
[11:19:10][C][wifi:599]: WiFi:
[11:19:10][C][wifi:427]: Local MAC: 48:E7:29:6E:AD:1A
[11:19:10][C][wifi:432]: SSID: [redacted]
[11:19:10][C][wifi:435]: IP Address: 192.168.1.53
[11:19:10][C][wifi:438]: BSSID: [redacted]
[11:19:10][C][wifi:440]: Hostname: 'kit-water-temp'
[11:19:10][C][wifi:442]: Signal strength: -71 dB ▂▄▆█
[11:19:10][C][wifi:446]: Channel: 1
[11:19:10][C][wifi:447]: Subnet: 255.255.255.0
[11:19:10][C][wifi:448]: Gateway: 192.168.1.1
[11:19:10][C][wifi:449]: DNS1: 192.168.1.1
[11:19:10][C][wifi:450]: DNS2: 0.0.0.0
[11:19:10][C][logger:185]: Logger:
[11:19:10][C][logger:186]: Level: DEBUG
[11:19:10][C][logger:188]: Log Baud Rate: 115200
[11:19:10][C][logger:189]: Hardware UART: UART0
[11:19:10][C][gpio.one_wire:016]: GPIO 1-wire bus:
[11:19:10][C][gpio.one_wire:017]: Pin: GPIO4
[11:19:10][W][gpio.one_wire:078]: Found no devices!
[11:19:10][C][restart.button:017]: Restart Button 'Kitchen Restart'
[11:19:10][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[11:19:10][W][dallas.temp.sensor:031]: Unable to select an address
[11:19:10][C][mdns:115]: mDNS:
[11:19:10][C][mdns:116]: Hostname: kit-water-temp
[11:19:10][C][esphome.ota:073]: Over-The-Air updates:
[11:19:10][C][esphome.ota:074]: Address: kit-water-temp.local:8266
[11:19:10][C][esphome.ota:075]: Version: 2
[11:19:10][C][safe_mode:018]: Safe Mode:
[11:19:10][C][safe_mode:019]: Boot considered successful after 60 seconds
[11:19:10][C][safe_mode:021]: Invoke after 10 boot attempts
[11:19:10][C][safe_mode:022]: Remain in safe mode for 300 seconds
[11:19:10][C][api:139]: API Server:
[11:19:10][C][api:140]: Address: kit-water-temp.local:6053
[11:19:10][C][api:144]: Using noise encryption: NO
```
2024.5.5 working:
```
[11:24:25][I][app:100]: ESPHome version 2024.5.5 compiled on Jun 14 2024, 11:23:40
[11:24:25][C][wifi:580]: WiFi:
[11:24:25][C][wifi:408]: Local MAC: 48:E7:29:6E:AD:1A
[11:24:25][C][wifi:413]: SSID: [redacted]
[11:24:25][C][wifi:416]: IP Address: 192.168.1.53
[11:24:25][C][wifi:419]: BSSID: [redacted]
[11:24:25][C][wifi:421]: Hostname: 'kit-water-temp'
[11:24:25][C][wifi:423]: Signal strength: -72 dB ▂▄▆█
[11:24:25][C][wifi:427]: Channel: 1
[11:24:25][C][wifi:428]: Subnet: 255.255.255.0
[11:24:25][C][wifi:429]: Gateway: 192.168.1.1
[11:24:25][C][wifi:430]: DNS1: 192.168.1.1
[11:24:25][C][wifi:431]: DNS2: 0.0.0.0
[11:24:25][C][logger:185]: Logger:
[11:24:25][C][logger:186]: Level: DEBUG
[11:24:25][C][logger:188]: Log Baud Rate: 115200
[11:24:25][C][logger:189]: Hardware UART: UART0
[11:24:25][C][restart.button:017]: Restart Button 'Kitchen Restart'
[11:24:25][C][dallas.sensor:075]: DallasComponent:
[11:24:25][C][dallas.sensor:076]: Pin: GPIO4
[11:24:25][C][dallas.sensor:077]: Update Interval: 3600.0s
[11:24:25][D][dallas.sensor:082]: Found sensors:
[11:24:25][D][dallas.sensor:084]: 0x480000006a42a528
[11:24:25][C][dallas.sensor:089]: Device 'Kitchen Water Temp'
[11:24:25][C][dallas.sensor:089]: Device Class: 'temperature'
[11:24:25][C][dallas.sensor:089]: State Class: 'measurement'
[11:24:25][C][dallas.sensor:089]: Unit of Measurement: '°F'
[11:24:25][C][dallas.sensor:089]: Accuracy Decimals: 2
[11:24:25][C][dallas.sensor:091]: Index 0
[11:24:25][C][dallas.sensor:097]: Address: 0x480000006a42a528
[11:24:25][C][dallas.sensor:098]: Resolution: 12
[11:24:25][C][mdns:115]: mDNS:
[11:24:25][C][mdns:116]: Hostname: kit-water-temp
[11:24:25][C][ota:096]: Over-The-Air Updates:
[11:24:25][C][ota:097]: Address: kit-water-temp.local:8266
[11:24:25][C][ota:103]: OTA version: 2.
[11:24:25][C][api:139]: API Server:
[11:24:25][C][api:140]: Address: kit-water-temp.local:6053
[11:24:25][C][api:144]: Using noise encryption: NO
```
### Additional information
_No response_
Et après avoir rajouté le composant externe tout refonctionne
external_components:
- source:
type: git
url: https://github.com/ssieb/esphome
ref: onewire
components: [ gpio ]
refresh: 1min
Je pense que ça peut servir en attendant un MAJ qui corrige ce problème !
Ha la oui au moins une fois.
Et ensuite dans ton common tu pourras faire d’autres includes pour les sensors ou Switch commun a tous tes esp histoire de ne jamais avoir plus deux choses répétés entre tes fichier yaml.
Perso si j’écris 3 fois la même choses, je fais un include.
Finalement, faut quand même soit rajouter la ligne include, soit celle pour le OTA c’est fois ci.
Je ferais un essai du include sur des esp que j’ai pas mis a jour encore
1 « J'aime »
une fois qu’on a validé qu’il n’y a pas d’erreur dans les .yaml, on peut lancer un script qui lance les mise à jour des esp, c’est un peu moins fastidieux …
J’en est que 6, je le fais tranquillement
1 « J'aime »
WarC0zes:
Bonjour,
tu peut décrire comment faire ?
si je comprends on créer un fichier common.yaml qu’on mets dans le dossier /config/esphome/.
attention, le fichier a un « . » devant
de mon coté, j’ai tout intégré au max dans des includes afin de ne pas faire 50 fois la même chose, un peu comme les déglutering card
voici en image le fichier avec son « . » devant
et le contenu de celui ci (les liens, c’est si jamais une partie de la section ne fonctionne plus, pas la peine de passer 3 jours a chercher )
le fichier .common.yaml :
---
esphome:
name: ${name_device}
# WiFi Component: https://esphome.io/components/wifi.html
wifi:
networks:
ssid: ${name_ssid}
password: ${password_ssid}
hidden: false
manual_ip:
static_ip: ${value_static_ip}
gateway: !secret manual_ip_gateway
subnet: !secret manual_ip_subnet
dns1: !secret manual_ip_dns1
ap:
ssid: FB_${name_device}
password: !secret fallback_password
# Logger Component: https://esphome.io/components/logger.html
logger:
level: ${logger_level}
# Web Server: https://esphome.io/components/web_server.html
web_server:
local: true
port: 80
# Native API Component: https://esphome.io/components/api.html
api:
encryption:
key: !secret api_key
# OTA Update Component: https://esphome.io/components/ota.html
ota:
- platform: esphome
password: !secret ota_password
# Time: https://esphome.io/components/time.html
time:
- platform: homeassistant
id: homeassistant_time
# Status Binary Sensor: https://esphome.io/components/binary_sensor/status.html
binary_sensor:
- platform: status
name: "${name_device}_Status"
# Restart Button: https://esphome.io/components/button/restart.html
button:
- platform: restart
name: "${name_device}_Restart"
sensor:
- platform: wifi_signal
name: ${name_wifi_signal}
id: wifi_signal_db
update_interval: 60s
- platform: uptime
name: ${name_uptime}
et le fichier d’une prise Sonoff par exemple :
substitutions:
# ne pas modifier
logger_level: DEBUG
value_manual_ip: !secret value_manual_ip
name_wifi_signal: ${name_device}_WiFi_Signal
name_uptime: ${name_device}_Uptime
# a modifier
name_device: sonoff_prise_tele
name_ssid: !secret wifi_automation
password_ssid: !secret wifi_automation_password
value_static_ip: ${value_manual_ip}46
##################################### special a la carte
name_switch: ${name_device}_Switch
name_binary_sensor: ${name_device}_Binary_Sensor
name_led: ${name_device}_Led
name_status: ${name_device}_Status
##################################### special a la carte
<<: !include .common.yaml
esp8266:
board: esp01_1m
board_flash_mode: dout
binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: ${name_binary_sensor}
on_press:
- switch.toggle: button_1
- platform: status
name: ${name_status}
switch:
- platform: template
name: ${name_switch}
optimistic: true
id: button_1
turn_on_action:
- switch.turn_on: relay_1
- light.turn_on: led_1
turn_off_action:
- switch.turn_off: relay_1
- light.turn_off: led_1
- platform: gpio
id: relay_1
pin: GPIO12
output:
- platform: esp8266_pwm
id: basic_green_led
pin:
number: GPIO13
inverted: True
light:
- platform: monochromatic
name: ${name_led}
output: basic_green_led
id: led_1
avec ça, tu n’as que la conf spécial a ta carte a faire, le reste, c’est deja fait
4 « J'aime »
ah oui, c’est pour cacher le fichier. J’avais pas vu le tip dans la doc.
Tip
To hide these base files from the dashboard, you can
Place them in a subdirectory (dashboard only shows files in top-level directory)
Prepend a dot to the filename, like .base.yaml
c’est comme le secret de ESP… pourquoi avoir 2 fichiers secret…
un simple include suffit
<<: !include ../secrets.yaml
1 « J'aime »
Aujourd’hui l’OTA, hier le sensor reset_reason, avant hier le switch reboot_safe (que j’utilise souvent quand une esp refuse une maj ota par exemple).
Tu y verras tellement d’avantages
1 « J'aime »
Je viens de mettre en place le common.yaml pour l’instant sur 2 ESP et c’est top.
Un grand Merci, cela me fait progresser dans la simplification au quotidien.
J’ai mis quelques minutes à comprendre qu’il fait mettre les variables communes dans le fichier secrets.yaml.
Edit : oups sur le 2ème forcément le password OTA n’est pas le bon, puisque j’ai mis en variable celui du 1er, il va falloir le gérer individuellement car j’ai pas accès à tous mes ESP pour les reprogrammer en usb
Edit 2 : Vive les sauvegardes de config , j’ai retrouvé l’ancien password et grâce à ceci, une partie dans le common.yaml, l’autre dans le ymal du device, cela fonctionne
https://esphome.io/components/ota/esphome.html#updating-the-password
esphome:
on_boot:
- lambda: |-
id(my_ota).set_auth_password("New password");
ota:
- platform: esphome
id: my_ota
password: "Old password"
1 « J'aime »
je t’en prie, c’est fait pour