İçindekiler:

ESPHOME SONOF S26 Zamanlamalı Işık: 11 Adım (Resimlerle)
ESPHOME SONOF S26 Zamanlamalı Işık: 11 Adım (Resimlerle)

Video: ESPHOME SONOF S26 Zamanlamalı Işık: 11 Adım (Resimlerle)

Video: ESPHOME SONOF S26 Zamanlamalı Işık: 11 Adım (Resimlerle)
Video: Yeni Başlayanlar için Cinema 4D 2024, Temmuz
Anonim
ESPHOME SONOF S26 Zamanlamalı Işık
ESPHOME SONOF S26 Zamanlamalı Işık

İyi günler. Bu yüzden günün belirli bir saatinde açıp kapatmak istediğim bir akvaryum ışığım var. Sadece kendim için karmaşık hale getirmem gerekiyordu. Home Assistant kontrol panelimden açılıp kapanma zamanını değiştirebilmek istiyorum. Belki daha da fazlası.

Bakalım kendimi bir tavşan deliğine daha ne kadar sokabileceğim.

Adım 1: Adım 1: Times'ı Ev Asistanından Göndermenin Bir Yoluna İhtiyacım Var

Bazı googling yardımcı olur. Saçınızı biraz yolmak yardımcı olur, eğer gerçekten varsa:POpen benim Visual Studio Code Editor eklentim. Config klasörü altında configuration.yaml dosyasını bulun ve bazı forumlarda gizli bulduğum bazı şeyleri kopyalayıp yapıştırın. Özür dilerim hatırlasaydım teşekkür ederdim. Kodu eklendi ve ev asistanını yeniden başlattı.

Adım 2: Adım 2: Aşağıdaki Kodu Configuration.yaml'e Ekleyin

Adım 2: Aşağıdaki Kodu Configuration.yaml'e Ekleyin
Adım 2: Aşağıdaki Kodu Configuration.yaml'e Ekleyin

Numara giriniz:

ft_start_hr:

isim: FT Light Başlangıç Saatleri

simge: mdi: saat başlangıcı

dk: 0

maksimum: 23

Aşama 1

# başlangıç: 13

İlk satır, giriş numarası varlık kimliği olacaktır.

Sonra bu küçük ahbap için bazı ayrıntılara ihtiyacımız var:

Bir isim harika olacak: Bunun için FT Light Başlangıç Saatleri Not. FT Fish Tank içindir… Düşündüğünüz gibi değil miydi?

Sonraki isteğe bağlı bir simgedir. Aralarından seçim yapabileceğiniz çok şey var, o yüzden çıldırın… ya da olmayın.

Sonra bir min, max ve adım değeri koyabiliriz. Bu saatler olduğu için tek adımlarla 0 - 23'ü seçtim.

Başlangıçta bir başlangıç değerim vardı ve ev asistanı yeniden başlatıldığında onu bu başlangıç değerine değiştirecekti. Home Assistant'ın onun için belirlediğim son değeri denemesini ve hatırlamasını istediğim için yorum yapmaya karar verdim.

Bir kutu seçmek için moda girebilirsiniz. Ancak varsayılan olarak sizin için güzel bir kaydırıcı seçer. Şimdilik bir kaydırıcının yeterli olacağını düşünüyorum.

Girintilerin çok önemli olduğundan haberdar olun. Resme bakın

Yani bunlar size ev asistanında ayarlayabilmeniz için varlıklar verecektir.

Girilen sayılar hakkında daha fazla bilgi için bir bağlantı:

www.home-assistant.io/integrations/input_n…

Adım 3: Adım 3: Şimdi Bilgileri ESPHOME API'sine Almamız Gerekiyor

3. Adım: Artık Bilgileri ESPHOME API'sine Almamız Gerekiyor
3. Adım: Artık Bilgileri ESPHOME API'sine Almamız Gerekiyor

sensör:

- platform: şablon

sensörler:

ft_start_hr:

değer_şablonu: '{{ durum.input_number.ft_start_hr.state | int }}'

n

Bu, ESPHome API'sine gereken bağlantıyı sağlar ve artık süslü metin kaydırıcısı yerine bir tam sayıdır:-P

Burada giriş numarası durumunu alıp bir tamsayıya dönüştürmek ve bir sensörde saklamaktır.

İşte şablonlar hakkında biraz daha bilgi:

www.home-assistant.io/integrations/templat…

Oh, dosyamın Dosya uzantısını metne dönüştürdüm, böylece Yükleyebilirim… Talimatlar bir yaml ile yok edilebilir…

Adım 4: Adım 4: Şimdi Fişin ESPHome Yapılandırması

Adım 4: Şimdi Fişin ESPHome Yapılandırması
Adım 4: Şimdi Fişin ESPHome Yapılandırması

S-on-off fişi için bir temel yapılandırma ile başladım ve sonra tamir etmeye başladım.

Google'ın tüm cevapları olduğu için S26 fişinin ESPHome ile nasıl flaş edileceğine dair ayrıntılara girmeyeceğim.

Tam yapılandırma dosyam sonunda indirilebilecek. Da Da Dah…

Öyleyse, Home Assistant'a bağlı kısımla başlayalım:

Birbirleriyle konuşabilmeleri için ev asistanındaki sensörlerle eşleşen sensörler oluşturmalıyız.

Adım 5: Adım 5: ESPHome Home Assistant Bağlantısı… Işınla Beni Scotty

Adım 5: ESPHome Home Assistant Bağlantısı… Işınla Beni Scotty
Adım 5: ESPHome Home Assistant Bağlantısı… Işınla Beni Scotty

sensör:

- platform: ev yardımcısı

entity_id: sensor.ft_start_hr

kimlik: id_ft_start_hr

Şimdi ESPHome'da ev yardımcısı türünde bir sensör yaratıyoruz. Kim tahmin ederdi?

Varlık kimliğinin, configuration.yaml dosyanızda ayarladığınızla eşleşmesi gerekir.

ESPHome'un bu sensöre düşünme bolluğu içinde başvurabilmesi için bir kimlik oluşturdum.

Adım 6: Adım 6: Biraz Zaman Ekleyelim

Adım 6: Biraz Zaman Ekleyelim
Adım 6: Biraz Zaman Ekleyelim

Yani bu zaman ayarlı bir fiş olduğu için… Aslında biraz zaman ekleyelim… Yoksa çıkarma mı? Şimdi geçmişte mi?

İşte zaman bileşeninin bazı temelleri. Farklı olanları seçebiliriz ama ben ev asistanını seçtim. Çok kolay?

esphome.io/components/time.html

Adım 7: Adım 7: Aralık

7. Adım: Aralık
7. Adım: Aralık

Hayır, mola değil mi, değil mi?

Aralık:

- aralık: 1sn

sonra:

- lambda: |-

id(gl_ft_start_hr) = id(id_ft_start_hr).durum;

Bu yüzden ev asistanından global değişkene sensör değerini yazmak için 1 saniyelik bir aralık belirledim.

Zaman geçtikçe bunu saniyede bir yapmak istiyorum…tik tak

8. Adım: 8. Adım: Yani Zamanımız ve Paramız Var… Sırada Ne Var?

8. Adım: Yani Zamanımız ve Paramız Var… Sırada Ne Var?
8. Adım: Yani Zamanımız ve Paramız Var… Sırada Ne Var?

Bu yüzden, anahtar anahtarı anahtarını açma zamanının gelip gelmediğini belirlemek için bir ikili sensör şablonu kullanmaya karar verdim… röle

Kimliğe sahip üç anahtar oluşturdum: start_time_valid, stop_time_valid ve run_time_valid

start_time_valid, röleyi açmak için ayarlanan süre geçtiğinde doğrudur.

Gereken saniyelerden, sonra dakikalardan ve son olarak da saatlerden daha büyük veya eşit olup olmadığımızı kontrol etmek için iç içe if ifadeleri kullandım.

stop_time_valid, anahtarı kapatmak için ayarlanma zamanı gelmeden önce olduğunda doğrudur. Bu, röleyi kapatmak için gerekli süreyi geçmediğini kontrol etmek için tersine çevrilir.

run_time_valid, hem start_time_valid hem de stop_time_valid doğru olduğunda doğrudur. Sanırım bunun için bir normal ve koşul kullanabilirdim. Lambdalarla işlerin hızına yeni başladım.

- platform: şablon

isim: "Başlangıç Zamanı Geçerli"

kimlik: start_time_valid

lambda: |-

if (id(homeassistant_time).now().hour > id(gl_ft_start_hr)) {

true döndür;

}

else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&

id(homeassistant_time).now().dakika > id(gl_ft_start_mn)) {

true döndür;

}

else if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&

id(homeassistant_time).now().dakika == id(gl_ft_start_mn) &&

id(homeassistant_time).now().second >= id(gl_ft_start_ss)){

true döndür;

}

Başka {

yanlış döndür;

}

Adım 9: Adım 9: Şimdi Bazı Senaryolar için: 'Olmak ya da Olmamak: Bütün Mesele Bu'

9. Adım: Şimdi Bazı Senaryolar için: 'Olmak ya da Olmamak: Bütün Mesele Bu'
9. Adım: Şimdi Bazı Senaryolar için: 'Olmak ya da Olmamak: Bütün Mesele Bu'

Hmm yanlış senaryo dostum!

Bu yüzden, anahtarı taktığımda… veya evin elektriği yeniden geldiyse, anahtarın açık mı yoksa kapalı mı olduğunu bilmesini ve buna göre hareket etmesini istedim. (evet hepimiz oyunculuk derslerine gidiyoruz)

İlk komut dosyası kimliği: kontrol durumu, açık olup olmadığımızı kontrol ediyor ve buna göre hareket ediyor. Ayrıca, bu komut dosyasının yalnızca bir kez çalıştırıldığından ve diğer komut dosyalarımın oyundaki rollerini yapmalarını engellemediğinden emin olmak için: izleme kimliğine sahip küresel bir bayrak ekledim.

Bunun 3 ve koşulu var: röle kapalı, açık olması gerekiyor ve ben zaten üzerime düşeni yapmadım. Bu, daha sonra çalışan diğer komut dosyalarını kapatacak, röleyi açacak ve izleme bayraklarını ayarlayacaktır.

İkinci komut dosyası kimliği: checkstatusoff, ilkinin tam tersidir. Şimdi perdeleri kapatmamız gerekip gerekmediğini kontrol ediyoruz. Bunun için izleme bayrağı izleme kapalı

Her saniyeyi kontrol etmek için bu iki betiği 1 saniye aralıklarla çalıştırıyorum.

Adım 10: Adım 10: Bazı Bonus Komut Dosyaları

Adım 10: Bazı Bonus Komut Dosyaları
Adım 10: Bazı Bonus Komut Dosyaları

Eklemek istediğim iki özellik daha, tanktaki ışığı kapatırsam, o anda ışık yanacaksa 5 saniye sonra tekrar açılacaktı. Ayrıca, ışık kapalıysa ve balıklarımı görmek için açmak istesem ve planlanan saatin dışındaysa, 5 dakika boyunca yanacaktı. Evet 5 dakika yeterince uzun… İşinize geri dönün.

İlk komut dosyası kimliği:röleisoff, planlanan zamanda kapalıysa ışığı 5 dakika boyunca açar ve ardından kapanır.

İkinci komut dosyası kimliği: geçiş, pratik olarak birincinin tersidir ve açık olması gerekiyorsa ışığı 5 saniye sonra tekrar açar. Işığımı kapatabileceğinizi kim söyledi bayım!

İşte komut dosyaları hakkında biraz daha bilgi:

esphome.io/guides/automations.html

Komut dosyaları hakkında bazı bonus bilgiler, engellememeleridir. Bir lambda gecikme koymadığınız sürece. Uh Hayır Hayır Hayır

Adım 11: Adım 11: Bazı Son Düşünceler

11. Adım: Bazı Son Düşünceler
11. Adım: Bazı Son Düşünceler
11. Adım: Bazı Son Düşünceler
11. Adım: Bazı Son Düşünceler

Ev asistanından anahtarın düğmeyle aynı şekilde hareket etmesini istedim.

Ev asistanında basıldığını görmem gerekmediği için ikili sensör yerel anahtarı için bir isim koymadım.

Ev asistanından geçiş yapmak için scriptleri kullanmak istediğim için röle anahtarı için bir isim koymadım.

Ev asistanından geçiş yapmak için kullanabilmem için bir adla bir şablon anahtarı oluşturdum. Komut dosyalarımı fişteki yerel anahtarla aynı şekilde çalıştıracak.

Fiş yine de düzgün çalışıp çalışmayacaksa ev asistanımı kapatıp açmayacağını test etmedim. öyle umuyorum. Home Assistant API ile bağlantının kesilmesiyle ilgili bazı sorunlar hakkında bazı gönderiler gördüm.

Umarım bu küçük öğretici size yardımcı olur ve lütfen daha iyi hale getirmeme yardım etmekten çekinmeyin. Ben uzman değilim ve çok yavaş öğreniyorum. Nasıl yapacağımı öğrendiğim bazı şeylerin, dışarıdaki birinin bunu çözmeye çalışmasına yardımcı olabileceğini düşündüm.

Şimdi ev asistanında gün doğumu ve gün batımına göre saatleri değiştirmek için…+ - birkaç

Önerilen: