Création sensor a partir d'une base Mariadb externe

Bonjour,
je souhaite créer un sensor à partir d’une requête SQL dans une base MariaDB.

.

Avec cette requête, j’obtiens la dernière valeur présente dans ma table.
Mais je souhaite récupérer l’intégralité de mes valeurs pour ensuite utilisé une apexcharts-card dans mon Dashboard.

que dois-je ajouter à ma requête pour que cela fonctionne?

Merci d’avance

Renseigner votre problème

Ma configuration

System Information

version core-2024.2.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.1
os_name Linux
os_version 6.1.74-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4813
Installed Version 1.34.0
Stage running
Available Repositories 1398
Downloaded Repositories 33
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 11.5
update_channel stable
supervisor_version supervisor-2024.01.1
agent_version 1.6.0
docker_version 24.0.7
disk_total 62.3 GB
disk_used 28.4 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.0), Advanced SSH & Web Terminal (17.1.0), Let’s Encrypt (5.0.15), Samba Backup (5.2.0), Gazpar2mqtt (0.8.2-5), Home Assistant Google Drive Backup (0.112.1), File editor (5.8.0), MQTT Explorer (browser-1.0.1), Studio Code Server (5.15.0), Frigate (0.13.1), MetersToHA (dev), phpMyAdmin (0.9.1)
Dashboards
dashboards 3
resources 16
views 18
mode storage
MiWifi
version 3.0.0
192.168.1.3 () unreachable
Recorder
oldest_recorder_run 6 février 2024 à 09:54
current_recorder_run 16 février 2024 à 12:25
estimated_db_size 151.03 MiB
database_engine mysql
database_version 10.11.5
Sonoff
version 3.5.4 (a4a8c5f)
cloud_online 0 / 1
local_online 0 / 0
Xiaomi Miot Auto
component_version 0.7.15
can_reach_server ok
can_reach_spec ok
logged_accounts 1
total_devices 9

Bonjour.

Tu utilises quoi comme intégration pour le faire ?

Il me semble qu’avec le SQL sensor, on ne peut récupérer qu’une seule ligne.

Du coup il faudrait serialiser en Json toutes tes données dans un unique champ et une unique ligne.

C’est un peu bourrin mais ça devrait le faire.

Sous MariaDB ça devrait être faisable.

j’utilise cette intégration disponible directement dans le catalogue des intégrations.

Cela ne me donne pas son nom, si c’est SQL sensor, alors il me semble que tu ne puisses pas récupérer plusieurs lignes.

Il s’agit effectivement de SQL sensor et oui on ne peut récupère qu’une seule ligne.
Je viens de voir que dans Hacs, il y a sql_json.
Je vais essayer de ce côté là

Donc en utilisant les méthodes JSON de Mariadb, ca devrait également le faire avec le SQL sensor.

Il y a un exemple ici :

JSON_OBJECTAGG - MariaDB Knowledge Base : JSON_OBJECTAGG

J’ai créer mon fichier .json via Node-red et je l’envoi sur MQTT.

par contre, je n’arrive pas a créer mon sensor.

- platform: mqtt
state_topic: "energie/conso_jour"
name: "energie_elec_conso_t"
value_template: '{{ value_json [conso] }}'
unit_of_measurement: "Kw/h"

voici ce qu’il y a dans MQTT

Ton sensor doit récupérer quoi ?

Je souhaite que mon sensor « conso » ai pour historique chaque valeur de mon .json.

Si tu peux ajouter le total du json dans un attribut d’un sensor HA tu peut utiliser Apexcharts, il ya des examples pour p.e. weather forecast

En tout cas, si tu essaies de mettre le contenu de ton payload dans l’état de ton sensor, tu vas être bloqué.

    value_template: "{{ (value_json|string) }}"

Tu ne peux pas avoir un état de plus de 255 caractères.

Il faut passer par les attributs comme mentionné plus haut en ajoutant :

        json_attributes_topic: energie/conso_jour

Et tu pourras récupérer ce contenu par la suite.

A vérifier s’il n’existe pas une taille maximale.

J’ai écris ceci mais cela n’a pas l’air de fonctionner

- platform: mqtt
  state_topic: "energie/conso_jour"
  name: "energie_elec_conso_t"
  unit_of_measurement: "Kw/h"
  json_attributes_topic: energie/conso_jour

Qu’est-ce qui ne va pas ? Tu as des messages dans les logs ?

Je ne sais plus quelle solutoin to cherche mais pour avoir ton liste dans HA il faut avoir qq correcte dans MQTT
Car j’ai pas des mqtt pareil…test:

Sensor:

mqtt:
  sensor:

    - name: "TestJsonAttr"
      state_topic: "iotlink/workgroup/laptop-g1p5grcn/test"
      value_template: "OK"
      json_attributes_topic: "iotlink/workgroup/laptop-g1p5grcn/test"

Et avec ce sensor tu peux utiliser Apexcharts