Tableau données JSON ou XML

Bonjour à toutes et tous,
Je viens solliciter votre aide car cela fait plusieurs semaines que je cherche sans trouver mon bonheur.
Voilà ce que je veux faire :
Image1
Pour l’instant j’ai ça :
Image2
C’est moi qui généré le fichier avec les données, donc j’ai le choix de A à Z, par exemple j’ai essayé avec ça :
En JSON

"tableauJeedom":[{"datemois":"23/11/2022","consomoinsHC":12,"consomoinsHP"30,"consomoins":42,"prodmoins":"0,2"},{"datemois":"24/11/2022","consomoinsHC":10,"consomoinsHP"20,"consomoins":60,"prodmoins":"0,6"},{"datemois":"25/11/2022","consomoinsHC":22,"consomoinsHP"90,"consomoins":142,"prodmoins":"10,2"}]

En XML
Image3
D’après mes recherches pour obtenir mon tableau je dois donc utiliser une carte de type : custom:flex-table-card
Jusque là ça va, enfin je crois, voilà mon code :
Image4
Si j’ai toujours bien compris pour récupérer les données je dois passer par REST et c’est là que je ne trouve pas exactement comment ça fonctionne, je cherche des exemples simples mais je ne trouve pas.
J’ai essayé ça entre autres :
Image5
C’est vraiment qu’un exemple car j’en est essayé des dizaines sans succès.

J’aimerais comprendre comment fonctionne cette commande.

Je le rappel, je peux formater le fichier avec les données comme je veux donc si ça vient de là je peux changer, mais la requête attend quoi exactement comme données ?

Merci beaucoup par avance car là je sèche complétement.

Salut,

Dans ton fichier, il n’y a pas de niveau de hierarchie, c’est simplement l’ordre de lecture de haut en bas qui permet de determiner quoi appartient à quel mois

Regarde un exemple JSON correct :

{
  "countyName": "Jura",
  "countyNumber": "39",
  "risks": [
    {
      "pollenName": "Urticacées",
      "level": 0
    },
    {
      "pollenName": "Tilleul",
      "level": 0
    },
    {
      "pollenName": "Saule",
      "level": 0
    },
    {
      "pollenName": "Platane",
      "level": 0
    },
    {
      "pollenName": "Plantain",
      "level": 0
    },
    {
      "pollenName": "Peuplier",
      "level": 0
    },
    {
      "pollenName": "Oseille",
      "level": 0
    },
    {
      "pollenName": "Olivier",
      "level": 0
    },
    {
      "pollenName": "Noisetier",
      "level": 2
    },
    {
      "pollenName": "Graminées",
      "level": 0
    },
    {
      "pollenName": "Frêne",
      "level": 0
    },
    {
      "pollenName": "Cupressacées",
      "level": 0
    },
    {
      "pollenName": "Chêne",
      "level": 0
    },
    {
      "pollenName": "Châtaignier",
      "level": 0
    },
    {
      "pollenName": "Charme",
      "level": 0
    },
    {
      "pollenName": "Bouleau",
      "level": 0
    },
    {
      "pollenName": "Aulne",
      "level": 1
    },
    {
      "pollenName": "Armoise",
      "level": 0
    },
    {
      "pollenName": "Ambroisies",
      "level": 0
    }
  ],
  "riskLevel": 2
}

risks seraient jeedom chez toi
pollenName la date
level ta mesure
etc

@Pulpy-Luke merci infiniment !!
c’est sur ce fichier que je me basé en plus :rofl:
je vais donc essayer comme ça, mais déjà c’est plus claire pour moi
merci encore je dirais si j’y suis arrivé

Regarde aussi ton séparateur de décimal : c’est une virgule, c’est typiquement français… tu ferrais mieux d’avoir un point à la place

et il manque des :
"consomoinsHP"20

EDIT :
en json

{
  "tableauJeedom": [
    {
      "datemois": "23/11/2022",
      "consomoinsHC": 12,
      "consomoinsHP": 30,
      "consomoins": 42,
      "prodmoins": 0.2
    },
    {
      "datemois": "24/11/2022",
      "consomoinsHC": 10,
      "consomoinsHP": 20,
      "consomoins": 60,
      "prodmoins": 0.6
    },
    {
      "datemois": "23/11/2022",
      "consomoinsHC": 12,
      "consomoinsHP": 30,
      "consomoins": 42,
      "prodmoins": 0.2
    },
    {
      "datemois": "25/11/2022",
      "consomoinsHC": 22,
      "consomoinsHP": 90,
      "consomoins": 142,
      "prodmoins": 10.2
    }
  ]
}

en xml

<?xml version="1.0" encoding="UTF-8" ?>
<tableauJeedom>
	<datemois>23/11/2022</datemois>
	<consomoinsHC>12</consomoinsHC>
	<consomoinsHP>30</consomoinsHP>
	<consomoins>42</consomoins>
	<prodmoins>0.2</prodmoins>
</tableauJeedom>
<tableauJeedom>
	<datemois>24/11/2022</datemois>
	<consomoinsHC>10</consomoinsHC>
	<consomoinsHP>20</consomoinsHP>
	<consomoins>60</consomoins>
	<prodmoins>0.6</prodmoins>
</tableauJeedom>
<tableauJeedom>
	<datemois>23/11/2022</datemois>
	<consomoinsHC>12</consomoinsHC>
	<consomoinsHP>30</consomoinsHP>
	<consomoins>42</consomoins>
	<prodmoins>0.2</prodmoins>
</tableauJeedom>
<tableauJeedom>
	<datemois>25/11/2022</datemois>
	<consomoinsHC>22</consomoinsHC>
	<consomoinsHP>90</consomoinsHP>
	<consomoins>142</consomoins>
	<prodmoins>10.2</prodmoins>
</tableauJeedom>

Tu me conseils quoi comme j’ai le choix, JSON ou XML ?

Pour HA json c’est plus facile

1 « J'aime »

Bon, voilà mon fichier tel qu’il est accècible :

{
	"tableauJeedom": [
		{
			"datemois": "06/01/2023",
			"consomoinsHC": 5,
			"consomoinsHP": 35,
			"consomoins": 40,
			"prodmoins": 0.1
		},
		{
			"datemois": "07/01/2023",
			"consomoinsHC": 22,
			"consomoinsHP": 22,
			"consomoins": 44,
			"prodmoins": 0.4
		},
		{
			"datemois": "08/01/2023",
			"consomoinsHC": 14,
			"consomoinsHP": 21,
			"consomoins": 35,
			"prodmoins": 0.1
		},
		{
			"datemois": "09/01/2023",
			"consomoinsHC": 5,
			"consomoinsHP": 36,
			"consomoins": 41,
			"prodmoins": 0.2
		},
		{
			"datemois": "10/01/2023",
			"consomoinsHC": 6,
			"consomoinsHP": 30,
			"consomoins": 36,
			"prodmoins": 0.4
		},
	]
}

tu vois quelque chose de particulier ?

Oui, il ne faut pas de , sur le dernier bloc { }
image

Bonjour @Pulpy-Luke
ah ok faut que je trouve un moyen de le sortir de ma boucle alors
merci :wink:

Tu peux facilement arriver à ton besoin via la carte markdown :

Le marquedown support les tableaux donc si tu a du json en entrée, ça devrait être assez facile , un exemple :

1 « J'aime »

Bonjour @roumano
merci, oui c’est très bien aussi en effet :+1:

Bon je dois passer a côté de quelque chose car j’ai ça :

Bon il y a du mieux !!!


maintenant la carte « flex-table-card »

J’ai enfin réussi :tada: :tada:
je partage le code
pour le Sensor :

# tableau conso-Prod JSON
  - platform: rest
    name: suiviconsoproddate
    unique_id: sensor.suiviconsoproddate
    resource: http://xxx.xxx.xxx.xxx/XML/TableauJeedom.json
    method: GET
    value_template: "OK"
    scan_interval: 60
    json_attributes:
      - tableauJeedom

#------------------------------------------------------------------------------

Pour la carte :

type: custom:flex-table-card
title: Suivi Conso-Prod
max_rows: 5
entities:
  include: sensor.suiviconsoproddate
columns:
  - data: tableauJeedom
    modify: x.datemois
    name: Date
    align: center
  - data: tableauJeedom
    modify: x.consomoinsHP
    name: Conso HP
    suffix: ' KWh'
    align: center
  - data: tableauJeedom
    modify: x.consomoinsHC
    name: Conso HC
    suffix: ' KWh'
    align: center
  - data: tableauJeedom
    modify: x.consomoins
    name: Conso T
    suffix: ' KWh'
    align: center
  - data: tableauJeedom
    modify: x.prodmoins
    name: Prod
    suffix: ' KWh'
    align: center
strict: true
css:
  table+: 'border-collapse: collapse;'
  th+: 'border: 1px solid white;'
  td+: 'border: 1px solid white;'

et le résultat :
Capture
Merci infiniment pour votre aide
très bonne journée

1 « J'aime »

Vu l’arbre, tableauJeedom n’est pas le seul indispensable à avoir ?

je sais pas @Pulpy-Luke pas testé

en effet ça fonctionne sans
- datemois
- consomoinsHC
- consomoinsHP
- consomoins
- prodmoins

merci :wink: