šŸ“‘ Como criar uma lista com as Ćŗltimas notificaƧƵes enviadas para os utilizadores


(Jorge AssunĆ§Ć£o) #1

Alguns de vocĆŖs talvez jĆ” tenham pensado nisto mas nĆ£o sabiam como o fazer. Mostrar as Ćŗltimas notificaƧƵes no frontend do HA pode ser Ćŗtil para saber se uma determinada automaĆ§Ć£o funcionou ou nĆ£o e a que horas.

O segredo estƔ nos componente file e command_line, e tambƩm no comando tail.

Cria um ficheiro de texto na raiz da configuraĆ§Ć£o (na mesma pasta que o ficheiro configuration.yaml) com o nome notifications.txt. De seguida adiciona o seguinte na entrada notify:

notify:
  - name: Save to File
    platform: file
    filename: notifications.txt

Depois Ć© necessĆ”rio criar as entradas que vĆ£o ler as notificaƧƵes quando elas foram gravadas. Na entrada sensor: adiciona o seguinte:

sensor:
#### 10
  - platform: command_line
    name: "notificaĆ§Ć£o 10"
    command: "tail -n 10 /config/notifications.txt | sed '2,10d' $1"
#### 09
  - platform: command_line
    name: "notificaĆ§Ć£o 09"
    command: "tail -n 9 /config/notifications.txt | sed '2,9d' $1"
#### 08
  - platform: command_line
    name: "notificaĆ§Ć£o 08"
    command: "tail -n 8 /config/notifications.txt | sed '2,8d' $1"
#### 07
  - platform: command_line
    name: "notificaĆ§Ć£o 7"
    command: "tail -n 07 /config/notifications.txt | sed '2,7d' $1"
#### 06
  - platform: command_line
    name: "notificaĆ§Ć£o 06"
    command: "tail -n 6 /config/notifications.txt | sed '2,6d' $1"
#### 05
  - platform: command_line
    name: "notificaĆ§Ć£o 05"
    command: "tail -n 5 /config/notifications.txt | sed '2,5d' $1"
#### 04
  - platform: command_line
    name: "notificaĆ§Ć£o 04"
    command: "tail -n 4 /config/notifications.txt | sed '2,4d' $1"
#### 03
  - platform: command_line
    name: "notificaĆ§Ć£o 03"
    command: "tail -n 3 /config/notifications.txt | sed '2,3d' $1"
#### 02
  - platform: command_line
    name: "notificaĆ§Ć£o 02"
    command: "tail -n 2 /config/notifications.txt | sed '2,2d' $1"
#### 01
  - platform: command_line
    name: "notificaĆ§Ć£o 01"
    command: "tail -n 1 /config/notifications.txt | sed '2,1d' $1"

Cria um grupo para juntar todas as entradas num sĆ³ cartĆ£o.

group:
#### NOTIFICATION LIST
  grp_last_notifications:
    name: ƚltimas NotificaƧƵes
    control: hidden
    entities:
      - sensor.notificacao_01
      - sensor.notificacao_02
      - sensor.notificacao_03
      - sensor.notificacao_04
      - sensor.notificacao_05
      - sensor.notificacao_06
      - sensor.notificacao_07
      - sensor.notificacao_08
      - sensor.notificacao_09
      - sensor.notificacao_10

E depois adiciona este grupo a uma pƔgina nova (ou a outra que queiras):

#### NOTIFICAƇƕES
tab_notificacoes:
  name: NotificaƧƵes
  view: yes
  icon: mdi:bell-ring
  entities:
    - group.grp_last_notifications

Para que fique tudo mais bonito, adiciona estas entradas ao ficheiro customize.yaml

 customize:
#### LISTA DE NOTIFICAƇƕES
  sensor.notificacao_01:
    icon: mdi:bell-ring
    friendly_name: '01'
  sensor.notificacao_02:
    icon: mdi:bell
    friendly_name: '02'
  sensor.notificacao_03:
    icon: mdi:bell
    friendly_name: '03'
  sensor.notificacao_04:
    icon: mdi:bell
    friendly_name: '04'
  sensor.notificacao_05:
    icon: mdi:bell
    friendly_name: '05'
  sensor.notificacao_06:
    icon: mdi:bell
    friendly_name: '06'
  sensor.notificacao_07:
    icon: mdi:bell
    friendly_name: '07'
  sensor.notificacao_08:
    icon: mdi:bell
    friendly_name: '08'
  sensor.notificacao_09:
    icon: mdi:bell
    friendly_name: '09'
  sensor.notificacao_10:
    icon: mdi:bell
    friendly_name: '10'

Por Ćŗltimo, e muito importante, temos que dizer ao sistema o que queremos gravar no ficheiro. Para isso deverĆ”s adicionar este script:

#### NOTIFY SAVE TO FILE
notify_save_to_file:
  sequence:
    - service: notify.save_to_file
      data_template:
        message: '{{ message }}'

E adicionar uma nova acĆ§Ć£o Ć s automaƧƵes que queres que fiquem registadas no ficheiro. Por exemplo:

...
action:
  - service: mqtt.publish
    data_template:
      topic: 'home/indoor/sensor/MAID-EM-01/kwh_at_1st_day_month'
      retain: true
      payload_template: '{{ states.sensor.consumo_acumulado_kwh.state }}'
  - service: mqtt.publish
    data_template:
      topic: 'home/indoor/sensor/MAID-EM-01/kwh_at_1st_day_month_time'
      retain: true
      payload_template: '{{ now() }}'
  - service: script.notify_save_to_file
    data:
      message: '{{ as_timestamp (now()) | timestamp_custom("%d/%b/%Y %T") }} - kWh Mensais - GRAVADO'

Eu utilizo a funĆ§Ć£o {{ as_timestamp (now()) | timestamp_custom("%d/%b/%Y %T") }} para que fique registada a data e a hora da ocorrĆŖncia.

O resultado final Ć© este:


Como criar uma lista com as Ćŗltimas notificaƧƵes enviadas para os utilizadores
(Jorge AssunĆ§Ć£o) #2

2 mensagens foram unidas em um tĆ³pico existente: Como criar uma lista com as Ćŗltimas notificaƧƵes enviadas para os utilizadores


(system) #3

Para comentar este tĆ³pico, por favor utilizem o tĆ³pico abaixo


(Jorge AssunĆ§Ć£o) #4