Infludb GROUP BY month non disponible

Mon problème

Salut la communauté,
Je souhaite afficher des datas à partir de InfluxDB.
J’ai bien trouvé le pyscript.influxdb_query_to_entity qui permet de construire un sensor à partir de données d’InfluxDB. Ca marche bien et jusque là tout va bien.

Exemple:

- id: "archive_daily_energy_pleines"
  alias: "Calcul énergie journalière HP"
  description: "Calcul énergie journalière HP"
  trigger:
    - platform: homeassistant
      event: start
    - platform: time_pattern
      hours: "/1"
  condition: []
  action:
    - service: pyscript.influxdb_query_to_entity
      data:
        database: homeassistant
        query: >-
          SELECT max("value") AS value FROM "hadb"."autogen"."kWh"
          WHERE time >= now() - 365d AND "entity_id"='daily_energy_pleines' GROUP BY time(1d) FILL(null)
        key_field_name: time
        value_field_name: value
        entity_id: sensor.archive_daily_energy_pleines
        unit_of_measurement: kWh
        friendly_name: Energie journalière HP
        icon: "mdi:flash"

Là ou ca ne fonctionne plus, c’est si je veux la même chose mais regroupé par mois. En effet, GROUP BY time(1month) ou 1mo 1M ou whatever ne fonctionne pas sous InfluxDB.

Le support InfluxDB parle de tagger les datas avec le mois pour pouvoir faire ça et ensuite GROUP BY devrait marcher.

Seulement je ne sais pas comment tagger des données de HA vers InfluxDb.

Est-ce que quelqu’un a déjà résolu ce problème ou l’a déjà contourné d’une autre manière ?

Note: apex-chart ne sait pas non plus aggréger par mois malheureusement sinon on pouvait s’en sortir avec de la donnée journalière aggrégée au mois.

Ma configuration


[center]## System Health

version core-2022.2.7
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.98
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4923
Installed Version 1.22.0
Stage running
Available Repositories 988
Downloaded Repositories 13
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 7.4
update_channel stable
supervisor_version supervisor-2022.01.1
docker_version 20.10.9
disk_total 930.8 GB
disk_used 27.7 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Home Assistant Google Drive Backup (0.105.2), Terminal & SSH (9.3.0), Samba share (9.5.1), InfluxDB (4.3.0), Glances (0.14.2), Let’s Encrypt (4.12.0), NGINX Home Assistant SSL proxy (3.1.1), SQLite Web (3.2.1)
Lovelace
dashboards 1
resources 6
views 9
mode storage
[/center]

Merci d’avance pour votre aide.

Bonjour, le groupby mois semble supporté avec flux mais pas influx. Une autre solution : GROUP BY time(30d). Pas parfait car les mois ne font pas toujours 30j, mais une bonne approximation tout de même :blush:
:Référence

Hello, merci pour ta réponse. En effet c’est supporté en flux mais HA ne le supporte pas (ou j’ai pas trouvé).
le time(30d) c’est bien ce que j’ai fais en attendant mieux. C’est loin d’être parfait en effet.

Je suis toujours étonné d’être le seul à tomber sur ce genre de soucis, comme si j’étais le premier à avoir ce soucis.

Hmmm, l’utilisation de Flux est supporté, pour des sensors (https://www.home-assistant.io/integrations/influxdb/#sensors)
La tu es sur une automatisations, je ne sais pas si c’est OK.

En toute franchise, transférer des données depuis influx → HA, ne semble pas si courant ;-). l’utilisation que l’on voit le plus est l’inverse HA → Influx. HA pour la partie récupération des sensor, interactions physique et Influx pour stockage long terme + Grafana pour visualisation.
Je peux me permettre de demander pourquoi les données arrivent dans influx puis HA et pas l’inverse ?

Mais permets toi pas de soucis. Je débute encore, donc peut être que je ne prends pas le problème du bon coté.
En fait, mes sensors short term sont dans HA qui est configuré avec un délai de rétention assez court (7 jours). Je me sers de InfluxDB pour les stats long termes et tout ce qui mérite d’être gardé. (L’historique des consommations en heures creuses, heures pleines par exemple). Mais tout ce qui est InfluxDB vient bien de HA.

Je me dis que garder une base SQLlite « petite » est une bonne idée pour les perfs globales du système.
Mais encore une fois peut être que c’est une erreur.

Ensuite je veux afficher l’historique journalier/mensuel/horaire de mes consommations sur 1 an, je fais appel à InfluxDB grace au plugin pyscript.influxdb_query_to_entity.
Seulement, ni InfluxDB ni l’outil qui fait les graphes (apex-cards) ne font l’aggregation sur 1 mois. Et naïvement je me disais que forcément quelqu’un est déjà tombé sur ce soucis.

Tu me dis que si ça se trouve, je pourrais faire des requêtes en mode flux, c’est une super nouvelle, car ce serait la solution. Je ne vois pas bien comment j’ai pu loupé ça mais je te remercie du tuyau, je vais creuser dans cette voie.

Si tu ou vous pensez que je suis dans l’erreur avec ma stratégie court terme dans HA et long termes dans InfluxDB, n’hésitez pas à me le dire. Je le prendrais bien :wink:
Après est-ce que avec HA, je saurais faire des aggrégations sur un mois ? (si je supprime mon InfluxDB).

Non, la logique est la bonne. Garder le « temps réel » dans HA et l’historique ailleurs.
Mais, typiquement, le truc classique suivant c’est d’utiliser grafana pour lire les données d’influxdb et faire des jolis graphiques, plutôt que de relire depuis HA. Quitte éventuellement à afficher un dashboard grafana dans un iframe de lovelace. Comme ça, la boucle est bouclée :slight_smile:

Je ne peut dire mieux que @golfvert qui a bien synthétisé.

C’est le coté IFrame qui m’a rebuté j’avoue dans Grafana. Mais il faut peut être que je reconsidère la question en effet.

Alors il faut une installation 2.xxx pour utiliser flux si j’en crois la doc. Seulement le add-on fait une installation 1.xx uniquement. Faudrait se taper une install manuelle et ça me dit rien.