Budujemy Termostat (AISpeaker - Home Assistant)

Witam
Idzie zima i pewnie każdy się zastanawia nad termostatem sterowanym przez Jolkę :slight_smile:
No to krótka instrukcja sterowania podłogówką.
W zależności od zastosowanego sprzętu potrzebujemy odpowiednie moduły z ESP (np, sonoff basic). Wgrywamy oczywiście do modułów oprogramowanie Jolki i na jednym wybieramy czujnik temperatury np DS18b20, lub SI7021 jeżeli chcemy mieć jeszcze wilgotność (nie polecam DHT 22, gdyż bardzo często się wieszają i albo termostat się nie włączy, albo nie wyłączy), a na drugim przekaźnik. Moduł z czujnikiem temperatury oczywiście umieszczamy w pokoju, a moduł z przekaźnikiem przy rozdzielni ogrzewania podłogowego.
W pliku configuration.yaml wprowadzamy
climate: !include climate.yaml
i w katalogu AIS tworzymy plik climate.yaml
w tym pliku wprowadzamy kod

- platform: generic_thermostat
  name: Salon
  heater: switch.pompa_podlogowka
  target_sensor: sensor.salon_ds18b20_temperature
  min_temp: 18
  max_temp: 23
  ac_mode: false
  target_temp: 21.5
  cold_tolerance: 0.3
  hot_tolerance: 0.1
  away_temp: 18
  precision: 0.1

gdzie switch.pompa_podlogowka to encja przekaźnika, a sensor.salon_ds18b20_temperature to encja czujnika temperatury w pokoju. Pozostałe parametry to zakres pokrętła i histereza.
Efakt finalny wygląda tak
image

Możemy jeszcze dodać automatyzację do automatycznego przestawiania zadanej temperatury.
Wprowadzamy poniższe w pliku automations.yaml

- id: '1575802682926'
  alias: Termostat Salon 11
  description: Automatyzacja do termostatu w Salonie
  trigger:
  - at: '11:00'
    platform: time
  condition:
  - condition: state
    entity_id: binary_sensor.dzien_pracujacy
    state: 'on'
  action:
  - data:
      temperature: 21
    service: climate.set_temperature
- id: '1575802682929'
  alias: Termostat Salon 19
  description: Automatyzacja do termostatu w Salonie
  trigger:
  - at: '19:00'
    platform: time
  action:
  - data:
      temperature: 19.5
    service: climate.set_temperature
- id: '1575802682918'
  alias: Termostat Salon week
  description: Automatyzacja do termostatu w Salonie
  trigger:
  - at: 07:00
    platform: time
  condition:
  - condition: state
    entity_id: binary_sensor.dzien_pracujacy
    state: 'off'
  action:
  - data:
      temperature: 21.5
    service: climate.set_temperature

Z powyższego wynika, że o godzinie 11:00 w dni robocze termostat ustawia się na temperaturę 21 stopni, o 19:00 na 19,5 stopni, a w nierobocze o godzinie 7:00 na 21,5 stopni.

Jeżeli chcecie automatyzację robić przez GUI to wygląda to tak. Każda zmiana temperatury to nowa automatyzacja, dlatego łatwiej jest to zrobi w pliku i tylko po kopiować, oraz zmienić ID, godzinę i temperaturę.

6 polubień

Termostat zrobiony wg Twojego opisu, kilka dni testów na biurku i jak wszystko będzie działać prawidłowo to podpinam do pieca. Mam dwa termostaty jeden do podłogówki jeden do grzejników, łącznie musiałem zrobić 16 automatyzacji :astonished:
Trochę to mało czytelne ale mam nadzieję, że będzie działać :wink:

Jeżeli masz kilka termostatów i chcesz ustawić temperaturę tylko dla jednego lub kliku, ale nie wszystkich to musisz w akcji dodać encję do której ta temperatura się tyczy. Jeżeli więcej niż jeden termostat ma się przestawić to wpisujemy je po przecinku.

Termostat podłączony do pieca i wszystko działa jak należy.
Dzięki twoim sugestią udało mi się zmniejszyć ilość automatyzacji do 8 i teraz jest wszystko dużo bardziej czytelne. Dzięki za pomoc! :+1: :+1: :+1:

U mnie też generic thermostat podpięty.
Piec gazowy podłączony pod Sonoff SV.
W automatyzacjach wszystko pięknie działa ale jest problem ze sterowaniem głosowym

Zajrzałem do manuala jak sterować głosowo jednakże Jolka odpowiada “Wygląda na to że to urządzenie nie zostało jeszcze skonfigurowane możesz to zrobić w ustawieniach asystenta” lub “Mam problem ze zrozumieniem włącz całe ogrzewanie”

Jakieś pomysły co może być?

1 polubienie

Witam.
Cino111@

Mam prośbę o poprawę mojej automatyzacji. Zmieniłem ją pod swoje ustawienia ale chyba jest coś nie tak. Bo jak wchodzę w automatyzację to nie ma takich ustawień jak bym chciał.
Chciałbym aby sonoff basic z czujnikiem temperatury sterował moim piecem na groszek. A mianowicie jak termostat pokojowy. Czyli wychodzę rano do pracy (7.00) temperatura 22 stopnie. Wracam po pracy godz.15.00 temperatura 22.5 stopnia. Natomiast w wekeend od 7.00 22.5 stopnia. Mój przerobiony plik wygląda tak:

  • id: ‘01145BCEF129’
    alias: Termostat Dom 07.00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘07:00’
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
      action:
    • data:
      temperature: 22
      service: climate.set_temperature
  • id: ‘01145BCEF129’
    alias: Termostat Dom 15.00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘15:00’
      platform: time
      action:
    • data:
      temperature: 22.5
      service: climate.set_temperature
  • id: ‘01145BCEF129’
    alias: Termostat Salon week
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: 07:00
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘off’
      action:
    • data:
      temperature: 22.5
      service: climate.set_temperature

A tu plik climate :

  • platform: generic_thermostat
    name: Dom
    heater: switch.termostat_pieca
    target_sensor: sensor.termostat_pieca_ds18b20_temperature
    min_temp: 18
    max_temp: 23
    ac_mode: false
    target_temp: 21.5
    cold_tolerance: 0.3
    hot_tolerance: 0.1
    away_temp: 18
    precision: 0.1

W Twoim pliku są różne ID, może tu jest problem. Nie bardzo to mogę zrozumieć.

Już zrozumiałem, mój syn mi pomógł. Teraz mój plik wygląda tak:

  • id: 01145BCEF129
    alias: Termostat Pieca
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: 07:00
      platform: time
    • at: ‘15:00’
      platform: time
    • at: ‘22:00’
      platform: time
    • at: 08:00
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘off’
      action:
    • data:
      temperature: 22
      service: climate.set_temperature
    • data:
      temperature: 22.5
      service: climate.set_temperature
    • data:
      temperature: 22
      service: climate.set_temperature
    • data:
      temperature: 22.5
      service: climate.set_temperature
      . Myślę, że teraz próby i podłącze do pieca.

Pozdrawiam

ID chyba powinny być różne, ja robiłem przez GUI i za każdym razem gdy dodaje w taki sposób automatyzacje to generuje się inne ID, ale zawsze 13 cyfrowe.
Co do kodu to chyba coś nie tak, napisałeś że chcesz tak:

wychodzę rano do pracy (7.00) temperatura 22 stopnie. Wracam po pracy godz.15.00 temperatura 22.5 stopnia. Natomiast w wekeend od 7.00 22.5 stopnia

Czyli zrób 4 osobne automatyzacje (dwie na dzień pracujący i dwie na dni wolne).
Jeżeli dobrze zrozumiałem to co napisałeś to dzień pracujący ma być tak:


Czyli robisz dwie automatyzacje na dni pracujące, jedną na włączenie 22,5 (na schemacie cyfra 2) i drugą na włączenie 22 (na schemacie cyfra 1)
Jeżeli dobrze Ciebie zrozumiałem to kod powinien wyglądać tak:
- id: ‘1578091303680’
alias: Termostat Dom 07.00 dzień pracujący
description: Automatyzacja do termostatu w Domu
trigger:

  • at: ‘7:00’
    platform: time
    condition:
  • condition: state
    entity_id: binary_sensor.dzien_pracujacy
    state: ‘on’
    action:
  • data:
    temperature: 22
    service: climate.set_temperature
  • id: ‘1578091464434’
    alias: Termostat Dom 15.00 dzień pracujący
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘15:00’
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
      action:
    • data:
      temperature: 22.5
      service: climate.set_temperature

a po przez GUI tak:


Co do dnia wolnego, to nie rozumiem jaki masz zamysł bo napisałeś

Natomiast w wekeend od 7.00 22.5 stopnia

a od której ma być 22 ?
Ale generalnie zrób analogicznie jak dla dni pracujących.
Mam nadzieje że nic nie namieszałem :stuck_out_tongue_winking_eye:
Jak coś to pisz

Dzięki za podpowiedź. Teraz wygląda to tak:

  • id: 01145BCEF129
    alias: Termostat Pieca w dzien pracujacy 07:00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: 07:00
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
      action:
    • data:
      temperature: 22
      service: climate.set_temperature
  • id: ‘1578093967674’
    alias: Termostat Pieca w dzien pracujacy 15:00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘15:00’
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
      action:
    • data:
      temperature: 22.5
      service: climate.set_temperature
  • id: ‘1578094085360’
    alias: Termostat Pieca w dzien pracujacy 22:00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘22:00’
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘on’
      action:
    • data:
      temperature: 22
      service: climate.set_temperature
  • id: ‘1578094215514’
    alias: Termostat Pieca w wekeend 08:00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: 08:00
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘off’
      action:
    • data:
      temperature: 22.5
      service: climate.set_temperature
  • id: ‘1578094433284’
    alias: Termostat Pieca w wekeend 22:00
    description: Automatyzacja do termostatu w Domu
    trigger:
    • at: ‘22:00’
      platform: time
      condition:
    • condition: state
      entity_id: binary_sensor.dzien_pracujacy
      state: ‘off’
      action:
    • data:
      temperature: 22
      service: climate.set_temperature

Będe testował.

Widzę, że już masz odpowiedź, ale głównym problemem byly te same id. Jak kopiujesz to zmieniaj chociaż ostatnią cyfrę. Nr id musi być unikalny.

Witam.
Dzięki bardzo.

Cino111@

Witaj, może Ty mi podpowiesz. Co muszę zrobić, że asystent po pytaniu jaka jest temperatura w domu odpowiedział. Cały czas mam na myśli zbudowany termostat.

Już sobie poradziłem, dzięki

@kindziol jak ogarnąłeś to opisz co trzeb zrobić. Ja się jeszcze tym nie bawiłem.

Oki.
Do budowy termostatu użyłem Sonoff Basic i wgrałem mu oprogramowanie Naszej Jolki. Ustawiłem wszystko według Twojego opisu a pomógł mi jeszcze w tym @Tomasz. Według jego opisu zrobiłem 4 automatyzację, bo tyle mi wystarczy do sterowania piecem na groszek. Jeśli chodzi o zapytanie o temperaturę to musi ona być w postaci: jaka jest temperatura w domu, lub jaka jest temperatura na zewnątrz. AIS odpowiada bez problemu. Ja mam podłączone dwa czujniki temperatury. Pewne rzeczy wykorzystałem do geolokalizacji, wracam do domu, AIS mnie wita, podaje godzinę, temperatury i włącza oświetlenie. Później dodam parę rzeczy ( np. otwiera bramę i zapala oświetlenie po zachodzie słońca). Tylko tu mam problem z doborem sterownika czy supla czy jakiś inny z allegro bo są takie do sterowaniem bram. Od razu może napiszę odnośnie geolokalizacji, nie jest to super rozwiązanie bo są opóźnienia ale jak na razie mi to wystarczy. Warto się zastanowić może nad czujnikiem obecności w domu, czy na podwórku, który będzie rozpoznawała Nasza Jolka.

pozdrawiam

1 polubienie

Co do bramy to proponuje zrobić jak w opisie:

Ja wcześniej miałem swój serwer na Supli, ale wszystko przerzuciłem na Jolkę.
Nie chciałem mieć dwóch serwerów a możliwości Jolki w porównaniu do Supli są ogromne.

@Tomasz
A jakich sterowników użyłeś do rolet ??? I czy możesz podać link do tych sterowników od bram, bo jest ich kilka na necie.

Co do rolet to nie mam doświadczenia ale poczytaj o Shelly 2.5.
A co do bramy to:


plus

i przeróbka zgodnie z instrukcją.
A jak nie czujesz się na siłach sam trochę pogrzebać to kup gotowca i poproś o wgranie softu AISpeaker:

@Tomasz
Dzięki bardzo, zamówiłem trzy Sonoff SV do przerobienia. Jak tylko przyjdą to walczę i dam znać.

No to super :+1: czekam na info i jak coś to pomożemy :grinning:

@Tomasz
Sterowniki przyszły, są zaprogramowane. Tylko nie rozumiem, podłączyłem Kontaktron. Dodałem do Jolki. Ale jak mam wyrzucić na ekran, żeby pokazywało tak jak u Ciebie podasz opisu Sterowanie Bramą Garażową poprzez moduł SONOFF SV

Nie rozumiem twojego pytania. Napisz dokładnie w którym miejscu instrukcji stanąłeś i najlepiej pisz w tym poście gdzie jest instrukcja do bramy, żeby nie robić bałaganu na forum. :wink: