[InfluxDB v1.8.x] Aller encore plus loin!

j’ai réussi avec ca en requête. Si ca peut aider
CREATE CONTINUOUS QUERY hass_down ON homeassistant BEGIN SELECT mean() INTO homeassistant.infini.:MEASUREMENT FROM homeassistant.autogen././ GROUP BY time(1d), * END

Ca me groupe dans une autre db par 24h mes mesures. Suffisante pour garder une trace des temperatures ou de ma Conso électrique …
maintenant je cherche a copier les data actuelles de ma BD vers la nouvelle (infini) en faisant la meme moyenne. mais je suis toujours a taton sur la syntaxe…

1 « J'aime »

Bonjour,

J’aurais besoin de l’aide d’un spécialiste pour des requêtes flux sur ma DB.
J’ai un compteur d’eau impulsionnel 1l/imp, je récupère bien les données dans mon InfluxDB:

from(bucket: "GalaHome")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "L")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["domain"] == "sensor")
  |> filter(fn: (r) => r["entity_id"] == "compteur_d_eau")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

J’aimerais faire un histogramme journalier de mon consommation d’eau.
Je ne sais pas comment mettre cela en place…

Merci de votre aide! :slight_smile:

Bonjour,
En ce qui me concerne, j’ai une question par rapport à ceci :
Je cite SNoof :

Du coup, j’ai tout changé, mes datas de télérelève sont extraites par nodered, puis envoyées direct dans influxdb. Et HA, récupère quelques unes de ces valeurs pour les afficher sur lovelace. Mais il n’est pas en charge de transmettre quoi que ce soit.

Si j’ai bien compris, dans ce cas, il ne faut pas inclure influxdb dans le fichier configuration.yaml mais uniquement envoyer les données que l’on souhaite stocker à partir de nodered. On utilise le fichier configuration.yaml uniquement pour définir les sensors contenant les données qu’on veut récupérer dans lovelace. C’est bien correct ?
Je vous remercie.
Pascal

Super cool ton premier jet @Pulpy-Luke,

Pour ma part j’ai du mettre en pause mon travail, je recommence seulement donc il faut déjà que je raccroche les wagons de mon propre travail…

Du coup tu as réussi à extraire les min, max, average des données sur la v2.0 ? J’ai pas compris ton « Édit » indiquant la v1. 8

J’ai mis le sujet de coté aussi… j’aime pas les bases de données à la base :wink:
En fait, en passant par chronograph, on peut faire de la syntaxe v1 ou v2… J’ai pondu le truc en v2 mais la base influxbd (l’addon HA est en v1)… et donc forcement l’écriture en base plante. Refaire ça en V1… :unamused:.
Techniquement le meilleur choix technique serait de supprimer la dépendance HA (v1) et faire mon propre container influxdb (v2)… et reintégrer les dashboards grafana (container maison aussi) par la suite … Pas motivé pour le coup

OK merci.

Pour ma part je vais persister en InfluxDB v2 hors de HA pour justement ne pas avoir de dépendance avec celui-ci. J’ai la tête dure… :stuck_out_tongue_winking_eye:

Même si je crois en HA, j’ai envie d’avoir une solution robuste et généraliste concernant l’archivage des données au cas où. (compatible tout système domotique).

Pour le moment je relis mes précédents échanges alors tu vois… Je n’ai malheureusement pas encore le temps de véritablement continuer alors j’en profite pour faire un coucou à la communauté.

Je ne désespère pas d’avoir un jour le temps de finir mais comme je n’ai jamais fais de base de données jusque là, je pars de zéro… :grin: Enfin comme on dit, avec le temps, tous s’apprend !

1 « J'aime »

Super tuto merci a toi.

Bon, j’ai joué aujourd’hui :

  • VM toute neuve
  • Docker-compose avec influxDBv2 + Chronograf + Telegraph + Kapacitor …

Bilan :

  • Telegraf et Kapacitor ne fonctionnent pas du tout avec le mécanisme d’authentication influxDBv2 :unamused:
  • Chronograf, marchote … Mais toute la partie admin déportée de influxDBv2 utilise l’api influxDBv1 … du coup ça sert à rien :thinking:

Bref… c’est pour l’instant pas beaucoup plus exploitable

Docker-compose.yaml

version: '3'
########################################################
networks:
  influxdb:
    name: ${COMPOSE_PROJECT_NAME}
########################################################
services:
  influxdb:
    image: influxdb:latest
    hostname: influxdb
    restart: unless-stopped
    # expose:
    #   - "8083"
    #   - "8086"
    #   - "8090"
    #   - "2003"
    ports: 
      - 8086:8086
    volumes:
      - ./data/influxdb:/var/lib/influxdb2
      - ./config/influxdb/:/etc/influxdb2
    environment:
      - TIMEZONE=Europe/Paris
      - INFLUXD_REPORTING_DISABLED=true
      - DOCKER_INFLUXDB_INIT_MODE=setup
      # - DOCKER_INFLUXDB_INIT_MODE=upgrade
      - DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_ADMIN_USERNAME} 
      - DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_ADMIN_PASSWORD}
      - INFLUXDB_ADMIN_ENABLED=true
      - DOCKER_INFLUXDB_INIT_ORG=${INFLUXDB_ORG}
      - DOCKER_INFLUXDB_INIT_BUCKET=${INFLUXDB_BUCKET}
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_ADMIN_TOKEN}
      - DOCKER_INFLUXDB_INIT_RETENTION=1w
      - INFLUXDB_HTTP_AUTH_ENABLED=true
    networks:
      - influxdb

  chronograf:
    image: chronograf:latest
    hostname: chronograf
    restart: unless-stopped
    ports:
      - 8888:8888
    volumes:
      - ./data/chronograf:/var/lib/chronograf
    command: ["chronograf", "--influxdb-url=http://influxdb:8086"]
    depends_on:
      - influxdb
    environment:
      - TIMEZONE=Europe/Paris
      - INFLUXDB_URL=http://influxdb:8086
      - INFLUXDB_USERNAME=${INFLUXDB_ADMIN_USERNAME}
      - INFLUXDB_PASSWORD=${INFLUXDB_ADMIN_PASSWORD}
    networks:
      - influxdb

le .env

COMPOSE_PROJECT_NAME=tick
INFLUXDB_ADMIN_USERNAME=admin 
INFLUXDB_ADMIN_PASSWORD=MUJsa4bYAVMheXRw
INFLUXDB_ORG=myorg
INFLUXDB_BUCKET=homeassistantDB
INFLUXDB_ADMIN_TOKEN=0_405Sz4xqcwOylqAG1tZfNzfL4yidgw-1SNvydiH3gT8QVqcewccoabAIoNgBrvY9HhmoOjHkWrwq8UUhdc3w==

C’est pas propre propre mais bon

Salut @Pulpy-Luke ,

As-tu vérifié concernant ton code si le range des données était bien respecté ?

Pour ma part je viens de m’apercevoir que le range ne s’applique pas à la colonne « _time », il faut apparemment utiliser un filtre sur cette dernière pour que cela fonctionne. La colonne « _time » correspond au timestamp que je précise lors de l’écriture via nodered.

Par exemple ci-dessous j’ai sélectionné les données d’aujourd’hui et pourtant cela me retourne une valeur du jour précédent (en jaune).

A creuser donc…

Les min max moy que j’avais était cohérents sur la journée en cours, mais c’est tout à fait possible que ça ne soit pas bon partout. Je ne suis focalisé dans un premier temps sur l’insertion dans la table downsampled… Donc j’ai pas vérifié si les données de départ étaient parfaitement alignées

J’ai trouvé un exemple dans la doc influxDB v2.1 qui est proche de mon besoin, j’espère pouvoir essayer ça ce soir. :yawning_face:

=> https://docs.influxdata.com/influxdb/v2.1/process-data/common-tasks/calculate_weekly_mean/

Je te laisse tester… Le to(bucket) c’est à mon avis le même point bloquant si la base n’est pas en v2

Salut,

De mémoire Chronograf est déprécié au profit de Data explorer. => Query in Data Explorer | InfluxDB OSS 2.1 Documentation
Telegraf fonctionne logiquement très bien avec influx v2 => qu’as tu rencontré comme souci entre telegraf et influxdb v2 ?
Le plugin output de telegraf pour écrire dans influx supporte bien le token => telegraf/README.md at release-1.21 · influxdata/telegraf · GitHub
Il faut bien penser à prendre le plugin outputs.influxdb_v2

Pour Kapacitor, il n’est plus à mettre en plus, il est intégré dans influxdb2.

:warning: je suis pas un expert influxv2, c’est de mémoire ce que j’avais retenu quand j’ai étudié une migration pour mon influx (je ne l’ai toujours pas faite !)

1 « J'aime »

Merci @SNoof pour ces infos.
De mon coté, j’ai juste tenté de refaire la stack à l’image de la v1 pour faciliter la bascule…

  • chronograf, c’est ce que j’ai utilisé pour jouer avec le downsampling, qui au passage permettait d’unifier la partie admin de influxdb directement, du coup je vais regarder Data Explorer.
  • coté config de telegraf j’avais bien fait le job de la config avec outputs en v2… mais j’avais toujours un souci pour l’ajouter via chronograf. A rester, j’ai tj la config
  • kapacitor, j’ai vu que les CQ n’étaient pas prise en charge d’où la tentative d’ajout. Bon de toute façon en principe on passe par du flux maintenant

Du coup, Influxdbv2 et c’est tout ?

Data explorer EST dans influxv2 :wink:
image

J’ai monté un influxv2 à l’instant pour voir au niveau de telegraf :slight_smile:
Je te dis si j’y arrive :stuck_out_tongue:

1 « J'aime »

Oui je viens d’ouvrir la doc :wink:

D’ailleurs il me semble que la config telegraf peut etre stockée dans influx avec la V2.
Je tente à l’ancienne quand même :slight_smile:

Ah ben tout simple en fait, dans influxv2, tu vas dans Datas → Telegraf → Influxdb output plugin et zou ta conf est faite ! Manque le token quoi.

1 « J'aime »

J’ai pê bien laissé outputs en V1 actif :wink:


Ah ben oui… :slight_smile:
Franchement la v2 fait envie, mon plus gros souci c’est migrer les datas que j’ai déjà :confounded:
Mais faut vraiment que je m’y mette !

Et en version composer

  telegraf:
    image: telegraf:latest
    hostname: telegraf
    depends_on:
      - influxdb
    restart: unless-stopped
    tty: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./config/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf
    networks:
      - influxdb