Historia pomocnika

Witam.
Z racji tego że termostat nie wyświetla historii zadzialania to utworzyłem pomocnika który zmienia swój stan przy pomocy automatyzacji.
Problem jest taki że nie mam historii tego pomocnika. A na tym głównie mi zależy. :slightly_smiling_face:
Ktoś wie jak to zrobić?


Co to znaczy, że termostat nie wyświetla?

Chcesz tak jak @Tomasz zliczać czas załączenia?

1 polubienie

Chodź o odczyt atrybutu encji “heat” a dokładniej termostatu Moes na zigbee.

Stwórz jeśli nie masz plik templates.yaml i dodaj w nim:

- sensor:
  - name: "Stan Moes"
    state: '{{ state_attr("climate.<moj_moes>", "running_state") }}'

w configuration.yaml dodaj:

template: !include templates.yaml

U mnie taki sensor:

- sensor:
  - name: Stan Moes
    state: "{{ state_attr('climate.lazienka_parter', 'hvac_action') }}"

daje taki rezultat:
image

3 polubienia

Dziś usiadłem i zrobiłem próbę.
Niestety nie widać kiedy jest uruchomione ogrzewanie a kiedy nie.
Udało mi się wyciągnąć temperaturę z moes.

plik templates.yaml

 - sensor:
  - name: "Stan Moes"
    state: '{{ state_attr("climate.termostat", "Heat") }}'

- sensor:
  - name: Stan Moes2
    state: "{{ state_attr('climate.termostat', 'hvac_action') }}"

- sensor:
  - name: Temperatura Moes
    state: "{{ state_attr('climate.termostat', 'temperature') }}"

- sensor:
  - name: "Stan Moes - proba"
    state: '{{ state_attr("climate.termostat", "Heat") }}'

Poniżej wklejam cały wyciąg z encji.

hvac_modes:
  - 'off'
  - heat
min_temp: 5
max_temp: 30
target_temp_step: 1
preset_modes:
  - none
  - hold
  - program
current_temperature: 23
temperature: 23
preset_mode: hold
child_lock: null
current_heating_setpoint: 23
deadzone_temperature: null
heat: 'OFF'
linkquality: 255
local_temperature: 23
local_temperature_calibration: -3
max_temperature_limit: null
preset: hold
system_mode: heat
friendly_name: Termostat
supported_features: 17

I zdjęcie co widać…

“Stan Moes - proba” oraz “Stan Moes” mają taką samą błędną deklarację
Wpisz “heat” zamiast “Heat”

@Stravi i @Cezary.K dziękuję :slightly_smiling_face::slightly_smiling_face:

Teraz myślę nad czasem grzania.
Znam już schemat i dziękuję za pomoc.
Efekt poniżej. :slightly_smiling_face:

W dokumentacji masz dobre przykłady:

1 polubienie

Cały czas mam konfiguracja niepoprawna.
Sprawdziłem i sensory są ok.
Czas też według dokumentacji.
Czuje że może być problem z “wcięciami” w tekście.
Jest jakiś program aby to sprawdzić ?

- sensor:
  - name: Stan Moes
    state: '{{ state_attr("climate.termostat", "heat") }}'

- sensor:
  - name: Temperatura Moes
    state: "{{ state_attr('climate.termostat', 'local_temperature') }}"

- platform: history_stats
    name: Czas Grzania dzis
    entity_id: sensor.stan_moes
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

- platform: history_stats
    name: Czas Grzania wczoraj
    entity_id: sensor.stan_moes
    state: "on"
    type: time
    end: "{{ now().replace(hour=0, minute=0, second=0) }}"
    duration:
        hours: 24


Błąd jest taki.

                  Error loading /data/data/pl.sviete.dom/files/home/AIS/configuration.yaml: mapping values are not allowed here
  in "/data/data/pl.sviete.dom/files/home/AIS/templates.yaml", line 10, column 9

History_stats przenieś do configuration.yaml lub osobnego pliku.
W templates.yaml też jest drobiazg do poprawy:

- sensor:
  - name: Stan Moes
    state: '{{ state_attr("climate.termostat", "heat") }}'
  - name: Temperatura Moes
    state: "{{ state_attr('climate.termostat', 'local_temperature') }}"

Przeczytaj dokumentację kilka razy. Przypatrz się uważnie… gdzie jaki wpis dodajesz.
Czy widzisz w przykładzie z dokumentacji różnicę w porównaniu z Twoim zapisem?

#przykład z HA
- platform: history_stats
  name: Lamp ON today
  entity_id: light.my_lamp
  state: "on"
  type: time
  start: "{{ now().replace(hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"


# Twoj zapis

- platform: history_stats
    name: Czas Grzania dzis
    entity_id: sensor.stan_moes
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

To jeszcze raz… obrazowo:

Tworzysz sensor (nie szablon) w pliku configuration.yaml

1 polubienie

Ok. Jutro do tego usiądę.
Dziękuje za cierpliwość i porady. :slightly_smiling_face:

Pamiętaj taż o okresie jeśli chcesz czujniki zliczające w danych przedziałach czasu #duration

1 polubienie

Plan z grubsza wykonany.
Dojdzie jeszcze czujnik poziomu ekogroszku i kilka czujników temp :slightly_smiling_face:

Kolejny bój będzie z poziomem węgla. :smiley:
Oczywiście na czujniku odległości i tasmota :slightly_smiling_face:
Dziękuje @Cezary.K oraz @Stravi za pomoc :slightly_smiling_face::slightly_smiling_face:

2 polubienia