Parser une info depuis une base mysql
Parser une info depuis une base mysql
Bonjoir !
Dans mon entreprise : Mettre le niveau d'essence de mon reservoir de voiture dans domoticz en % j'ai besoin d'un peu d'aide car je galere.
J'ai mis en place un serveur qui reçoit les logs d'un app android.
Ce serveur crée une belle database Mysql,
Ce serveur est accessible depuis une page web, sur la page web j'ai la possibilité d'exporter : en Json ou CSV
Je souhaite recupérer une seul valeur de la derniere ligne ecrite (en w2) sur l'image ci dessous (tiré d'un export CSV).
Cette valeur va ensuite etre envoyer dans un device % dans domoticz (pour cette partie pas de probleme, j'ai déja des exemples a suivre).
Que vaut'il mieux? lire direcetment dans la database une fois par jour ? exporter en json ou en csv et parser depuis le fichier telecharger ?
J'ai un super exemple sous android fourni par neutrino ici : viewtopic.php?f=16&t=859&start=20
Est ce qu'il y a une chance d'avoir un equivalent sous Linux ?
Dans mon entreprise : Mettre le niveau d'essence de mon reservoir de voiture dans domoticz en % j'ai besoin d'un peu d'aide car je galere.
J'ai mis en place un serveur qui reçoit les logs d'un app android.
Ce serveur crée une belle database Mysql,
Ce serveur est accessible depuis une page web, sur la page web j'ai la possibilité d'exporter : en Json ou CSV
Je souhaite recupérer une seul valeur de la derniere ligne ecrite (en w2) sur l'image ci dessous (tiré d'un export CSV).
Cette valeur va ensuite etre envoyer dans un device % dans domoticz (pour cette partie pas de probleme, j'ai déja des exemples a suivre).
Que vaut'il mieux? lire direcetment dans la database une fois par jour ? exporter en json ou en csv et parser depuis le fichier telecharger ?
J'ai un super exemple sous android fourni par neutrino ici : viewtopic.php?f=16&t=859&start=20
Est ce qu'il y a une chance d'avoir un equivalent sous Linux ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr
Re: Parser une info dans base mysql
Tu veux faire quoi ? Extraire la donnée a partir du serveur et/ou d'une machine ayant accès a cette base ou a partir d'un mobile ?
Si c'est la 1ere réponse, il "suffit" d'installer le client mysql (sudo apt-get install mysql devrait le faire) et d'interroger la base: mysql --host < hostname du serveur> --user < db user> --password<pwd> <nom database> "requete sql", ça va afficher le résultat de la requête (l'option -N peut t'intéresser pour supprimer les entêtes).
Pour ta requête, ça dépend un peu de ta base et sa structure ... c'est quoi ton w2 ? la dernière valeur d'une table ? le kff126b le nom de la colonne ? Quel critère pour dire "dernière ligne", la colonne time ? Si oui qque chose dans le genre "SELECT kff126b FROM <table name> ORDER BY time DESC LIMIT 1" te sortira la valeur de la colonne en question de la "dernière" ligne", (en fait on trie par time décroissant et on ne garde que la 1ere ligne)
Si c'est la 1ere réponse, il "suffit" d'installer le client mysql (sudo apt-get install mysql devrait le faire) et d'interroger la base: mysql --host < hostname du serveur> --user < db user> --password<pwd> <nom database> "requete sql", ça va afficher le résultat de la requête (l'option -N peut t'intéresser pour supprimer les entêtes).
Pour ta requête, ça dépend un peu de ta base et sa structure ... c'est quoi ton w2 ? la dernière valeur d'une table ? le kff126b le nom de la colonne ? Quel critère pour dire "dernière ligne", la colonne time ? Si oui qque chose dans le genre "SELECT kff126b FROM <table name> ORDER BY time DESC LIMIT 1" te sortira la valeur de la colonne en question de la "dernière" ligne", (en fait on trie par time décroissant et on ne garde que la 1ere ligne)
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Parser une info depuis une base mysql
L'export en JSON peut être appelé avec une commande curl ?
Elle affiche quoi en retour ?
Elle affiche quoi en retour ?
Re: Parser une info dans base mysql
Extraire la donnée qui est sur le serveur, depuis le meme serveur, pour l'envoyer vers domoticz qui est sur une autre machine;rimram31 a écrit :Tu veux faire quoi ? Extraire la donnée a partir du serveur et/ou d'une machine ayant accès a cette base ou a partir d'un mobile ?
La ligne 2 est la derniere entrée dans cette base de donnée, la colonne W c'est le % d'essence restant dans mon reservoir.rimram31 a écrit :Pour ta requête, ça dépend un peu de ta base et sa structure ... c'est quoi ton w2 ? la dernière valeur d'une table ? le kff126b le nom de la colonne ? Quel critère pour dire "dernière ligne", la colonne time ? Si oui qque chose dans le genre "SELECT kff126b FROM <table name> ORDER BY time DESC LIMIT 1" te sortira la valeur de la colonne en question de la "dernière" ligne", (en fait on trie par time décroissant et on ne garde que la 1ere ligne)
Oui time est le critere qui dit que c'est la derniere ligne donc je vais essayer :
mysql --host < localhost> --user < db user> --password<pwd> <nom database> "SELECT kff126b FROM <table name> ORDER BY time DESC LIMIT 1"
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr
Re: Parser une info depuis une base mysql
En fait l'export en json telecharge un fichier uniquement de la derniere session, mais je dois le sélectionner a la mainNeutrino a écrit :L'export en JSON peut être appelé avec une commande curl ?
Elle affiche quoi en retour ?
Voici deux exemples de lien de telechargement :
Code : Tout sélectionner
http://192.168.0.37/torque/export.php?sid=1448384522302&filetype=json
http://192.168.0.37/torque/export.php?sid=1448383446493&filetype=jsonDe quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr
Re: Parser une info dans base mysql
Le plus simple est d'exécuter sur le serveur ou tourne la base (peut-être soucis de droits sinon). Si tu es sur le serveur, tu n'as pas besoin de "--hostname". Sert toi au besoin de man mysql pour les options, tu peux déjà exécuter un mysql (mysql --user=<...> -p <database>) pour lancer une session (s'affiche un ">", quit/exit pour sortir je sais plusdeennoo a écrit :...Oui time est le critere qui dit que c'est la derniere ligne donc je vais essayer :
mysql --host < localhost> --user < db user> --password<pwd> <nom database> "SELECT kff126b FROM <table name> ORDER BY time DESC LIMIT 1"
rem: en session, une requête sql se termine par un ; Quelques commandes utiles: "SHOW TABLES;" pour avoir la liste des tables de la database, "DESC <table name>;" pour avoir la structure d'une table, "SELECT * FROM <table name> LIMIT 10;" (10 pour exemple) pour afficher quelques éléments ... (le '*' veut dire toutes les colonnes).
Pour l'essentiel pour extraire des données: SELECT <liste de champs/colonnes séparés par des ,> FROM <table> [WHERE <condition> ... AND/OR ...] [ORDER BY ... ASC/DESC] [LIMIT ...] les [] pour indiquer que c'est en option.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Parser une info depuis une base mysql
On abandonne le JSON.
La solution de rimram31 me parait vraiment plus pertinente dans ce cas.
La solution de rimram31 me parait vraiment plus pertinente dans ce cas.
Re: Parser une info depuis une base mysql
Oui,oui un bon select et c'est classéNeutrino a écrit :On abandonne le JSON.
La solution de rimram31 me parait vraiment plus pertinente dans ce cas.
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: Parser une info depuis une base mysql
Du coup je m'aperçois que j'ai pas tout bon ... désolé, la requete SQL est passée via l'option -e (ou en input), essaie plutôt:
(quote inverse en shell) ou quelque chose dans le genre.
Code : Tout sélectionner
dbname="..."
user="..."
pwd="..."
resultat=`mysql -u $user -p$pwd $dbname -N -e "SELECT ..."`Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Parser une info depuis une base mysql
En php ? Python ? Lua ?
Ce que vous me donner je peux essaye en ligne de commande ?
Je resterais ce soir, aujourd'hui c'est journée parents a la crèche, les petits comprennent rien a linux...pas assez d image.
Ce que vous me donner je peux essaye en ligne de commande ?
Je resterais ce soir, aujourd'hui c'est journée parents a la crèche, les petits comprennent rien a linux...pas assez d image.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr