Spisu treści:
- Krok 1: Krok 1: Potrzebuję sposobu na wysłanie czasu z Home Assistant
- Krok 2: Krok 2: Dodano następujący kod do pliku Configuration.yaml
- Krok 3: Krok 3: Teraz musimy uzyskać informacje do ESPHOME API
- Krok 4: Krok 4: Tak więc konfiguracja wtyczki ESPHome teraz
- Krok 5: Krok 5: Połączenie ESPHome Home Assistant… Beam Me Up Scotty
- Krok 6: Krok 6: Dodajmy trochę czasu
- Krok 7: Krok 7: Interwał
- Krok 8: Krok 8: Mamy czas i pieniądze… Co dalej?
- Krok 9: Krok 9: Teraz niektóre skrypty: „Być albo nie być: oto jest pytanie”
- Krok 10: Krok 10: Niektóre skrypty bonusowe
- Krok 11: Krok 11: Kilka końcowych myśli
Wideo: ESPHOME SONOF S26 Czasowe światło: 11 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Dobry dzień. Mam więc lampkę do akwarium, którą chcę włączać i wyłączać o określonej porze dnia. Po prostu musiałem to sobie skomplikować. Chcę mieć możliwość zmiany czasu włączania i wyłączania z pulpitu Home Assistant. Może nawet więcej.
Zobaczmy więc, o ile jeszcze mogę się zabrać do króliczej nory.
Krok 1: Krok 1: Potrzebuję sposobu na wysłanie czasu z Home Assistant
Trochę googlowania pomaga. Niektóre z wyrywania włosów pomagają, jeśli faktycznie masz jakiś dodatek:POtwórz mój Visual Studio Code Editor. W folderze Config znajdź plik configuration.yaml i skopiuj i wklej kilka rzeczy, które znalazłem ukryte na jakimś forum. Przepraszam, gdybym pamiętał, dałbym uznanie. Dodano kod i zrestartowałem asystenta domowego.
Krok 2: Krok 2: Dodano następujący kod do pliku Configuration.yaml
input_number:
ft_start_hr:
Nazwa: Godziny rozpoczęcia światła FT
ikona: mdi: start zegara
min: 0
max: 23
krok 1
# inicjał: 13
Pierwsza linia będzie numerem wejściowym identyfikatora jednostki.
Następnie potrzebujemy kilku szczegółów dotyczących tego małego gościa:
Nazwa będzie niesamowita: godziny startu FT Light dla tego jednego PS. FT to Fish Tank… Nie to, o czym myślałeś, prawda?
Dalej jest opcjonalna ikona. Jest tam wiele do wyboru, więc zaszalej… lub nie.
Następnie możemy podać wartość minimalną, maksymalną i kroku. Ponieważ są to godziny wybrałem 0 - 23 pojedynczymi krokami.
Początkowo miałem wartość początkową, a po ponownym uruchomieniu asystenta domowego zmieniono ją na tę początkową. Postanowiłem to skomentować, ponieważ chciałem, aby Home Assistant spróbował zapamiętać ostatnią wartość, którą dla niego ustawiłem.
Możesz wprowadzić tryb, aby wybrać pudełko. Ale domyślnie wybiera dla ciebie fajny suwak. Myślę, że na razie wystarczy suwak.
Uważaj na wcięcia, ponieważ są one bardzo ważne. Zobacz obraz
Więc to da ci istoty w asystencie domowym, aby móc się dostosować.
Oto link do dodatkowych informacji o numerach wejściowych:
www.home-assistant.io/integrations/input_n…
Krok 3: Krok 3: Teraz musimy uzyskać informacje do ESPHOME API
czujnik:
- platforma: szablon
czujniki:
ft_start_hr:
value_template: '{{ states.input_number.ft_start_hr.state | int }}'
n
To da ESPHome API wymagane połączenie, a teraz jest to liczba całkowita zamiast fantazyjnego suwaka tekstowego:-P
Tutaj pobiera stan numeru wejściowego i konwertuje go na liczbę całkowitą i przechowuje w czujniku.
Oto więcej informacji na temat szablonów:
www.home-assistant.io/integrations/templat…
Och, zmieniłem rozszerzenie pliku mojego pliku na tekst, aby móc go przesłać … Instrukcje mogą być zniszczalne za pomocą yaml …
Krok 4: Krok 4: Tak więc konfiguracja wtyczki ESPHome teraz
Zacząłem od podstawowej konfiguracji wtyczki s-on-off, a potem zacząłem majstrować.
Nie będę wchodzić w szczegóły jak flashować wtyczkę S26 za pomocą ESPHome, ponieważ google ma wszystkie odpowiedzi.
Mój pełny plik konfiguracyjny będzie dostępny do pobrania na końcu. Da Da Da…
Zacznijmy więc od połączonej części do Home Assistant:
Musimy stworzyć czujniki, które pasują do czujników w asystencie domowym, aby mogły ze sobą rozmawiać.
Krok 5: Krok 5: Połączenie ESPHome Home Assistant… Beam Me Up Scotty
czujnik:
- platforma: pomoc domowa
podmiot_id: sensor.ft_start_hr
id: id_ft_start_hr
Więc teraz tworzymy czujnik w ESPHome typu homeassistant. Kto by się domyślił?
Identyfikator jednostki będzie musiał odpowiadać temu, co ustawiłeś w pliku configuration.yaml.
Ustawiłem identyfikator, aby ESPHome mógł odnieść się do tego czujnika w jego obfitości myślenia.
Krok 6: Krok 6: Dodajmy trochę czasu
Więc z tym, że jest to wtyczka czasowa… Dodajmy trochę czasu… A może odejmijmy? Czy to już przeszłość?
Oto kilka podstawowych elementów składowych czasu. Możemy wybrać kilka innych, ale ja wybrałem pomoc domową. Zbyt łatwe?
esphome.io/components/time.html
Krok 7: Krok 7: Interwał
Nie, to nie jest przerwa, czy to prawda?
interwał:
- interwał: 1sek
następnie:
- lambda: |-
id(gl_ft_start_hr) = id(id_ft_start_hr).stan;
Ustawiłem więc interwał 1 sekundy, aby zapisać wartość czujnika z asystenta domowego do zmiennej globalnej.
Po prostu chcę to robić raz na sekundę, ponieważ czas ucieka… tik
Krok 8: Krok 8: Mamy czas i pieniądze… Co dalej?
Postanowiłem więc użyć szablonu czujnika binarnego, aby określić, czy nadszedł czas, aby włączyć przełącznik przełącznik przełącznik… przekaźnik
Stworzyłem trzy przełączniki o identyfikatorach: start_time_valid, stop_time_valid i run_time_valid
start_time_valid jest prawdziwe, gdy minął czas ustawiony na włączenie przekaźnika.
Użyłem zagnieżdżonych instrukcji if, aby sprawdzić, czy byliśmy więksi lub równi wymaganym sekundom, następnie minutom i wreszcie godzinom.
stop_time_valid jest prawdziwe, gdy jest teraz przed upływem czasu ustawionego na wyłączenie przełącznika. Jest to odwrócone w celu sprawdzenia, czy nie minął wymagany czas na wyłączenie przekaźnika
run_time_valid jest prawdziwe, gdy zarówno start_time_valid, jak i stop_time_valid są prawdziwe. Przypuszczam, że mogłem po prostu użyć normalnego i stanu do tego. Właśnie zacząłem szaleć z lambdami.
- platforma: szablon
nazwa: „Ważny czas rozpoczęcia”
id: start_time_valid
lambda: |-
if (id(homeassistant_time).now().hour > id(gl_ft_start_hr)) {
zwróć prawdę;
}
else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id(homeassistant_time).now().minute > id(gl_ft_start_mn)) {
zwróć prawdę;
}
else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id(homeassistant_time).now().minute == id(gl_ft_start_mn) &&
id(homeassistant_time).now().second >= id(gl_ft_start_ss)){
zwróć prawdę;
}
w przeciwnym razie {
zwróć fałsz;
}
Krok 9: Krok 9: Teraz niektóre skrypty: „Być albo nie być: oto jest pytanie”
Hmm zły skrypt stary!
Więc jeśli podłączyłem przełącznik… lub zasilanie domowe właśnie wróciło, chciałem, aby przełącznik wiedział, czy ma być włączony, czy wyłączony i odpowiednio działał. (tak, wszyscy idziemy na lekcje aktorstwa)
Pierwszy id skryptu: sprawdzanie statusu, to sprawdzanie, czy mamy być włączone i odpowiednie działanie. Dołączyłem również globalną flagę z identyfikatorem: trackingon, aby upewnić się, że ten skrypt zostanie uruchomiony tylko raz i nie przeszkadza innym moim skryptom w odegraniu swojej roli w grze.
To ma 3 i warunki: przekaźnik jest wyłączony, ma być włączony, a ja jeszcze nie wykonałem swojej części. Spowoduje to wyłączenie wszystkich innych uruchomionych skryptów, włączenie przekaźnika i ustawienie flag śledzenia.
Drugi identyfikator skryptu: checkstatusoff, jest przeciwieństwem pierwszego. Sprawdzamy tylko, czy nie musimy teraz zamykać zasłon. Flaga śledzenia dla tego to trackingoff
Uruchamiam te dwa skrypty w odstępie 1 sekundy, aby sprawdzać co sekundę.
Krok 10: Krok 10: Niektóre skrypty bonusowe
Dwie dodatkowe funkcje, które chciałem dodać, to jeśli wyłączę światło przy zbiorniku, to włączy się ponownie po 5 sekundach, jeśli światło ma być włączone w tym czasie. Ponadto, jeśli światło było wyłączone i chciałem je włączyć, aby zobaczyć moje rybki, a nie było to zaplanowane na czas, włączyłoby się na 5 minut. Tak, 5 minut wystarczy… Wracaj do pracy.
Id pierwszego skryptu: relayisoff włączy światło na 5 minut, jeśli jest wyłączone zaplanowane na czas, a następnie zgaśnie.
Drugi identyfikator skryptu: relayison jest praktycznie odwrócony od pierwszego i ponownie włączy światło 5 sekund później, jeśli ma być włączone. Kto powiedział, że możesz wyłączyć moje światło, panie!
Oto więcej informacji o skryptach:
esphome.io/guides/automations.html
Niektóre dodatkowe informacje o skryptach to to, że nie blokują się. Chyba że umieścisz opóźnienie w lambda. Uh Nie Nie Nie
Krok 11: Krok 11: Kilka końcowych myśli
Od asystenta domowego chciałem, aby przełącznik działał tak samo jak przycisk.
Nie podałem nazwy dla lokalnego przełącznika czujnika binarnego, ponieważ nie musiałem widzieć go wciśniętego w asystenta domowego.
Nie umieszczałem nazwy dla przełącznika przekaźnika gdyż chciałem wykorzystać skrypty do robienia przełączenia z asystenta domowego.
Stworzyłem przełącznik szablonu z nazwą, abym mógł go użyć do przełączenia się z asystenta domowego. Uruchomi moje skrypty tak samo, jak lokalny przełącznik we wtyczce.
Nie testowałem, czy wyłączając mojego asystenta domowego, jeśli wtyczka nadal będzie działać poprawnie. Mam taką nadzieję. Widziałem kilka postów o problemach z utratą połączenia z API Home Assistant.
Naprawdę mam nadzieję, że ten mały samouczek pomoże ci i proszę, pomóż mi go ulepszyć. Nie jestem ekspertem i uczę się bardzo powoli. Pomyślałem tylko, że niektóre rzeczy, których się nauczyłem, mogą pomóc komuś, kto stara się to rozgryźć.
Teraz, aby zmienić godziny w asystencie domowym na podstawie wschodu i zachodu słońca…+ - kilka
Zalecana:
Arduino: Programy czasowe i zdalne sterowanie z aplikacji na Androida: 7 kroków (ze zdjęciami)
Arduino: Programy czasowe i zdalne sterowanie z aplikacji na Androida: Zawsze zastanawiałem się, co dzieje się z tymi wszystkimi płytkami Arduino, których ludzie nie potrzebują po zakończeniu swoich fajnych projektów. Prawda jest nieco denerwująca: nic. Zaobserwowałem to w domu mojej rodziny, gdzie mój ojciec próbował zbudować własny dom
Dozownik na mydło czasowe: 6 kroków
Dozownik do mydła na czas: W obecnej sytuacji zdrowotnej zdałem sobie sprawę, że nigdy tak naprawdę nie myślałem o tym, jak długo myję ręce. Zaleca się pranie przez co najmniej 20 sekund, ale liczenie jest takie nudne i myślę, że wszyscy mamy dość piosenki z okazji urodzin
ESP8266 - gniazdo czasowe i zdalnie sterowane (zabezpieczenia dla osób starszych): 6 kroków
ESP8266 - gniazdo czasowe i zdalnie sterowane (zabezpieczenia dla osób starszych): INFORMACJE: Ten montaż sprawdza się przed przegrzaniem, pożarem i wypadkami w przypadku zapomnienia podłączonych urządzeń (głównie przez osoby starsze z chorobą Alzheimera). Po naciśnięciu przycisku gniazdo otrzymuje 110/220 VAC przez 5 minut (kolejne
Animowane światło nastrojowe i światło nocne: 6 kroków (ze zdjęciami)
Animated Mood Light & Night Light: Fascynacja, która graniczy z obsesją na punkcie światła, postanowiłem stworzyć wybór małych modułowych płytek drukowanych, które można wykorzystać do tworzenia wyświetlaczy świetlnych RGB o dowolnym rozmiarze. Po stworzeniu modułowej płytki PCB wpadłem na pomysł ułożenia ich w
Światło słoneczne bez baterii lub słoneczne światło dzienne Dlaczego nie?: 3 kroki
Światło słoneczne bez baterii lub słoneczne światło dzienne… Dlaczego nie?: Witamy. Przepraszam za mój englishDaylight? Słoneczny? Czemu? Mam nieco ciemny pokój w ciągu dnia i muszę włączać światła podczas użytkowania. Zainstaluj światło słoneczne na dzień i na noc (1 pokój): (w Chile) - Panel słoneczny 20 w: 42 USD - Bateria: 15 USD - Solar opłata kont