Budujemy Termostat (AISpeaker - Home Assistant)

Zadałem Twoje pytanie AI:


Taki kod wygenerował ChatGTP, możesz sam się pobawić i może nauczyć. Ostatnio pomaga mi uczyć się szablonów.

esphome:
  name: nazwa_twojego_esp
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "nazwa_twojej_sieci"
  password: "haslo_do_sieci"

api:

ota:

time:
  - platform: homeassistant
    id: ha_time

switch:
  - platform: gpio
    name: "Przekaźnik PC"
    pin: 16
    id: relay
    inverted: True
    restore_mode: RESTORE_default_OFF

automation:
  - id: turn_on_relay
    alias: "Włącz Przekaźnik PC"
    trigger:
      platform: time
      at: "22:00:00"
    condition:
      condition: and
      conditions:
        - condition: time
          after: "22:00:00"
          before: "06:00:00"
        - condition: time
          after: "12:00:00"
          before: "16:00:00"
    action:
      - switch.turn_on: relay

  - id: turn_off_relay
    alias: "Wyłącz Przekaźnik PC"
    trigger:
      platform: time
      at: "06:00:00"
    action:
      - switch.turn_off: relay
1 polubienie

to jest skrypt do HA a ja potrzebuję coś co będzie bezpośrednio w esp w razie jak by serwer HA poległ nie działa mi to w esp cały czas wywala mi złe miejsce a jak udało mi się ustwić wszystko dobrze to wywala że nie ma takiej automatyzacji

Przepraszam, ale to jest kod do bezpośredniego użycia w ESPHome. Wskazuje na to również dokumentacja ESPHome, którą linkowałem powyżej.
Należy pamiętać, że aktualny czas musi być pobrany z HA. Dlatego należy zsynchronizować go również automatyzacją lub usługą w samym ESP.

1 polubienie

platforma time też jest dodana . on wywala mi że nie ma takiej automatyzacji .natomiast w dokumentacji esp jest że trzeba to w lambdzie podawać lub on_press

Nie musi być pobrany z HA

Przy dostępie do internetu w sieci LAN wystarcza platforma SNTP

https://esphome.io/components/time/sntp

Sugeruję taką konfigurację (polskie pule serwerów i nasza strefa czasowa)

time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Warsaw
    servers:
     - 0.pl.pool.ntp.org
     - 1.pl.pool.ntp.org
     - 2.pl.pool.ntp.org

Dla hardkorów niezależności od internetu, można czas pobrać z GPS (potrzebny odbiornik) lub użyć podtrzymywanego bateryjnie układu zegara RTC (jest kilka konstrukcji do wyboru)

Przypomnę jeszcze, że samo połączenie z API w HA jest sprawdzane przez firmware ESPHome i w braku oznak życia HA urządzenie ESPHome domyślnie się będzie resetowało co 15 minut, więc zakładając, że HA ma być zawodne (jak dla mnie bardzo dziwne założenie) należy i o tym pomyśleć (a wtedy sugeruję użycie modułu ESP bez użycia WiFi, za to z kablowym Ethernetem) w związku z czym do poczytania (bo tam jest info jak to obejść):


Metod jest wiele, jeśli dopuszczalny jest wyzwalacz on_press to jest dopuszczalny też każdy inny wyzwalacz (o ile istnieje w powiązaniu z daną platformą).

Niestety by zbudować jakieś skuteczne automatyzacje w ESPHome trzeba się narobić, więc sugeruję poszukać jakiegoś podobnego projektu, do tego który chcesz zbudować i oprzeć swoją konstrukcję kodu na czymś co działa i jest zweryfikowane przynajmniej przez jednego użytkownika (składnia automatyzacji w ESPHome się mocno rozjechała z tym co jest w HA).

Niestety AI jest trenowane w dużej mierze na tym co ludzie piszą na forach (dlatego tak ważne jest publikowanie działającego w pełni kodu i oznaczanie takich postów jako rozwiązanie), natomiast często zabronione jest publikowanie kodu tworzonego przez AI (bo wprowadza dodatnie sprzężenie zwrotne w procesie swojego uczenia).

2 polubienia

dziękuję za pomoc. Właśnie szukam czegoś podobnego i nic wszystkie termostaty/ automatyzacje które widziałem działają na zasadzie jeśli temp 25 to włącz przekaźnik. a ja potrzebuję aby aby trzymał mi zadaną temperaturę oczywiście z histerezą i do tego włączał się w konkretnych godzinach 22-6 i 12-16. A wszystkie pomysły które mi podpowiadaja ludzie to takie gdzie włacza się po spadku poniżej 25 lub o 22 lub o 6 . a u mnie wszystkie warunki razem maja to włączyć i wyłączyć . Na razie mam automatyzację w HA lecz chciałem to zaimplementować w ESP

Nie szukaj termostatu, tylko czegoś co używa harmonogramy w HA.

tyle że ja chcę poza HA. tylko same ESP

Rozbudowany projekt termostatu jest w Tasmota,

do tego w Tasmota harmonogramy są w standardzie. Dokumentacja jak dla mnie jest też bardziej przystępna.

Potrzebna jest własna kompilacja binarki, ale robi się to dość łatwo za pomocą Tasmocompiler

P.S.
Mam spore doświadczenie z Tasmota, więc w tym rozwiązaniu mogę więcej pomóc.

2 polubienia

“Z rozpędu” to HA napisałem, miało być oczywiście :stuck_out_tongue:

czegoś co używa harmonogramy w ESPHome

Nawet chciałem rzucić jakimś linkiem, ale wszystkie projekty które mi się rzuciły w oko wymagają totalnych przeróbek.

1 polubienie

podeslij jakieś linki będę się uczył

Musisz sam szukać linków, w tym co znalazłem w każdym było tylko “po kropelce”,
najbardziej edukacyjny, bo pokazuje problem i sposoby rozwiązania - choć do twojego zastosowania pasuje zupełnie jak pieść do nosa (no i albo instructables nie jest dostosowane do wstawiania kodu albo autor jest slaby)

natomiast ten może zawierać rozwiązania (tzn. wiem, że je zawiera - tam są świetne przykłady harmonogramów), które może wykorzystasz we wstępnej fazie projektu (oczywiście też musisz go radykalnie zmienić)

więc sugeruję jednak wyjść od dokumentacji


OFF TOPIC

PS kilka linków nie powiązanych z tematem, ale fajnie jest czasem poczytać cudzy YAML

tu przykład słabo zorganizowanego podziału YAML na moduły funkcjonalne (no ale jest to jakiś przykład, ale popatrz na następny)

a tu za to świetny przykład wykorzystania podkatalogów (i również modularnego kodu)

2 polubienia

a czy wiesz może jak dodać do tego termostatu możliwośc włączania w godzinach 12-16 - 226-6

@Cezary.K jakieś znaczące różnice w stosunku do projektu better_thermostat ?