- Modifié
Salut tous,
encore avec mes trucs chelou. J'explique :
J'ai une station de mesure sur un site en milieu isolé et alimentation autonome, qui a tout un tas de périphérique qui monitoring sont état de santé (notamment solaire. Non rien à voir avec la vitamine D).
Le périphérique "central" qui gère toutes les données de SoH (state of Health) envoie tout ça sur un serveur dédié du fabricant. Le périphérique en question a un code en python mais il ne faut pas le modifier, d'une part parce que je suis une bugne en python et d'autre part, parce qu'il doit faire des mises à jour régulière donc je risque de perdre telle ou telle fonctionnalité.
Toutes les données collectées par le serveur peuvent être affichées superbement via des widgets de graphes via page web, c'est très chouette.
Mais je dois intégrer les valeurs des graphes sur un outil NagiOS qui gère déjà le reste de nos stations (un paquet).
Heureusement le serveur a un API qui parle en JSON, il suffit donc de faire la bonne requête pour avoir les valeurs.
J'ai effectué pas mal de test de requêtes avant de trouver la bonne "combinaison", via un site de POST JSON string.
Maintenant que j'ai la bonne combinaison, j'ai essayé de faire un fichier de résultat de requête avec un CURL.
Puis du fichier résultat du CURL, je voulais réordonner un peu tout ça pour que ça soit utilisable facilement par le plugin NagiOS.
Donc voici la requête curl que j'effectue :
Et donc le soucis c'est que tout ça sort sur la même ligne, c'est donc très chiant à utiliser sans faire des bricolages.
Mais je vois pas comment sortir le résultat du curl avec des sauts de ligne, un autre format de sortie est en json donc avec des indentations de partout, c'est pas mieux.
Je pensais faire du awk ensuite pour retirer de tout ça un beau tableau mais je sais pas quelle forme adopter. je voudrais lui demander de ne saisir que les valeur qui sont entre "[" et "]" et avec une virgule au milieu.
Vous auriez une idée ?
encore avec mes trucs chelou. J'explique :
J'ai une station de mesure sur un site en milieu isolé et alimentation autonome, qui a tout un tas de périphérique qui monitoring sont état de santé (notamment solaire. Non rien à voir avec la vitamine D).
Le périphérique "central" qui gère toutes les données de SoH (state of Health) envoie tout ça sur un serveur dédié du fabricant. Le périphérique en question a un code en python mais il ne faut pas le modifier, d'une part parce que je suis une bugne en python et d'autre part, parce qu'il doit faire des mises à jour régulière donc je risque de perdre telle ou telle fonctionnalité.
Toutes les données collectées par le serveur peuvent être affichées superbement via des widgets de graphes via page web, c'est très chouette.
Mais je dois intégrer les valeurs des graphes sur un outil NagiOS qui gère déjà le reste de nos stations (un paquet).
Heureusement le serveur a un API qui parle en JSON, il suffit donc de faire la bonne requête pour avoir les valeurs.
J'ai effectué pas mal de test de requêtes avant de trouver la bonne "combinaison", via un site de POST JSON string.
Maintenant que j'ai la bonne combinaison, j'ai essayé de faire un fichier de résultat de requête avec un CURL.
Puis du fichier résultat du CURL, je voulais réordonner un peu tout ça pour que ça soit utilisable facilement par le plugin NagiOS.
Donc voici la requête curl que j'effectue :
HP-EliteBook-820-G1:~/$ curl -o test.csv -X GET -H "X-Authorization: Bearer {mon_token}" "https://vrmapi.victronenergy.com/v2/installations/{mon_user_id}/widgets/Graph?attributeCodes[]=V&instance=258&start=1587160800&end=1587247200&interval=15mins"
Et le résultat du fichier sortie "test.csv"
HP-EliteBook-820-G1:~/$ more test.csv
{"success":true,"records":{"data":{"47":[[1587160856,12.9],[1587161752,12.88],[1587162648,12.87],[1587163544,12.87],[1587164440,12.86],[1587165392,12.85],[1587166232,12.84],[1587167184,12.83],[1587168080,12.82],[1587168976,12.82],[1587169872,12.81]
[...]
[1587242112,12.99],[1587243008,12.97],[1587243904,12.97],[1587244800,12.96],[1587245696,12.95],[1587246592,12.94]]},"meta":{"47":{"code":"V","description":"Voltage","formatValueOnly":"%.2F","formatWithUnit":"%.2F V"}}}}
Note : Vous remarquerez le timestamp format linux.Et donc le soucis c'est que tout ça sort sur la même ligne, c'est donc très chiant à utiliser sans faire des bricolages.
Mais je vois pas comment sortir le résultat du curl avec des sauts de ligne, un autre format de sortie est en json donc avec des indentations de partout, c'est pas mieux.
Je pensais faire du awk ensuite pour retirer de tout ça un beau tableau mais je sais pas quelle forme adopter. je voudrais lui demander de ne saisir que les valeur qui sont entre "[" et "]" et avec une virgule au milieu.
Vous auriez une idée ?