Optimisation RECORDER

Je suis tout à fait d’accord avec @AlexHass

Regarde la documentation : History - Home Assistant

HA garde 1 mesure par heure dans l’historique. Sur du long terme, ç’est aussi bien que 6 par heure.

En configurant le recorder sur 10 ans, ce ne sera pas considéré comme de l’historique. Tu risques d’avoir des comportements inattendus et probablement des problèmes de perfs.

Bien vu ! Sur le téléphone j’ai zappé le coup des 10ans au lieu de 10j

1 « J'aime »

Salut,

Avant que je configure la rétention à 10 ans, en visionnant une entité dans l’historique je voyais 10 jours de données et la courbe était d’une couleur claire… après ces 10 jours la couleur était sombre mais comme vous dites il y avait des valeurs enregistrées.

Mais : dans un chart, uniquement les valeurs des 10 jours etaient affichées !

Du coup je suis d’accord avec vous de remettre la rétention ‘détaillée’ à une durée minimale mais alors comment afficher plus de 10 jours dans un chart ?

Merci,

Sébastien

il faut prendre les cartes compatibles avec les stats à long terme, par exemple

Salut,

Merci mais il me semble que ce fork ne soit plus mis à jours depuis l’an passé …

Tu as d’autres exemples?

Je ne trouve rien sur HACS.

C’est con car Apex-Charts permet de faire de superbes stats & super customisable.

Merci!

Sébastien

Même si pas à jour récemennnt, ça fonctionne.

Apex, je ne l’ utilise pas, mais à creuser dans la doc, ça marche peut-être aussi

Re,

Et si, apex utilise l’historique des stats !!!

type: custom:apexcharts-card
graph_span: 30d
span:
  end: day
series:
  - entity: sensor.production_pv_totale
    name: PV Totale (journalier)
    type: column
    statistics:
      type: change
      period: day
      align: end
    show:
      datalabels: true
      extremas: false
header:
  show: true
  title: Production PV Journalière (kWh)
  colorize_states: true
apex_config:
  legend:
    show: false
  chart:
    stacked: true
  dataLabels:
    background:
      borderWidth: 0
      opacity: 0
  plotOptions:
    bar:
      borderRadius: 0
      dataLabels:
        position: center

Mince apparement ne fonctionne pas pour period YEAR… grrr

Merci!

Sébastien

Salut,

Désolé de revenir avec ça mais avez-vous une idée de comment créer des graphs de statistiques annuelles ? (par jour, par mois c’est ok…)

Merci,

Sébastien

Salut

Ca n’irais pas pour ce que tu veux faire la card Statistics graph ? elle est intégrée au core et permet de faire pas mal de choses avant apex

Par exemple

type: statistics-graph
chart_type: bar
period: month
entities:
  - sensor.compteur_chauffage_pac_ext
stat_types:
  - change
days_to_show: 365

Salut,

Oui j’ai essayé ça mais pas possible de customiser comme APEX, par exemple pas possible de changer la couleur des barres, pas possible d’afficher les valeurs sur les barres, etc … c’est très limité.

Et aussi ‘Year’ ne fonctionne pas…

J’ai besoin d’avoir des stats annuelles.

Merci,

Sébastien

Salut

Un exemple (possiblement mal indenté)

type: custom:apexcharts-card
        apex_config:
          stroke:
            width: 1
          chart:
            height: 250px
          legend:
            show: false
        span:
          start: year
          offset: "-3 year"
        graph_span: 4 year
        stacked: true
        cache: true
        series:
          - entity: sensor.linky_hc_yearly
            type: column
            name: Heures creuses
            group_by:
              func: max
              duration: 1 year
            statistics:
              type: state
          - entity: sensor.linky_hp_yearly
            type: column
            name: Heures pleines
            group_by:
              func: max
              duration: 1 year
            statistics:
              type: state

Salut @Tochy ,

OUI ! ceci fonctionne !!! Merci a vous tous pour le soutien et le partage :slight_smile:

J’ai utilisé le même template et l’ai ajusté pour la production du jour et mois.

type: custom:apexcharts-card
apex_config:
  stroke:
    width: 10
  chart:
    type: bar
  legend:
    show: false
span:
  start: year
  offset: "-10 year"
graph_span: 11 year
stacked: true
cache: true
header:
  show: true
  title: Production PV Annuelle (kWh)
series:
  - entity: sensor.production_pv_totale
    type: column
    name: PV Total
    group_by:
      func: diff
      duration: 1 year
    statistics:
      type: state
    show:
      datalabels: true

Il me reste encore a trouver le moyen de migrer mon historique de Jeedom vers HA et la tout sera OK. (il me semble avoir vu une intégration HACS pour cela …)

Edit : stats de Jeedom exportées et importées dans HA grace au HACS “Import Statistics“ :slight_smile:

Sébastien

si tu veux prendre moins de place à l’affichage.

conso

c’est avec la carte custom:swipe-card disponible sur hacs

1 « J'aime »

Settings → Entités → Mode sélection → Recherche pertinente → Disable Selected :grin:

Par exemple j’ai 6 prises Nous Tasmota en WiFi qui remontent toutes les mesures genre toutes les 10s, or la puissance réactive ou la tension par exemple, ça me sert à rien, je veux juste la puissance pour savoir si le radiateur est en train de chauffer ou pas.

Donc recherche tasmota_ puis tri par nom d’entité, et tous les “Reactive Power” arrivent collés ensemble dans la liste. Clic, Shift-clic, comme dans l’explorateur, tous d’un coup.

J’ai généreusement mis du disable un peu partout sur toutes les entités qui me servent pas.

Bonjour et merci pour ces informations utiles.

Ma BD fait 13,2 Go et malgré un paramétrage rigoureux du RECORDER avec seulement les entités utilisées, celle-ci ne diminue pas.

Bonjour

Je crois qu’il faut attendre qq jour pour que la bd se mette à jour.

Tu peux installer l’addon SQLite Web et faire cette requête qui te donnera les entités avec le plus de lignes dans la table states :

SELECT m.metadata_id, m.entity_id, cnt, datetime(ts, 'unixepoch') last_update FROM
(SELECT metadata_id, count(*) cnt, max(last_updated_ts ) ts FROM states GROUP BY metadata_id ORDER BY 2 DESC LIMIT 100) c
JOIN states_meta m USING (metadata_id)

Cette requête donne la taille des principales tables :

SELECT 
	name,
	size/1048576.0 AS size_MB,
	rowcount,
	size/rowcount AS bytes_per_row
FROM (
	SELECT name, sum(pgsize) size FROM dbstat GROUP BY name
) sizes
NATURAL JOIN (
	SELECT 'event_data' AS name, (SELECT count(*) FROM event_data) rowcount UNION ALL
	SELECT 'event_types', (SELECT count(*) FROM event_types) rowcount UNION ALL
	SELECT 'events', (SELECT count(*) FROM events) rowcount UNION ALL
	SELECT 'migration_changes', (SELECT count(*) FROM migration_changes) rowcount UNION ALL
	SELECT 'recorder_runs', (SELECT count(*) FROM recorder_runs) rowcount UNION ALL
	SELECT 'schema_changes', (SELECT count(*) FROM schema_changes) rowcount UNION ALL
	SELECT 'state_attributes', (SELECT count(*) FROM state_attributes) rowcount UNION ALL
	SELECT 'states', (SELECT count(*) FROM states) rowcount UNION ALL
	SELECT 'states_meta', (SELECT count(*) FROM states_meta) rowcount UNION ALL
	SELECT 'statistics', (SELECT count(*) FROM statistics) rowcount UNION ALL
	SELECT 'statistics_meta', (SELECT count(*) FROM statistics_meta) rowcount UNION ALL
	SELECT 'statistics_runs', (SELECT count(*) FROM statistics_runs) rowcount UNION ALL
	SELECT 'statistics_short_term', (SELECT count(*) FROM statistics_short_term) rowcount
) counts
ORDER BY size DESC;

Bonsoir @HAMELEr
Tu devrais donner ton paramétrage, il ne doit pas être si bon que ça :wink:

Bob