Opcja Modern jest do flashera webowego (sugeruję ten wybór) https://web.esphome.io/
oczywiście musisz użyć wspieranej przeglądarki (Vivaldi, Chrome lub Egde), na komputerze z którego prawdopodobnie piszesz i oczywiście do niego wepniesz płytkę
Opcja Legacy
dla tradycyjnego flashera w postaci programu
To nie wyklucza opcji podłączenia do niego, ale musiałbyś udostępnić port USB mostka UART do VM, więc może faktycznie darujmy sobie ten sposób.
No i teraz wchodzisz tam gdzie narysowałeś → 2
ALE
musisz to zrobić z kompatybilnej przeglądarki (3 różne do wyboru podawałem parę razy wyżej)
Skutek de facto jest ten sam co byś wybrał ręczne flaszowanie.
widać już port,
dalej wybranie wcześniej wygenerowanego i zapisanego pliku *.bin
wgranie go,
restart i jest OK.
dodanie do dashboardu glance
i o to mi chodziło,
prawie koniec.
i właśnie jeszcze poprosiłbym Kogoś o zmodyfikowanie kodu, tak, żebym mógł obsługiwać dwie szczoteczki.
Pierwsza jest już skonfigurowana. Nazywa się szczoteczka_1 i ma mac 70:28:45:63:B8:AC. Chciałbym jeszcze dodać drugą o nazwie szczoteczka_2, ma ona mac 70:28:45:69:95:36
Już nie musisz w ten sposób, jeśli nie zmienisz kluczy, ustawień sieci w YAMLu i paru innych rzeczy możesz już używać OTA, natomiast resztę YAMLa możesz modyfikować do woli.
sterowniki oczywiście muszą pasować do sprzętu - rożne płytki prototypowe mają różne wlutowane mostki USB-UART, sterowniki w systemie musimy oczywiście mieć do takiego jak wlutowano (wydaje mi się, że Win11 rozpoznaje prawidłowo większość konstrukcji przy użyciu sterowników z Windows Update, ale głowy sobie za to nie dam uciąć, natomiast jak dotąd nie spotkałem płytki dla której w HAOS nie byłoby sterowników).
to jest w ogóle BLE (poznasz go po MAC-adresie, bo tracker BLE gdybyś sobie dodał do YAMLa → czyli do firmware, będzie go znajdywał)
dotrzesz do dokumentacji i wygrzebiesz z niej charakterystyki BLE tego sprzętu
to w zasadzie czemu nie?
Można podejść do reverse engineeringu też od innej strony - możesz pokopać po ogólnej dokumentacji i samemu odnaleźć co nieco (wymaga sporo czasu i cierpliwości, więc najpierw lektura, potem poszukiwania) https://www.google.com/search?q=BLE+charakteristic
pierwsze trafienie
Prawdopodobnie można też coś wykopać z oficjalnej aplikacji, ale przypuszczam, że zegarek nie będzie rozgłaszał niczego bez uwierzytelnionego połączenia.
No to temat wyczerpany.
Raz jeszcze dziękuję za pomoc.
edit (5 miesięcy później):
Chciałbym dodać kolejną (trzecią) szczoteczkę. Nie chcę namieszać.
Czy mógłby mi Ktoś pomóc i zechciałby nanieść korektę w kodzie:
Jako rozwiązanie oznaczony post (obecnie skasowany przez autora), który nic nie wnosi do wątku (zamiast posta zawierającego rozwiązanie, bo jak rozumiem jest tu taki od dawna w zupełnie innym miejscu).
edit: widzę, że już oznaczenie usunięte, zanim skończyłem pisać, ale i tak brak oznaczenia rozwiązania (najnowszy “problem” nie jest już problemem - należy postąpić analogicznie, więc jego przyszłe rozwiązanie nie powinno być oznaczane jako rozwiązanie…)
edit2: pozwoliłem sobie zaznaczyć własnego posta który jest odpowiedzią na pytanie zadane w tytule, mimo, że pozornie nie pasuje do treści pierwszego posta; oczywiście przy tym worze problemów, które wystąpiły po drodze wątek wymaga przeczytania całości (gdyby ktoś chciał powielić rozwiązanie i jest początkujący)
YAML jak był skopiowany copy+paste z przykładu (z jakimś itag) i tak pozostał, zero działań OPa, co zniechęca do jakiejkowiek pomocy
Jaką korektę? ten YAML działa? to chyba nic do niego nie dodałeś samodzielnie…
Mimo wszystko przygotuję YAMLa w wolnym czasie z komentarzami, aby miało to jakąś niezerową funkcję edukacyjną…
wersja robocza mimo wszystko to jak dla mnie już ostateczna, poprawki nanieś sam (albo zamieńcie się szczoteczkami ), wodotryski zaciemniają obraz więc substitutions sobie daruję (ale jeśli zaczynasz być fanem ESPHome, to się mogą przydać przy budowaniu większej ilości DIY)
Nie zmieniłem frameworka, by się dało to przeflaszować przez OTA, ale przy intensywnym wykorzystywaniu BT (to co tu jest nie jest intensywne) zalecany jest ESP-IDF (ale przy zmianach frameworka pierwszy flash tylko po kabelku), YAML oczywiście bez gwarancji - nie jestem botem
esphome:
name: szczoteczki
friendly_name: SZCZOTECZKI
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
# korzystaj z SECRETS nie jest to obowiązkowe, ale ułatwia życie
key: !secret my_esphome_api_key
ota:
# korzystaj z SECRETS
password: !secret my_esphome_ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Szczoteczki Fallback Hotspot"
# korzystaj z SECRETS
password: !secret my_esphome_ap_fallback_password
# linijkę poniżej przeniosłem do góry z samego końca oryginalnego kodu
# by była zachowana jakakolwiek logika w tym YAMLu
# po prostu jakiś "obcy" kod wkleiłeś między linie pochodzące z kreatora urządzenia (zamiast na końcu)
captive_portal:
esp32_ble_tracker:
ble_client:
- mac_address: 70:28:45:63:B8:AC
id: pierwsza_szczota
- mac_address: 70:28:45:69:95:36
id: druga_szczota
- mac_address: 70:28:45:64:7C:39
id: trzecia_szczota
sensor:
- platform: ble_client
type: characteristic
ble_client_id: pierwsza_szczota
name: "szczoteczka Radek - poziom baterii"
service_uuid: '180f'
characteristic_uuid: '2a19'
icon: 'mdi:battery'
unit_of_measurement: '%'
- platform: ble_client
type: characteristic
ble_client_id: druga_szczota
name: "szczoteczka Aneta - poziom baterii"
service_uuid: '180f'
characteristic_uuid: '2a19'
icon: 'mdi:battery'
unit_of_measurement: '%'
- platform: ble_client
type: characteristic
ble_client_id: trzecia_szczota
name: "szczoteczka Nikola - poziom baterii"
service_uuid: '180f'
characteristic_uuid: '2a19'
icon: 'mdi:battery'
unit_of_measurement: '%'
- platform: ble_client
type: rssi
ble_client_id: pierwsza_szczota
name: "szczoteczka Radek"
- platform: ble_client
type: rssi
ble_client_id: druga_szczota
name: "szczoteczka Aneta"
- platform: ble_client
type: rssi
ble_client_id: trzecia_szczota
name: "szczoteczka Nikola"
a w secrets.yaml (czyli w pliku edytowanym z menu SECRETS dashboardu ESPHome) umieścisz sobie wpisy (oczywiście zedytowane pod siebie a nie takie wykropkowane) oprócz tych co już istnieją oczywiście
Faktycznie. Post wcześniej otagowałem jako rpzwiązany.
Ale, jak to w życiu bywa, o czymś sobie przypomniałem (trzecia szczoteczka) i dlatego żeby nie pisać nowego wątku lub aby nie odpowiadać samemu sobie (bo ostatni wpis był mój), usunąłem odpowiedź.
Sorry jak to Kogoś rozdrażniło, lub jak złamałem zasady. Nie miałem świadomości, że robię coś złego.
Tak, czy inaczej dziękuję za pomoc.
a Tobie @szopen szczególnie, bo zawsze pomimo całego anturarażu treści, zawsze niesiesz pomoc !
Marker do zaznaczania rozwiązania służy do oznaczenia postu w którym się znajduje rozwiązanie, a nie do oznaczenia posta, w którym napisałeś coś w guście “dzięki, udało się” - to tak w kwestii zasad jego używania (więc po analizie wątku oznaczyłem nim własnego posta gdzieś wyżej, bo moim skromnym zdaniem jest to najodpowiedniejsze miejsce).
Więc od początku (od momentu rozwiązania problemu) był oznaczony nie ten post, który być powinien.
Co do kasowania posta, to w zupełności wystarczyłaby jego edycja - wtedy wątek i tak zostanie podbity (jeśli to ostatni post w wątku).
Można też pozostawić stare treści, za nimi dodać pustą linię i trzy myślniki i znowu pustą to będziesz miał ładne odkreślenie, zwyczajowo używa się też słowo-klucz: “edit” lub “edycja” przy takich dopiskach.
A w kwestii mojej frustracji tym wątkiem dodam, że gdy widać brak zaangażowania pytającego w rozwiązywanie własnego problemu, to dla nas próbujących pomagać jest to mocno demotywujące, mimo wszystko staramy się nadal pomagać, ale trudno nie skomentować zastanej sytuacji… sorry.
PS
Pozwoliłem sobie podedytować tamte posty (tzn. m.in. odkasowałem tego usuniętego posta), aby pokazać jak mogło to wyglądać.