Últimos valores Conhecidos

Boas noites,

Tenho a integração da Brother para a minha impressora a funcionar correctamente, contudo quando a impressora está desligada os valores ficam indisponíveis (o que é normal visto que não há conectividade para devolver os valores).
O que gostaria de saber é se era possível quando ela estiver desligada de manter os últimos valores conhecidos, tipo a imagem em anexo.

Obrigado!

Não conheço essa integração mas se na própria configuração da integração não tiveres a hipótese de manter os valores pouco há a fazer.

Uma das hipóteses, poderá ser uma automação que guarde os valores que queres num input_number e que depois mostras no cartão ao invés desses que aparecem agora.

e ele depois irá actualizar á medida que for usando? ou ficará sempre com os valores anteriores?

É actualizado em tempo real desde que uses como trigger a mudança do valor.

Podes sempre publicar um topico mqtt sempte que esse valor altera…e fica retido.

Agradeço a vossa ajuda, mas ainda sou muito novato nisto e não faço ideia do que falam ou como fazer o que dizem…
Vou tentar pesquisar para tentar ter umas luzes das vossas opções.
Contudo achava que era bastante mais fácil ele ficar com os últimos valores conhecidos em vez de mostrar o indisponível.

Seria mais fácil se essa função estivesse implementada logo no componente que estás a usar. Não estando, a única coisa que se pode fazer é tentar contornar a situação.

E como poderei fazer isso? Há algum tutorial ou algum código pré feito para isso?

Podes fazer uma pesquisa pelo serviço
service: mqtt.publish

o workaround será sempre que o valor dos teus sensores alterarem vai publicar um topico no mqtt.
Depois podes criar sensores para ires buscar essa informação, tens que pesquisar que já não tenho esses exemplos comigo.

Boa noite,

A solução que eu arranjei para esse mesmo componente foi a seguinte:

  1. Para os valores numéricos criei vários input_number
  2. Um automatismo para actualizar os input_number
  3. Vários sensores template que são no fundo o que fica visível
    3.1) Uso um sensor snmp para calcular o tempo que a impressora está ligada

Em baixo o exemplo da minha configuração:

  1. input_number.yaml
nivel_tinteiro_preto:
  min: 0
  max: 100
  unit_of_measurement: "%"
  icon: mdi:printer-3d-nozzle

nivel_tinteiro_amarelo:
  min: 0
  max: 100
  unit_of_measurement: "%"
  icon: mdi:printer-3d-nozzle

nivel_tinteiro_cyan:
  min: 0
  max: 100
  mode: box
  unit_of_measurement: "%"
  icon: mdi:printer-3d-nozzle

nivel_tinteiro_magenta:
  min: 0
  max: 100
  mode: box
  unit_of_measurement: "%"
  icon: mdi:printer-3d-nozzle

paginas_a_preto_e_branco:
  min: 0
  max: 9999999
  mode: box
  unit_of_measurement: p
  icon: mdi:mdi:file-document-outline

paginas_a_cores:
  min: 0
  max: 9999999
  mode: box
  unit_of_measurement: p
  icon: mdi:mdi:file-document-outline

paginas_total:
  min: 0
  max: 9999999
  mode: box
  unit_of_measurement: p
  icon: mdi:mdi:file-document-outline
  1. automations.yaml
- id: '1560077109299'
  alias: Impressora
  description: ra
  trigger:
  - entity_id: sensor.mfc_j5320dw_b_w_counter
    platform: state
  - entity_id: sensor.mfc_j5320dw_black_ink_remaining
    platform: state
  - entity_id: sensor.mfc_j5320dw_color_counter
    platform: state
  - entity_id: sensor.mfc_j5320dw_cyan_ink_remaining
    platform: state
  - entity_id: sensor.mfc_j5320dw_magenta_ink_remaining
    platform: state
  - entity_id: sensor.mfc_j5320dw_page_counter
    platform: state
  - entity_id: sensor.mfc_j5320dw_yellow_ink_remaining
    platform: state
  condition:
  - condition: or
    conditions:
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_b_w_counter.state | float > -1
        }}'
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_black_ink_remaining.state | float
        > -1 }}'
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_color_counter.state | float >
        -1 }}'
    - condition: template
      value_template: '{{ states.sensor.sensor.mfc_j5320dw_cyan_ink_remaining.state
        | float > -1 }}'
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_magenta_ink_remaining.state |
        float > -1 }}'
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_page_counter.state | float > -1
        }}'
    - condition: template
      value_template: '{{ states.sensor.mfc_j5320dw_yellow_ink_remaining.state | float
        > -1 }}'
  action:
  - data_template:
      entity_id: input_number.nivel_tinteiro_preto
      value: '{{ states.sensor.mfc_j5320dw_black_ink_remaining.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.nivel_tinteiro_amarelo
      value: '{{ states.sensor.mfc_j5320dw_yellow_ink_remaining.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.nivel_tinteiro_cyan
      value: '{{ states.sensor.mfc_j5320dw_cyan_ink_remaining.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.nivel_tinteiro_magenta
      value: '{{ states.sensor.mfc_j5320dw_magenta_ink_remaining.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.paginas_a_preto_e_branco
      value: '{{ states.sensor.mfc_j5320dw_b_w_counter.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.paginas_a_cores
      value: '{{ states.sensor.mfc_j5320dw_color_counter.state }}'
    service: input_number.set_value
  - data_template:
      entity_id: input_number.paginas_total
      value: '{{ states.sensor.mfc_j5320dw_page_counter.state }}'
    service: input_number.set_value
  initial_state: 'on'

3 sensors.yaml

  - platform: template
    sensors:
      paginas_p_b:
        value_template: >
          {{ states.input_number.paginas_a_preto_e_branco.state | round }}
        unit_of_measurement: 'p'
        friendly_name: "Páginas P&B"
        icon_template: mdi:file-document-outline

      paginas_cores:
        value_template: >
          {{ states.input_number.paginas_a_cores.state | round }}
        unit_of_measurement: 'p'
        friendly_name: "Páginas Cor"
        icon_template: mdi:file-document-outline

      paginas_total:
        value_template: >
          {{ states.input_number.paginas_total.state | round }}
        unit_of_measurement: 'p'
        friendly_name: "Total de Páginas"
        icon_template: mdi:file-document-outline

      nivel_amarelo:
        value_template: >
          {{ states.input_number.nivel_tinteiro_amarelo.state | round }}
        unit_of_measurement: '%'
        friendly_name: "Tinteiro Amarelo"
        icon_template: mdi:printer-3d-nozzle

      nivel_cyan:
        value_template: >
          {{ states.input_number.nivel_tinteiro_cyan.state | round }}
        unit_of_measurement: '%'
        friendly_name: "Tinteiro Cyan"
        icon_template: mdi:printer-3d-nozzle

      nivel_magenta:
        value_template: >
          {{ states.input_number.nivel_tinteiro_magenta.state | round }}
        unit_of_measurement: '%'
        friendly_name: "Tinteiro Magenta"
        icon_template: mdi:printer-3d-nozzle

      nivel_preto:
        value_template: >
          {{ states.input_number.nivel_tinteiro_preto.state | round }}
        friendly_name: "Tinteiro Preto"
        icon_template: mdi:printer-3d-nozzle
        unit_of_measurement: '%'

      status_impressora:
        value_template: >
          {% if is_state('sensor.mfc_j5320dw_status', 'unavailable') %}
            Desligado
          {% else %}
            {{ states.sensor.mfc_j5320dw_status.state }}
          {% endif %}          
        friendly_name: "Brother MFC-J5320DW"
        icon_template: mdi:printer

  - platform: snmp
    name: 'Tempo -> Impressora Ligada'
    host: 192.168.1.174
    baseoid: 1.3.6.1.2.1.1.3.0
    accept_errors: true
    unit_of_measurement: 'minutes'
    value_template: '{{((value | int) / 6000) | int}}'
2 Likes