Procesy z życia wzięte - Ogrzewanie

Zapraszam do dyskusji na temat procesu ogrzewania bazując na poniższym materiale:
Cześć 1

Cześć 2

Część 3

Elementy omówione w części 2:
Encja/sensor czasu włączonego ogrzewania:

sensor:
  - platform: history_stats
    name: Ogrzewanie dzisiaj
    entity_id: switch.sonoff_1000c6fcd5
    state: 'on'
    type: time
    start: '{{ now().replace(hour=0, minute=0, second=0) }}'
    end: '{{ now() }}'

Karta do sterowania ogrzewaniem:

type: vertical-stack
cards:
  - type: markdown
    content: >-
      # {{ states('input_number.ogrzewanie_temperatura') }}

      ---

      ## Tryb pracy: {{ states('input_text.ogrzewanie_tryb') }}

      ## Stan pieca: {{ states('switch.sonoff_1000c6fcd5') }}

      ---

      ### Ogrzewanie działało przez: {{ states('sensor.ogrzewanie_dzisiaj') }}
      godziny
    style:
      ha-markdown:
        $: |
          h1 {
            text-align: center;
            font-size: 4em;
            margin-bottom:25px;
            margin-top: 12px;
            color: green;
          }
          h2 {
            text-align: right;
            color: yellow;
          }
          h3 {
            text-align: center;
            color: green;
          }
    title: Ogrzewanie
  - type: horizontal-stack
    cards:
      - type: button
        tap_action:
          action: call-service
          service: input_number.decrement
          service_data:
            entity_id: input_number.ogrzewanie_temperatura
        icon: 'hass:thermometer-minus'
        icon_height: 48px
      - type: button
        tap_action:
          action: call-service
          service: input_number.increment
          service_data:
            entity_id: input_number.ogrzewanie_temperatura
        icon: 'hass:thermometer-plus'
        icon_height: 48px

Cały proces z części 3
ogrzewanie.json (42,9 KB)

Schemat układu aby sonoff mógł beznapięciowo załączać piec/kocioł

Świetny wstęp. Nie mogę się już doczekać kolejnej części. Czy mogę prosić o wrzucenie procesu na forum? Przed następnym filmem już będziemy mogli się trochę zapoznać.

1 polubienie

@cino111 No niech stracę :slight_smile: Miałem wrzucić po części drugiej czyli za tydzień ale niech będzie :smiley:
ogrzewanie.json (42,0 KB)

Dzięki :blush:
No to działam, bo zimno w domu.
PS. jakim nodem zrobie harmonogram dla różnych temperatur o różnych godzinach?

to jest całkiem dobry nod do harmonogramów node-red-contrib-light-scheduler
Tylko musisz go doinstalować.

Ja czekam cierpliwie na kolejne filmy dotyczące ogrzewania, bo jednak będę musiał przerobić trochę to bo mieszkam w bloku (ogrzewanie miejskie), więc na razie nie muszę uruchamiać pieca.

Zrobiłem już prawie cały termostat, ale nie mogę ogarnąć zmiany temperatury gdy dzień roboczy. Jak zrobić, żeby ładunek (dzien lub noc wysyłany z harmonogramu)przechodził przez nod z encją dzień roboczy?
dzien_roboczy.json (4,7 KB)

@cino111 Wydaje mi się, że nod current state zwraca Ci na wyjściu swój aktualny stan, a Ty chyba chcesz żeby w zależności od swojego stanu przepuścił payload z wejścia (czyli z harmonogramu)?

Dokładnie tak. Nie mam na to pomysłu.

@cino111 Nie widziałem jeszcze Twojego procesu ale w takich sytuacjach gdy jeden nod nadpisuje wynik drugiego to po prostu zapisz to w innej właściwości. Zamiast do msg.payload daj np do msg.cosinnego.
Większość nodów umożliwia zmianę miejsca zapisania swojej wartości.

Nie ogarniam. Mam coś takiego. W harmonogramie ustawiłem dzień i noc. Za current state otrzymuję tylko on jeżeli warunek jest spełniony, a dodatkowo pokazuje błąd
Entity could not be found in cache for entity_id: binary_sensor.dzien_pracujacy

@cino111 Będę maił dzisiaj chwilę to popatrzę na to ale błąd Entity could not be found in cache for entity_id: binary_sensor.dzien_pracujacy oznacza, że dodałeś encję w HA i nie zrobiłeś restartu dodatku NR. Przez co NR nie ma załadowanych wszystkich encji z HA. Standardowo NR trzyma cache encji u siebie i nie musi o istnienie encji za każdym razem odpytywać HA.

1 polubienie

Dzięki @artur. Działa. Wystarczyło zrestartować Node-Reda :fearful:
Zrobiłem coś takiego. W podajniku na ekogroszek mam ultradzwiękowy czujnik odległości - jak się kończy opał to załącza mi się buzzer i idzie info na głośniki.
Do samego termostatu użyłem wbudowanych w HA generic termostat, a w NR tylko automatyzacja do nich. Gdy otwieram konkretne okno to termostat w danym pokoju się wyłącza i zakręca grzejnik.
Muszę jeszcze zrobić, że gdy w tygodniu nie jadę do pracy to ma włączyć ogrzewanie w salonie - chyba na podstawie zalogowanego telefonu do wifi lub lokalizacji. Jeszcze się tym nie bawiłem. I jeszcze jak ustawić tryb wyjazd/noc na okeśloną ilość godzin lub dni, ale na to to poczekam do kolejnego filmu bo nie mam pojęcia jak to zrobić.


@cino111 No i super.
Jak coś to poniżej masz jak zmienić nod current state aby nie nadpisywał payload

Generalnie wystarczy w State Location zmienić właściwość z payload na coś innego

1 polubienie

Kontynuując wątek i 2 część filmu, która to już wiele nowości mi pokazała.
Pytanie w jakim pliku !include powinienem umieścić - platform: history_stats
Super encja i zaraz mi się ich uzbiera. Nie chcę zaśmiecać sobie pliku configuration.
Teraz muszę sobie ogarnąć jeszcze stosy pionowe i poziome.
Dzięki Artur za kolejne ciekawe możliwości HA i Node-Red.

Sądząc po wpisach w kafelkach karty trzeba stworzyć SENSOR history. u mnie zadziałało, a jestem mocno początkujący :wink: - pokazuje czas załączenia sonoff’a

A ja mam inne zapewne błahe pytanie - jak stworzyć “tryb dzienny, tryb nocny” ?

Musisz utworzyć pomocnika. Input boolean i nazwać go tryb nocny i drugi dzienny

Ewentualnie zrobić pomocnika tryb_ogrzewania i zmieniać mu wartość. Tak jak u mnie na filmie.

Mam zrobionego pomocnika jak na filmie, ale na filmie widzę również tryb dzienny, nocny i gość. Nie zależy mi na trybie gość tylko na “dzień” i “noc”. Jak rozumiem w tych trybach jest zdefiniowana godzina i w zależności od niej właśnie mamy “kafelek” tryb dzień lub tryb noc.
czy mogę zrobić pomocnika “Tryb dzienny” i w nim zdefiniować godziny np. 6:00 - 22:00 i drugi jako tryb nocny 22:01 - 5:59 i “zmontować kartę” która będzie wyświetlała aktualny tryb. Zapewne potrzebny byłby kod który definiuje właśnie na postawie godziny jaki tryb ma ustawić i tutaj już chyba sam sobie nie poradzę

Jeśli chce utworzyć sobie tryb dzienny i/lub nocny - i chcesz żeby się włączył o tych godzinach o których pisałeś to musisz sobie zrobić prostą automatyzację, że tryb dzienny ma się włączyć o 6:00 a wyłączyć tryb nocny i tak samo o 22:00. No chyba, że chcesz ręcznie je zmieniać i będziesz o tym pamiętał. Przełączniki tworzysz w UI jak kartę, poniżej masz przykład:
Zrzut ekranu 2020-11-01 o 13.47.19