Wyłączenie klimy pod warunkiem pracy przez określony czas

Witam.
Chciałem zrobić automatyzację załączania i wyłączania klimy od mocy pv.
Po załączeniu, klima ma pracować przez pewien czas nawet jak spadnie moc.

- id: '1771931262713'
  alias: AmberZałPv
  description: ''
  triggers:
  - trigger: numeric_state
    entity_id:
    - sensor.pv_suma
    for:
      hours: 0
      minutes: 20
      seconds: 0
    above: 1000
  conditions: []
  actions:
  - device_id: 7885992bc0a20f3ab7a405fdfb439795
    domain: climate
    entity_id: b3c39a30115aa62693353b49a094f8b0
    type: set_hvac_mode
    hvac_mode: heat
  mode: single
- id: '1771932807724'
  alias: AmberWyłPv
  description: ''
  triggers:
  - trigger: numeric_state
    entity_id:
    - sensor.pv_suma
    for:
      hours: 0
      minutes: 50
      seconds: 0
    below: 900
  conditions: []
  actions:
  - device_id: 7885992bc0a20f3ab7a405fdfb439795
    domain: climate
    entity_id: b3c39a30115aa62693353b49a094f8b0
    type: set_hvac_mode
    hvac_mode: 'off'
  mode: single

Pomyślałem takim sposobie aby załączał się timer razem z klimą i wyłączenie klimy było uwarunkowane czasem.
Ale nawet nie potrafię znaleźć kodu jaml utworzonego pomocnika timer.
W /homeassistant/configuration.yaml dodałem
template: !include templates.yaml


# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
  
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
template: !include templates.yaml

i stworzyłem plik templates.yaml, niestety jest pusty.

Skoro nic w nim nie napisałeś, to jest pusty…

Drugi hint
Tworząc automatyzacje w GUI nie używaj Urządzeń mających identyfikatory niezdatne do zrozumienia dla ludzi, zamiast tego używaj konkretne encje, które mają nazwy zrozumiałe dla ludzi.

I trzeci, jeśli pomocnika nie tworzyłeś w YAML, to go nie ma w YAML.

Jak tworzę w okienkach jakieś inne działania to pojawia się to w pliku jaml.
Tworzenie pomocnika nie tworzy automatycznie wpisu yaml?

Jeśli stworzyłeś Timer przez UI , to jego kodu nie znajdziesz w configuration.yaml. HA przechowuje takie wpisy w ukrytym folderze .storage.

Możesz go jednak zdefiniować ręcznie w configuration.yam:

timer:
  klima_run_timer:
    name: "Timer podtrzymania klimatyzacji"
    duration: "00:30:00" # Domyślny czas, np. 30 minut

Proponuję mechanizm:

  1. Start* PV > 1000W przez 20 min → Włącz klimę + Uruchom Timer.
  2. Podtrzymanie: Jeśli PV spadnie klima dział, dopóki Timer nie odliczy do zera.
  3. Reset: Jeśli moc PV wróci powyzej prog Timer startuje od nowa (klima pracuje dalej).
1 polubienie

Jak konkretnie tworzysz tylko i wyłącznie automatyzacje, to powstaje YAML, nic innego w HA core samo nie powstaje w YAMLu.

Ale rób je dobrze i zedytuj je sobie by wykorzystywały encje zamiast urządzeń, bo kiedyś przyjdzie czas, kiedy podziękujesz mi za tę podpowiedź.


Zasadniczo ktoś te YAMLe musi napisać albo człowiek albo AI; drobnym wyjątkiem są karty, które zwykle się tworzą z przykładowym YAMLem, ale to kwestia ich edytora, swoją drogą nie każda karta tak powstaje, no i to można w sumie zakwalifikować jako frontend.

Właśnie tak chcę, ale nie wiem czy sobie poradzę.

Mogę Ci dać jakiś yaml. Ale, jak narazie widzę, że masz dwa razy wpis template: !include templates.yaml oraz pomieszane sekcje (np. frontend: wewnątrz default_onfig:). Wyczyść to, aby każda kluczowa fraza (template, automation, script) występowała tylko raz.

templates.yaml: On służy do tworzenia wirtualnych czujników (np. obliczania różnicy mocy) a nie do automatyzacji czy timerów. Na razie może zostać pusty.

Oto jak powinna wyglądać automatyzacja:

  1. Automatyzacja Załączająca (z resetem timera)

W tej wersji każde przekroczenie 1000W “odświeża” czas pracy.

- id: 'amber_zal_pv_timer'
  alias: "Amber: Załącz i odśwież Timer"
  trigger:
    - trigger: numeric_state
      entity_id: sensor.pv_suma
      above: 1000
      for: "00:20:00"
  action:
    - service: climate.set_hvac_mode
      target:
        entity_id: climate.b3c39a30115aa62693353b49a094f8b0 # zalecam użycie przyjaznego ID np. climate.klima_salon
      data:
        hvac_mode: heat
    - service: timer.start
      target:
        entity_id: timer.klima_run_timer
  1. Automatyzacja wyłączająca (oparta na Timerze)

Klima wyłączy się tylko wtedy gdy moc jest niska ORAZ skończył się czas na timerze.

- id: 'amber_wyl_pv_timer'
  alias: "Amber: Wyłącz gdy skończy się czas"
  trigger:
    - trigger: state
      entity_id: timer.klima_run_timer
      to: "idle" # Timer skończył odliczanie
  condition:
    - condition: numeric_state
      entity_id: sensor.pv_suma
      below: 900
  action:
    - service: climate.set_hvac_mode
      target:
        entity_id: climate.b3c39a30115aa62693353b49a094f8b0
      data:
        hvac_mode: "off"

Zamiast długich identyfikatorów znajdź przyjazny czyli np. climate.klima_amber. Polecam.

1 polubienie

W tym pliku


# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
  
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
template: !include templates.yaml


http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1 

panel_custom:
    # fix for ha decision to remove dev tools 
  - name: developer-tools
    sidebar_title : Dev tools
    sidebar_icon: mdi:tools
    js_url: /api/hassio/app/entrypoint
    embed_iframe: true


# Example yaml: full tcp connection
modbus:
  - name: modbus_hub
    type: tcp
    host: 192.168.1.11
    port: 502
    sensors:

dodałem tylko

template: !include templates.yaml


http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1 

i

# Example yaml: full tcp connection
modbus:
  - name: modbus_hub
    type: tcp
    host: 192.168.1.11
    port: 502
    sensors:
'
'
'

to
nie wiem co mam zmienić,
czytałem, że dobrze rozdzielić configuration.yaml i dlatego dorobiłem

template: !include templates.yaml

Masz mieć tylko raz template: !include templates.yaml

O taką strukture:

# Podstawowa konfiguracja
default_config:

# Motywy i wygląd
frontend:
  themes: !include_dir_merge_named themes

# Rozdzielenie plików
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
template: !include templates.yaml

# Konfiguracja HTTP
http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1 

# narzędzia w panelu bocznym
panel_custom:
  - name: developer-tools
    sidebar_title: Dev tools
    sidebar_icon: mdi:tools
    js_url: /api/hassio/app/entrypoint
    embed_iframe: true

# Konfiguracja odbus
modbus:
 # reszta modbus

# Tutaj będą sensors np:
# sensor:
   # - name: "PV Suma"
   #   address: 100
   #   unit_of_measurement: "W"

W oryginalnej wersji nie było wcale wpisu

template: !include templates.yaml

dodałem 1 raz ten wpis i musiałem stworzyć plik


bo sprawdzenie poprawności konfiguracji nie działał bez tego pliku

Dziękuję wszystkim za pomoc, automatyzacja przetestowana, działa tak jak chciałem.

Czy mogę się dostać do ukrytego folderu .storage?

Tak, ale on jest ukryty po to, aby początkujący w nim nie grzebali (a jeden zły ruch wystarczy by się pożegnać z działającą instalacją).

Gdybyś poszukał po forum, to byś się dowiedział jak, ale potem nie pisz “chłopaki ratujcie”.

Sam znalazłem, chciałem zobaczyć yaml jak coś utworzę w UI, (chyba tak to nazywacie) ale nie znalazłem. Kopie tych blokad zrobiłem to sobie zablokuję, ale ciekawe, że dopisany # usunął całą linijkę.

Tam nie ma YAMLa… są za to rejestry HA i mnóstwo pootwieranych do zapisu plików w których raczej nie należy grzebać na włączonym HA.

Rozumiem, że masz na myśli automatyzacje.
Płotek zakomentowuje linię w YAML, ale jeśli plik YAML jest tworzony/obrabiany maszynowo, to nie zawiera komentarzy. (tzn. programiści mogliby to obejść by komentarze nie były usuwane, ale widocznie mają za małe moce przerobowe na takie upiększenia)

Zrobiłem sobie automatyzacje w UI i mogę ją zobaczyć w
/homeassistant/automations.yaml
a jak zrobię pomocnika w UI to nie mogę znaleźć yaml z jego kodem,
w storage też nie znalazłem.

Bo taki pomocnik tworzony w GUI nie ma YAMLa…
Jeśli chcesz mieć pomocniki YAML to musisz je z palca napisać (a NIE wyklikać w GUI).
https://www.home-assistant.io/integrations/?cat=helper
a ponieważ od dawna jest trend likwidacji konfiguracji YAML na korzyść bezYAMLowego klikanego GUI, to jest jak jest - nawet nie każdy pomocnik można utworzyć w YAML…
Na szczęście jeszcze wszystkich Bóg nie opuścił i część z tego co było możliwe kiedyś zostało w YAML (w tym automatyzacje ze swoim dorobionym później edytorem GUI).

Mam pomocnika suma kilku encji moc pv, jak nie ma mocy to jest wykrzyknik, znalazłem gdzieś kod do dodania do pomocnika, żeby wtedy było 0, no i nie znalazłem gdzie to dodać. Dlatego zacząłem szukać yamal pomocnika.

Stoworzono klikane GUI dla takich użytkowników, którzy byli przerażeni pisaniem własnego YAMLa, teraz się to mści. Możesz jeszcze raz zbudować sobie ten pomocnik (jego odpowiednik, bo nie będzie ten sam) tyle, że w YAML, to będziesz mógł go edytować…

Dokumentację masz w linku wyżej.

A jeśli chcesz coś dla zaawansowanych to twórz template

2 polubienia