Witam.
Po pewnych przygodach z tasmota chciałbym spróbować z ESPHome.
Szukam instrukcji jak nagrać ESPHome na Wemos D1 mini i z tego co znalazłem to można to wykonać przez HA zakładkę ESPHome.
Dodałem pierwsze urządzenie napisałem jakiś podstawowy skrypt i jest on w formaci .yaml.
Z tego co znalazłem to kiedyś była opcja “compile”, a w aktualnej wersji jej nie widzę.
W jaki sposób mogę przekonwertować z pliku ymal do bin?
Niby można przez wbudowaną do ESPHome w HA bezpośrednio wysłać do wemosa, ale strasznie długo to trwa i nie zawsze się udaje.
Teraz to się nazywa install (de facto jednym z wielu etapów jest istotnie kompilacja) i jest w “hamburger menu” danego aktualnie produkowanego firmware dla urządzenia
Dziękuję za pomoc. Wcześniej próbowałem tą opcję ale wywalało jakiś błąd.
Usunąłem dodatek ESPHome i zainstalowałem ponownie i już normalnie pobiera plik .bin
Teraz tylko stworzyć jakiś działający skrypt, bo jak narazie mam cały czas offline.
Jak dodawałem integrację to nie muszę niczego ustawiać w cofiguration.yaml z HA?
Nie wiem czy rozumiesz jak to działa, to nie jest skrypt - on nie jest wykonywany - wgrałeś skompilowany .bin do urządzenia?
Ten YAML jest tylko bazą dla generatora prawdziwego kodu źródłowego - on powstaje w c++ i jest kompilowany na potrzeby sprzętu (dlatego ważna jest deklaracja modelu płyty, bo kod jest generowany w sposób specyficzny dla konkretnych modeli SoC) i dopiero na ostatnim etapie jest linkowany i przygotowywany jest wynikowy .bin, więc każda zmiana w YAML wymaga rekompilacji i flashowania (po to jest opcja bezpośredniego flashowania OTA lub przez mostek USB->UART).
To o czym wyżej pisaliśmy nie jest integracją - to jest addon zawierający IDE ESPHome, który służy do “produkowania” fizycznych urządzeń ESPHome (a właściwie firmware dla nich).
Natomiast z punktu widzenia jego użytkownika nie musisz wiedzieć, co dokładnie jest wewnątrz tego pliku .bin (a raczej nie musisz się tym zajmować, bo wiedzieć chyba warto, że z grubsza biorąc jest tam zarówno system operacyjny, program użytkowy jak i partycja na dane oraz partycja do aktualizacji OTA).
Integracja ESPHome działa w pełni “plug and play” tj. gdy pojawi się w LAN, w którym pracuje HA, jakieś urządzenie z firmware (stworzonym na bazie w miarę standardowej konfiguracji, bo oczywiście praktycznie każdą z istotnych funkcji można wyłączyć w tym autowykrywanie czy obsługę API, po prostu nie dodając niezbędnych wpisów w tym “skeczu” w YAML), to HA sam to urządzenie wykryje.
Dokładnie tak - po dokonaniu wszystkich zmian w YAML musisz wgrać nowe świeżo skompilowane firmware czyli .bin, po pierwszym poprawnym uruchomieniu najwygodniej robić to przez OTA (opcja Wirelessly), aby to działało, w kodzie musi być opcja ota: (ona jest domyślnie włączona po wygenerowaniu pliku bazowego, ponadto jest automatycznie generowane losowe hasło, dużo wygodniej mieć wszystkie hasła w pliku secrets.yaml, kreator ogarnia to tylko częściowo i istotnie nie działa za dobrze, bo na próbę skorzystałem z niego pierwszy raz - kiedyś nie było tego kreatora wcale, ale wciąż można go pominąć).
No chyba że stworzysz firmware które ucegli układ - wtedy pozostaje flashowanie poprawionej wersji po kabelku.
Nie bardzo rozumiem - użyłeś innego sprzętu, czy po prostu zmieniłeś definicję płytki na inną mając nadal ten sam sprzęt?
(definicja musi być zgodna z użytym sprzętem, jeśli nie ma odpowiedniego “gotowca” to należy użyć jakiegoś najbliższego presetu “generic” lub nawet innej płytki - ale taki preset MUSI się zgadzać z budową sprzętu, bo na jego podstawie jest np. budowany układ partycji, w przypadku nieużywania dedykowanego presetu trzeba używać “pinologii” zgodnej z wyprowadzeniami SoC, a zazwyczaj nie można korzystać z podstawień zgodnych z opisami na PCB - po prostu mogą się nie zgadzać, jeśli modyfikujemy jakies gotowe urządzenia, to nie ma innego wyjścia, presety zasadniczo istnieją tylko dla płytek developerskich + te uniwersalne “generic”).
Przeanalizuj sobie taki przykład pomijając jego cechy specyficzne - tam też jest przekaźnik i przycisk
(na bazie ESPHome można wyprodukować nawet całkowicie autonomiczne urządzenia)
Widzę, że da się to zrobić button za pomocą kodu, ale nie ogarnę tego , że za pomocą kodu zrobić krótkie przyciśnięcie włącza swich1, a długie switch2.
Pewnie jest to do zrobienia, ale obawiam się, że moja wiedza jest zbyt słaba.
To tymczasowo (lub na zawsze?) użyj 2 przycisków, niestety nie da się wykorzystać możliwości tego projektu nie czytając w pełni jego dokumentacji, masz rację nie będzie to proste, ale jest wykonalne
pamiętaj, że gdy wyrzucisz całą automatykę na zewnątrz urządzenia, to będzie ono zależne od poprawnego działania czegoś innego (w tym wypadku np. NR, sieci WiFi, sieci generalnie, pewnie jeszcze HA?).
Tak malutka płytka jak Wemos D1 ma dostępnych 8 GPIO (nie pamiętam czy każde w pełni uniwersalne, ale 6 uniwersalnych to minimum jak mi się zdaje) + wejście analog + serial (który w ograniczonym stopniu można zmienić w GPIO)
W sumie to warto poczytać dokumentację ESP8266, bo bez tego trudno rozsądnie wykorzystać dostępny sprzęt, na początek może taki “bryk” wystarczy
HEHE miałem właśnie pisać, że pewnie zaraz ktoś wpadnie i połączy te 2 posty pod sobą i nie zdążyłem napisać, a już to zrobione, więc już wiesz, że na przyszłość zamiast post pod postem wypada edytować ostatniego posta (również gdy dotyczy to postępu w rozwiązaniu problemu, osobiście jestem przeciwnikiem usuwania starych treści, więc można je np. skreślać używając do tego podwójnej tyldy ~~ na zasadach podobnych do pogrubienia gdzie do tego używa się **).
To przy okazji jeszcze taka mała uwaga techniczna ode mnie - przy takich edycjach warto wstawić linię podziału posta - używa się do tego 3 myślników, poprzedzonych pustą linią (oraz potrzeba pustej linii również poniżej linii z myślnikami, bo służą one do 2 różnych zastosowań w markdownie)
---
natomiast jakikolwiek kod, a już np. w szczególności YAML, gdzie każda spacja jest ważna, należy poprzedzić linią z 3 odwrotnymi apostrofami (to domyślny znak dostępny pod “klawiszem tyldy”, poniżej postarałem się to ładnie pokazać w markdown, ale w ten sposób chyba nie da się skopiować do użytku przez copy/paste)
```
najlepiej zajrzyj do posta i zobaczysz jakich uzupełnień w nim dokonałem
a jednak daje się kopiować :P ale myślniki nie `---` - muszą być bez tych apostofów (odwrotnych)