State jako encja

Pytanie (może głupie ale mam zaćmienie) - da się zmienić “state” z NR w encje w HA ? Wiem jak zmienić atrybut ale tutaj nie mam pojęcia.

image

Chyba, że ktoś podpowie mi jak w inny sposób zliczać godziny pracy nawilżacza.
Domyślnie gdy klikam w historie widzę to co poniżej a chciałbym wiedzieć ile czasu pracował w poszczególnych trybach. Taka sama sytuacja z oczyszczaczem powietrza. Dlatego wymyśliłem sobie aby ze humidifier state zrobić sensor.

image

Spróbuj nodem entity, ale jesli chcesz to później zliczać to raczej lepiej wyrzucić do bazy (możesz sobie zainstalować z addona MariaDB) z dokładnym czasem i stanem.

coś takiego? zlicza ile razy było coś uruchomione i ile czasu - mój przykład akurat dzienny, jest to co prawda przez HA ale działa bardzo dobrze :slight_smile:

 # GNIAZDKO LAPTOPA 
- platform: history_stats
  name: Laptop Time_ON
  entity_id: switch.officelaptoppowersocket
  state: 'on'
  type: time
  start: '{{ now().replace(hour=0, minute=0, second=0) }}'
  end: '{{ now() }}'
- platform: history_stats
  name: Laptop Count_ON
  entity_id: switch.officelaptoppowersocket
  state: 'on'
  type: count
  start: '{{ now().replace(hour=0, minute=0, second=0) }}'
  end: '{{ now() }}'
1 polubienie

Metoda dobra ale chyba nie zliczy czasu tylko sumę pomiarów wilgotności powierza w tym przypadku. U Ciebie jest switch.officelaptoppowersocket u mnie humidifier.nawilzacz_sypialnia.
Tak czy inaczej dzięki, na pewno się przyda.

liczy czas zadziałania danej encji - Type- time liczy czas. - Count liczy ilość uruchomieć,
dodatkowo zrobiłem sobie coś takiego ( głównie chodzi o “laptop_czas_dzialania”- jest to zmiana formatowania i wyświetlania, ponieważ domyślnie history_stats pokazuje czas jako cyfry - czyli 1godzina 30 minut pokazuje jako 1,5 - a ten template sensor zamienia ładnie na 1:30:00. pozostałe skopiowałem bo może się przydać np wyliczenie zużycia prądu :slight_smile:

 # GNIAZDKO LAPTOPA 
    - name: laptop_power
      state: "{{ states('sensor.officelaptoppowersocket_power') |float }}"
      unit_of_measurement: 'W'
    - name: laptop_current
      state: "{{ states('sensor.officelaptoppowersocket_current') |float }}"
      unit_of_measurement: 'A'
    - name: laptop_energy
      state: "{{ states('sensor.officelaptoppowersocket_energy') |float }}"
      unit_of_measurement: 'kWh'
    - name: laptop_czas_dzialania
      state: "{{ (states('sensor.laptop_time_on') | float * 3600) | timestamp_custom('%H:%M:%S', false) }}"
    - name: laptop_cost
      state: "{{ ( states('sensor.officelaptoppowersocket_power') |float/1000 * states('sensor.cena_pradu')|float) |round(2)}}"
      unit_of_measurement: zł/h

1 polubienie

Dla float dopisz na końcu (0), czyli float(0) znikną ci wtedy ostrzeżenia w logach.

float nie można przekonwertować unavailable na wartość liczbową, więc zgłosi wartość domyślną. Tradycyjnie float wartością domyślną jest , 0 ale w przyszłości będziesz zobowiązany do określenia wartości domyślnej. Jeśli nie podasz wartości domyślnej w bieżącej wersji (2021.10.0), pojawi się komunikat ostrzegawczy, ale począwszy od 2021.12.0 będzie to komunikat o błędzie .

1 polubienie

no właśnie widziałem te wpisy ostatnio w logach… no i tak miałem w tyle głowy że będzie trzeba się tym zająć do grudnia :slight_smile: a mam tego sporo w logach… bo dużo templatów wykorzystuje.

DZIĘKI !!

2021-10-22 09:34:07 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unknown' when rendering template '{{ (states('sensor.co_floor0_lev1_time_on') | float * 3600) | timestamp_custom('%H:%M:%S', false) }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2021.12
2021-10-22 09:34:07 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unknown' when rendering template '{{ (states('sensor.co_floor0_lev1_time_on') | float * 3600) | timestamp_custom('%H:%M:%S', false) }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2021.12
2021-10-22 09:34:07 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unknown' when rendering template '{{ (states('sensor.co_floor0_lev2_time_on') | float * 3600) | timestamp_custom('%H:%M:%S', false) }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2021.12

W Visual Studio Code CTRL+H i "float " na "float(0) " - spacja na końcu ubydwu wyrażeń.

Dokładnie tak zrobiłem tylko nie VS bo nie używam w HA a w paru plikach ręcznie edytorem. na szczęście mam takich plików dużo tylko trzy i CTRL+H działa wszędzie.

Dzięki :):slight_smile:

A odnośnie błędów w logach:

2021-10-22 22:43:59 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'
2021-10-22 22:53:40 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'
2021-10-22 22:56:01 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'
2021-10-22 23:07:01 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'

Ktoś zna rozwiązanie ?

To nie błędy tylko ostrzeżenia

Dzięki wielkie.
Dodanie

device_options:
  legacy: false

w configuration.yaml (zigbee2mqtt) pomogło.
Zostało mi jeszcze w logu:
2021-10-24 21:05:22 WARNING (SyncWorker_4) [homeassistant.components.google] The 'max_results' option is deprecated, please remove it from your configuration
ale na to chyba jeszcze nie ma poprawki jeśli dobrze rozumiem:

Pewnie trzeba postąpić zgodnie z komunikatem

'max_results' option is deprecated, please remove it from your configuration

*czyli usunąć opcję ‘max_results’ z konfiguracji