ths_sp
Abril 10, 2025, 6:32pm
1
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?
Walber
Abril 10, 2025, 7:15pm
2
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.
ths_sp
Abril 10, 2025, 9:15pm
3
@Walber show… vou instalar e pesquisar como funciona : )
Obrigado + uma vez…
Leo
Abril 11, 2025, 1:24am
4
ths_sp:
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?
ChatGPT entregou isso aqui..rs
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
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() }}"
Substitua device_tracker.seu_dispositivo
e os nomes das zonas conforme seus dados.
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)
}}
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...
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.
ths_sp
Abril 11, 2025, 2:51am
5
@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…