Gráfico de Zonas, é possível?

Boa tarde colegas…

Tenho um card aqui da minha localização… e várias zonas cadastradas… tudo funcionando : )

Seria possível criar um gráfico tipo pizza das zonas que eu mais estou presente? Poderia atualizar os últimos 30 dias por exemplo…

Pesquisei e nada encontrei… Algum colega tem algo do tipo ou será que é possível?

Opções que acho que dariam certo:

1 - Acho que a maneira mais fácil seria criar vários sensores History Stats.

Pontos negativos:

  • só terá os dados a partir da criação dos sensores
  • pode ser que tenha que criar muitos sensores. Em um ex de 2 pessoas e 5 zonas, seriam 10 sensores.

2 - Uma opção que pode dar certo seria ler o banco de dados, mas mexer com dB é bem chato rsrsrs.

Depois com as informações em sensores, basta achar um card que faça a exibição no formato do gráfico que vc quer.

@Walber show… vou instalar e pesquisar como funciona : )

Obrigado + uma vez…

ChatGPT entregou isso aqui..rs

:white_check_mark: 1. Pré-requisitos

Você vai precisar de:

  • Um sensor de localização que atualize com as zonas (device_tracker)
  • Múltiplas zonas já configuradas
  • O history_stats (nativo do Home Assistant)
  • O apexcharts-card ou mini-graph-card (mas o ApexCharts é o ideal pra esse caso)
  • Um pouco de paciência :grinning_face_with_smiling_eyes:

:bar_chart: 2. Criando sensores com o tempo em cada zona

Vamos criar um sensor para cada zona usando o history_stats. Exemplo com zone.home e zone.work:

yaml

CopiarEditar

sensor:
  - platform: history_stats
    name: Tempo em casa (30 dias)
    entity_id: device_tracker.seu_dispositivo
    state: 'home'
    type: time
    start: "{{ now() - timedelta(days=30) }}"
    end: "{{ now() }}"

  - platform: history_stats
    name: Tempo no trabalho (30 dias)
    entity_id: device_tracker.seu_dispositivo
    state: 'work'
    type: time
    start: "{{ now() - timedelta(days=30) }}"
    end: "{{ now() }}"

:brain: Substitua device_tracker.seu_dispositivo e os nomes das zonas conforme seus dados.


:abacus: 3. Criando um sensor total (opcional)

Se quiser gerar percentuais, crie um template com a soma total:

yaml

CopiarEditar

template:
  - sensor:
      - name: "Tempo total em zonas"
        unit_of_measurement: "h"
        state: >
          {{ 
            (states('sensor.tempo_em_casa_30_dias') | float) +
            (states('sensor.tempo_no_trabalho_30_dias') | float)
          }}

:pie: 4. Exibindo com gráfico de pizza (ApexCharts)

Instale o apexcharts-card (via HACS) e adicione isso ao seu dashboard:

yaml

CopiarEditar

type: custom:apexcharts-card
chart_type: pie
header:
  title: Presença por Zona (últimos 30 dias)
series:
  - entity: sensor.tempo_em_casa_30_dias
    name: Casa
  - entity: sensor.tempo_no_trabalho_30_dias
    name: Trabalho
  # adicione outras zonas aqui...

:light_bulb: Extras e dicas:

  • Se você quiser algo mais automatizado, pode usar Node-RED ou scripts para contar número de visitas por zona também.
  • Com mais zonas, o card fica bem interessante visualmente.
  • Dá pra usar cores diferentes, tooltip com tempo total, e muito mais.

@Leo

Valeu mesmo… vou fuçar ja aqui … não são meia noite ainda… rsrs…

No caso de 02 celulares (o meu da foto e tem o da minha esposa), ambos compartilham as mesmas zonas, funcionaria para os dois? Tenho uma “aba” no HA minha e outra dela…