Witam, mam pytanie czy to normalne, że zlicza czas w formie 3,89h < proszę zwrócić uwagę na liczby po przecinku. Nie powinno to być w formie 3,60 (maksymalnie bo to mają być minuty?)
Atrybut “value” powstałej encji “podaje” czas w minutach i godzinach.
Odgrzeje kotleta…
Mam problem z history_stats… Mianowicie zrobiłem encję zliczającą czas i włączenia od początku, lecz codziennie o godz. 4 rano encja tak jakby sie cofała, czasu i kliknięć ubywa. Poniżej wykres encji i wpis w yaml:
Zgłoś issue, to teoretycznie powinno działać.
Edit: trochę się posunąłem za daleko
If the duration exceeds the number of days of history stored by the
recorder
component (purge_keep_days
), the history statistics sensor will not have all the information it needs to look at the entire duration. For example, ifpurge_keep_days
is set to 7, a history statistics sensor with a duration of 30 days will only report a value based on the last 7 days of history.
# tv czas pracy
- platform: history_stats
name: tv czas pracy
entity_id: media_player.tv
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0) }}"
end: "{{ now() }}"
@krskrab Tak, to też mam, ale jako zliczanie dzienne.
Edit:
@szopen Myślisz, że da się wydłużyć jakoś recorder?
@Kamil5771 edytuj Swoje posty - nie pisz jednego pod drugim
Można ale nie należy tego robić (w szczególności na standardowej bazie danych) - 10 dni które mamy OOTB jest blisko górnej granicy rozsądku.
Przy okazji niedawnych zmian w HA a konkretnie panelu Energia są dostępne nowe możliwości przygotowywania długoterminowych statystyk, ale nie czuję się na siłach by to opisywać - po prostu poczytaj świeże wątki o pomiarze energii - tam są opisane metody przygotowania encji (nie wiem czy w każdej domenie to jest możliwe).
Oprócz (zamiast) tego można doinstalować dedykowaną bazę
Jeśli chcesz, aby wartość sensora prezentował ci w postaci atrybutu “value” trzeba dodać linijkę
attribute: value
przy sensorze - poniżej mój przykład:
jeśli zabraknie tej podkreślonej linijki informacja będzie wyświetlana wartość czyli:
może dla wielu do podstawa, ale niektórym sprawiło to nie lada problem
Z History_stats zniknoł artybut value:
ktoś wie czy można go w jakiś inny sposób zastąpić tak aby wskazywał wartość stanu encji w formacie czasu (godziny:minuty) jak wcześniej robił to atrybut value?
Value w 2022.5
Zostało usunięte aby uniknąć zbyt wielu rekordów atrybutów w bazie danych.
Jeżeli się nie mylę zostało to zastąpione duration
https://www.home-assistant.io/integrations/history_stats/
https://www.home-assistant.io/integrations/history_stats/#type
Też tak myślałem. Nie znam zbyt dobrze angielskiego, ale niestety zamiast value
podstawienie duration
nic nie daje :{
Tak jak na screenschocie z poprzedniego mojego posta https://forum.arturhome.pl/uploads/default/original/2X/9/9a550d242fafc05db51ed2d1d6bb64283adfb400.png widać. duration
to atrybut device_class
co ciekawe stan
określa wartość duration podane w wartości dziesiętnej, tak jak to było do tej pory.
Co ciekawe oglądając okno historii sensora widać wyraźnie że czas w formie hh:mm:ss jest dostępny:
Wskazania które Ci znikły do tej pory były w atrybucie encji “value” który został usunięty. Po zmianach w aktualizacji 2022.5 wystarczy Ci stan encji.
zgadzam się, ale chce go zamienić na czytelny format prezentacji w postaci HH:MM, tym bardziej że potrzebuje takiego formatu dodatkowo w Node-RED by wysyłać właściwie sformatowane dane dla formularza google, który “notuje mi” statystyki.
Musisz to chyba ogarnąć w ten sposób
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
Musisz ustalić start
i end
U mnie na razie zrobiłem to jak poniżej:
{% set list = states('sensor.tv_w_kuchni_dzis').split('.') %}
{{ list[0] }}h {{ (60 * ('0.'~list[1]) | float (0)) | round(0) }}m
W szablonach wszystko ładnie się prezentuje…
ale jak dodaje do sensora history_stats to mi się rozjeżdża… od godziny pytam wujka google by nie zawracać Ci głowy takim podstawowym pytaniem, ale w którym miejscu dodałeś te dwie linijki że Ci się nie rozjechała wartość sensora.
{% set list = states('sensor.tv_dzis').split('.') %}
{{ list[0] }}h {{ (60 * ('0.'~list[1]) | float (0)) | round(0) }}m
Ja utworzyłem nową encję przez template:
czas_w_h:
friendly_name: "Czas w godzinach"
value_template: >-
{% set list = states('sensor.tv_w_kuchni_dzis').split('.') %}
{{ list[0] }}h {{ (60 * ('0.'~list[1]) | float (0)) | round(0) }}m
ale można też przez karty warunkowe.
Poszukam coś więcej w Googlu…
Jako osobna encja jest ok, ale to osobna encja. Będę szukał sposobu by jednak jej wartość dodać jako atrybut do istniejącej:
@Marcin_Domański - poradziłeś sobie?
Ładnie mi kiedyś działało teraz nie moge nic zrobić.
potrzebuje czas żeby się wyświetlał ile czasu w ciągu dnia encja jest w stanie “włączony” nie ON tylko Włączony.
No cóż u mnie działa tak:
w pliku sensors.yaml podpiętym pod configuration.yaml
- platform: template
sensors:
tv_dzis_czas_w_h:
friendly_name: "Czas w godzinach"
value_template: >-
{% set list = states('sensor.tv_dzis').split('.') %}
{{ list[0] }}h {{ (60 * ('0.'~list[1]) | float (0)) | round(0) }}m
- platform: history_stats
name: TV Dzis
entity_id: media_player.tv_tv
state: "on"
type: time
start: "{{ now().replace(hour=0, minute=0, second=0) }}"
end: "{{ now() }}"
niestety innej metody nie znalazłem.