Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour a tous

 

Je suis en cour de mise en place de grafana

Il est fonctionnel sur mon serveur

Le plugin vers la base de données mysql est fonctionnel et pointe sur domocharts

Pour les graphique simple cela ne pose pas trop de problème (exemple pour les consommation d'eau journalière c'est OK)

eau graphana.png

Mais pour les graphiques multiple cela se complique

Par exemple je voudrais un seul graphique pour toutes les T°, mais je n'y arrive pas

Comment sélectionner l'ID d'un device et sa valeur dans un graphique?

 

Merci d'avance pour votre aide

 

Modifié par flacon030
Posté(e)

Franchement c'est pas évident à configurer Grafana.... j'ai conservé les pages PHP de Domocharts, parce que je n'ai pas réussi à tout reproduire dans Grafana.
Du coup j'utilise les 2, et Grafana pour des graphiques un peu spécifiques que je n'arrive pas à produire avec Domocharts (exemple : comparaison de la consommation électrique en fonction de la température extérieure)

 

ça fait longtemps que je n'y ai pas touché cela dit... il faudrait que je me replonge dedans.

 

Je pense que ce que tu veux faire est réalisable.

De mémoire, il est possible de créer une variable, qui sera l'ID du module à afficher, à sélectionner dans une liste déroulante.

Ensuite, le graph sera automatiquement mis à jour avec le bon ID.

Posté(e) (modifié)

Merci pour ce début d'information

car j'avais vu cela et cela semble prometteur

Le tous sous HC3

Screenshot 2021-06-16 at 14.15.56.png

Modifié par flacon030
Posté(e)

Ah oui je l'avais vu passer ce dashboard, là c'est niveau Master++ :13:

 

Quand j'avais joué avec, j'ai pas fait des beaux tableaux, mais juste des trucs utiles, l'idée c'était de sortir des infos que je pouvais pas obtenir avec le Domocharts de base. Pourtant on peut faire bien plus, il y a des tonnes de données en base, il faut maintenant savoir les traiter.

 

Posté(e) (modifié)

J'avance un peut

En fait je viens d'avoir un premier contacte avec Julien92130 l'auteur du gaph ci dessus

il m'a donner un liens pour plus d'informations

https://forum.fibaro.com/topic/47604-howto-hc2-grafana-influxdb/

J'ai récupérer sa configuration sous grafana

https://grafana.com/grafana/dashboards/13626

J'ai installer influxdb sur mon NAS qnap dans un container station

il me reste a configurer a présent le tous

Il me manque juste la scène sous HC3 qui permet d'envoyer les données de la HC3 vers influxdb

Modifié par flacon030
Posté(e)

Ah tu vas mettre les données dans InfluxDB ?

Tu vas voir, c'est assez compliqué... perso je n'ai pas aimé, on n'a pas une bonne maitrise sur la conservation des données à long terme, de ce coté là je préfère rester en SQL, que je maitrise relativement bien.

Posté(e)

Je ne sais pas encore

J'explore les différentes pistes proposer, je ne connais pas encore inluxdb, mais effectivement cela me semble plus compliqué que mysql a la première approche

 

Posté(e)

En réalité, InfluxDB est conçu pour l'ingestion massive de données, exactement ce qu'on fait avec la domotique.

En réalité il est même plus adapté que MySQL pour cet usage.

Mais je trouve que sa configuration est complexe, la manipulation des données peu aisée, enfin surtout l'aspect historisation à long terme.

 

C'est pour cela que je préfère SQL, je connais le langage depuis des années, je fais vraiment ce que je veux de mes données, et j'ai trouvé les bonnes optimisations (clés, index, etc) pour conserver de bonnes performances même avec des millions de lignes dans la base de données.
Rien que pour la Téléinformation, j'ai plus de 10 ans d'historique (depuis qu'on habite dans la maison), et ça tourne comme une horloge.

Donc pas de raison de changer en ce qui me concerne.

Et vu que Grafana peut aller piocher les données aussi bien dans une base SQL que InfluxDB, j'ai fait mon choix :)

 

Après les beaux tableaux de bords sous Grafana, ça n'a rien à voir avec la base choisie (SQL, InfluxDB, ou autre), c'est juste de la manipulation dans Grafana. On trouve pas mal de tutos et d'aide sur Internet, il faut pas mal fouiller, car là aussi, c'est loin d'être simple de prime abord.

 

 

  • Like 1
Posté(e)

Exemple, là c'est pas du Grafana, mais du PHP + JavaScript, mais c'est juste pour montrer que SQL permet de manipuler des données sur de longues périodes (ici 12 années), et les performances sont excellentes, les graphs sont générés dans la seconde :

 

image.thumb.png.9668ce9e9700e8f60186829fc4912353.png

 

 

Et sous Grafana j'avais fait ça, un tableau de bord de la répartition des consommations électrique par catégorie, les données sont issues de la base SQL DomoCharts :

 

large.Screenshot-DomoCharts-Grafana-Consommation-Miniature.png.20367a6d7a4cc48c4e88a2db2809681d.png

 

  • 1 an après...
Posté(e) (modifié)

n cela avance un peut

Je viens de me mettre sérieusement a grafana, et les premiers graphiques sont en place

Reste a mettre tous cela bien en page

J'utilise finalement influxdb qui est bien plus simple a utiliser sous grafana a mon gout

 

 

 

409520584_Sanstitre.thumb.jpg.ab8548b10306e9e9194459100457e052.jpg

Modifié par flacon030
  • Like 2
Posté(e) (modifié)

@lazer

 

Bonjour

serai t’il possible d'avoir le code permettant d'avoir ce graphique

Je cherche a faire ce type de graphique pour le linky-fronius-batterie

Merci

large.photovoltaique-graph-soutirage-autoconsommation-injection-2023-09.png.18026596035410159e12e6d537ee87e2.png

Modifié par flacon030
Posté(e)

OK, mais ça ne t'avancera pas à grand chose... c'est une grosse requête SQL bien balèze qui va chercher l'information dans différentes tables de ma propre base de données.... il y a du DomoCharts, mais pas uniquement.
Ce qui m'a donné du fil à retordre, c'est la prise en compte de la couleur des jours TEMPO.

SELECT
	DATE_FORMAT(Jour, $myPeriode) AS "Période",
	SUM(Production) AS Production,
	SUM(Soutirage) AS Soutirage,
	SUM(Injection) AS Injection,
	SUM(Production) - SUM(Injection) AS "Autoconsommé",
	CAST((SUM(Production) - SUM(Injection)) / SUM(Production) * 100 AS DECIMAL(5,2)) AS "Taux",
	SUM((Production - Injection) * Tarif_kWh_soutirage) AS "Économie",
	SUM(Injection * Tarif_kWh_injection) AS "Vente"
FROM (
	SELECT
		energy_day.date AS "Jour",
		SUM(energy_day.sum_value) AS "Production",
		CAST((COALESCE(teleinfo.BASE, 0) + COALESCE(teleinfo.HCHP, 0) + COALESCE(teleinfo.HCHC, 0) + COALESCE(teleinfo.HCJB, 0) + COALESCE(teleinfo.HPJB, 0) + COALESCE(teleinfo.HCJW, 0) + COALESCE(teleinfo.HPJW, 0) + COALESCE(teleinfo.HCJR, 0) + COALESCE(teleinfo.HPJR, 0)) / 1000 AS DECIMAL(6,3)) AS "Soutirage",
		CAST(COALESCE(EAIT, 0) / 1000 AS DECIMAL(6,3)) AS "Injection",
		CASE
			WHEN x.Tarif_Jour = "TH"   THEN tarif.kWh_Base
			WHEN x.Tarif_Jour = "BASE" THEN tarif.kWh_Base
			WHEN x.Tarif_Jour = "HP"   THEN tarif.kWh_HP
			WHEN x.Tarif_Jour = "HPJB" THEN tarif.kWh_HPJB
			WHEN x.Tarif_Jour = "HPJW" THEN tarif.kWh_HPJW
			WHEN x.Tarif_Jour = "HPJR" THEN tarif.kWh_HPJR
			ELSE 0
		END AS "Tarif_kWh_soutirage",
		tarif.kWh_EAIT AS "Tarif_kWh_injection"
	FROM
		domocharts_energy_day energy_day
	LEFT JOIN domocharts_device device ON energy_day.device_id = device.id
	LEFT JOIN teleinfo_day teleinfo ON energy_day.date = teleinfo.rec_date
	LEFT JOIN teleinfo_tarif tarif ON teleinfo.tarif_id = tarif.id
	LEFT JOIN (
		SELECT a.rec_date AS "rec_date", a.PTEC AS "Tarif_Jour"
		FROM (SELECT rec_date, PTEC, COUNT(PTEC) as "Compte" FROM teleinfo WHERE $__timeFilter(rec_date) GROUP BY rec_date, PTEC) a
		LEFT OUTER JOIN (SELECT rec_date, COUNT(PTEC) as "Compte" FROM teleinfo WHERE $__timeFilter(rec_date) GROUP BY rec_date, PTEC) b
		ON a.rec_date = b.rec_date AND a.Compte < b.Compte
		WHERE b.rec_date IS NULL
		ORDER BY a.rec_date
		) x ON energy_day.date = x.rec_date
	WHERE
		$__timeFilter(energy_day.date)
		AND energy_day.device_id IN (669, 658)
	GROUP BY Jour
) t
GROUP BY
	Période
ORDER BY
	Période

 

Elle permet de générer les données présentées dans le tableau de gauche.

Puis tous les graphiques sont affichées à partir de ce tableau, afin de ne pas multiplier les requêtes inutilement (cette seule requête prend 1 à 2 secondes pour s'exécuter, ce qui est déjà assez long)

Car c'est ça qui est bien dans Grafana, on peut réutiliser des données déjà présentes sur le dashboard sans avoir besoin d'aller les rechercher à la source.

 

image.thumb.png.7fd80c30c6305d7b0c13b9c82ef77ad1.png

 

Un autre truc sympa, on le voit tout en haut à gauche, un petit sélecteur permet de choisir la période de regroupement des données, je peux ainsi afficher par jour, semaine, mois, année, et même total :

 

image.png.6ab018ff97b7c4c0f7ed1923fbfa7f69.png

 

Par exemple avec le détail par jour, ça produit un tableau avec des centaines de lignes, et un graph très (trop ?) détaillé :

 

image.thumb.png.c8aa80f85548587b931055a5603d9ca3.png

 

Tout cela grace à la variable $myPeriode et au GROUP BY qu'on voit dans la requête SQL.

 

 

Si ça peut te donner des idées... :)

 

Posté(e) (modifié)

Petite mise a jour du soir

Je viens d'installer sur mon qnap une virtualiseur dans le quel j'ai placer home assistant OS avec les plugins de mon onduleur fronius pour avoir les informations batterie

J'en ai profite pour y placer un influxdb et un grafana

résultat j'ai enfin toutes les données de mes équipement solaire

A voir si je ne gérerais pas aussi mon unifi et mon nas QNAP

grafana.jpg

Modifié par flacon030
  • Like 1
  • 1 mois après...
×
×
  • Créer...