dobra wymiękam, nawet tak prosty kreator daje możliwość rozgałęzienia się operacji na tyle różnych ścieżek (w dodatku raczej wszystkie są poprawne), że to przerasta możliwości mojego wolnego czasu
dalej należy zrobić Adopcję do Dashboardu (IDE) ESPHome oraz integrację w HA
właśnie stanąłem na tym, że można użyć kreator my-HA lub go olać
Potem przy Adopcji zmienić nazwę hosta ESP lub nie itd. itd.
jedne drogi kończą się rekompilacją (bo muszą - te rzeczy są na stałe zaszyte w firmware) inne nie…
faktycznie można coś spaprać jeśli się nie czuje tego co się dzieje pod pokładem
Więc może zmieńmy kierunek - jeśli pokażesz YAMLa, który wygenerował się przy okazji tworzenia pustego firmware (a właściwie przy Adopcji sprzętu do IDE), to spróbuję w prostych słowach wytłumaczyć czemu się nie da przejść z tego firmware na EBP
edit - opisałem wszystko co ważne poniżej, wystarczy, że to zrozumiesz (nie potrzebuję już “pustego” YAMLa, bo sobie go wygrzebałem na repo)
ESPHome to żywy projekt i wiele się w nim zmienia (i może się coś zmieniło od czasu gdy widziałem takiego YAMLa z pustym projektem po Adopcji, ale jak właśnie sprawdziłem, obecnie w czasach ESPHome 2024.5.5 jest jak było), ale standardowo stosuje się frameworka Arduino (to zaszłość historyczna - w nim działały wszystkie możliwe integracje, gdy w ESP-IDF nie), jednak akurat projekty związane z Bluetooth wymagają ESP-IDF (ze względu na konieczną wyższą wydajność, a IDF jest pod pewnymi względami lepiej zoptymalizowany), te frameworki są niezgodne, więc nie ma między nimi przejścia przez flashowanie OTA, konieczny jest kabelek.
Z takich bardziej hardkorowych różnic - w IDF długi czas nie działał webserwer (obecnie działa), ale NIE JEST ZALECANY do równoczesnego użytku z EBP.
Dla porównania zdalny YAML na podstawie którego tworzony jest “pusty” firmware - widać frameworka Arduino
Tu masz YAML jaki mi się wygenerował przy adopcji EBP
substitutions:
name: esp32-bluetooth-proxy-cbe554
friendly_name: Bluetooth Proxy cbe554
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}
api:
encryption:
key: Ccbxk7tbOJUgQh22PJi4S+bNVpKGLwJzBkSBwBzFJ8c=
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
jak widać zależy on od zdalnego kodu na repo
ten zdalny kod jest tu
a tu masz przykład bliźniaczo podobnego urządzenia (to nie jest ten sam egzemplarz tu skopiowałem YAMLa z czegoś co jest w użytku, ale zmieniłem na identyczne klucze czy wygenerowaną nazwę hosta by pokazać jak przerabiać), ale z kodem uniezależnionym od repo i wyposażonym w kilka wodotrysków dla przyjemności użytku
substitutions:
name: esp32-bluetooth-proxy-cbe554
friendly_name: Bluetooth Proxy cbe554
# 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}
# linijka poniżej to ograniczenie ilości procesów kompilacji na bardzo słabym sprzęcie, by RAMu nie brakło
compile_process_limit: 2
esp32:
board: esp32dev
framework:
type: esp-idf
api:
encryption:
key: Ccbxk7tbOJUgQh22PJi4S+bNVpKGLwJzBkSBwBzFJ8c=
#dashboard_import:
# package_import_url: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "${name}-AP"
password: "12345678"
logger:
ota:
improv_serial:
esp32_ble_tracker:
scan_parameters:
# We currently use the defaults to ensure Bluetooth
# can co-exist with WiFi In the future we may be able to
# enable the built-in coexistence logic in ESP-IDF
# active: true
active: false
bluetooth_proxy:
active: true
# active: false
button:
- platform: safe_mode
name: Safe Mode Boot
entity_category: diagnostic
sensor:
- platform: internal_temperature
name: "${friendly_name} Internal Temperature"
accuracy_decimals: 1
entity_category: diagnostic
- platform: uptime
name: "${friendly_name} Uptime"
entity_category: diagnostic
- platform: wifi_signal
name: "${friendly_name} sygnał WiFi"
update_interval: 60s
entity_category: diagnostic
- platform: esp32_hall
name: "${friendly_name} sensor Hall'a"
update_interval: 60s
text_sensor:
- platform: wifi_info
ip_address:
name: "${friendly_name} IP Address"
dns_address:
name: "${friendly_name} DNS Address"
ssid:
name: "${friendly_name} Connected SSID"
bssid:
name: "${friendly_name} Connected BSSID"
mac_address:
name: "${friendly_name} Mac Wifi Address"
scan_results:
name: "${friendly_name} Latest Scan Results"