Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 12/01/2015, à 22:01

tiramiseb

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Si la possibilité de les lancer indépendamment n'est pas une nécessité pour toi, je te conseille de tout faire avec un seul script.

Car je peux t'assurer qu'en faisant un second script qui lit un fichier .txt généré par le premier, tu vas être confronté à des problématiques assez complexes, en particulier la nécessité de retrouver où tu t'étais arrêté lors du dernier lancement. Et mine de rien, il y a pas mal de possibilités de se rater avec ça.

Peux-tu montrer ton premier script, qui extrait les lignes qui t'intéressent ?
Il faut à mon avis commencer à partir de là.

Hors ligne

#27 Le 13/01/2015, à 22:25

ssdg

Re : Recuperer un flux d'info sur /dev/ttyUSB1

# est un commentaire. la ligne est ignorée.

h="1"
i="4"
j=$(( $h + $i ))
echo $j 

le résultat est un 5 affiché.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#28 Le 14/01/2015, à 00:41

ssdg

Re : Recuperer un flux d'info sur /dev/ttyUSB1

J'ajoute que j'ai du mal à comprendre pourquoi lire deux fois chaque fichier.
Et si tu as bien vu où étaient lus tes fichiers. en l'occurence, ton C vaudra la dernière valeur du fichier indexHC

considère les do et done comme des parenthèses. (dans d'autres langages, ils sont remplacés par des {} )
Sans vraiment comprendre ton algorithme, j'ai l'impression que tu essaie de lire des fichiers en parallèle, peut être que cette méthode de lecture serait plus utile:
http://mandrivausers.org/index.php?/top … ntry164692
(il y a des choses là dedans que j'ai vu dans d'autres langages, aussi je comprend les lignes, mais je dois admettre que les trucs utilisés sont costauds pour un débutant.)

En gros, il met dans IFS le séparateur d'éléments. (disons) qui sera utilisé pour le découpage en lignes.
IFS=$'\n'
\n veut dire "saut de ligne". Ça dépend de l'OS et comme ce n'est pas des caractères visibles, il faut une méthode pour les écrire avec des caractères visibles ,  sous linux c'est \n, mac \r et windows \r\n. ) le "bazar autour" ça doit activer ce mécanisme.
le lien indique que IFS est une variable que bash utilise pour comme "critère de découpage". exemple:

ssdg@home:~$ IFS=$','
ssdg@home:~$ lines=($(echo A,B,C,D))
ssdg@home:~$ echo ${lines[0]}
A
ssdg@home:~$ echo ${lines[3]}
D

à partir de là, tu dois pouvoir faire quelque chose comme:

IFS=$','
lines=($(echo A,B,C,D,E))
lines2=($(echo F,G,H,I,J))
for ((i=0;i<${#lines[@]};i++)); do
   traitement ${lines[i]} ${lines2[i]};
done

s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#29 Le 14/01/2015, à 11:29

ssdg

Re : Recuperer un flux d'info sur /dev/ttyUSB1

C'est pour ça que je te conseille la méthode du lien. tu peux charger tout le fichier dans des tableaux de lignes(en langage commun, ça ressemble plus à des listes)

A partir de là, tu peux faire un
pour chaque ligne (0 ... nombre de lignes -1)" faire
ligne fichier1=tableau1[numéro de ligne]
ligne fichier2=tableau2[numéro de ligne]
et passer à la ligne suivante.

Je le fait en français plutot qu'en bash histoire de te donner une idée de ce que j'avait écrit.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#30 Le 14/01/2015, à 14:18

ssdg

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Il n'y a qu'une ligne dans le fichier?

J'ai du mal comprendre.

Tu peux fournir ton script(c'est fait), les fichiers d'entrée et le résultat attendu?


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#31 Le 14/01/2015, à 22:33

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Voilà le script qui fonctionne: merci de votre collaboration

#!/bin/bash
# Programme de récupération des donnees contenues dans les trames téléinformation
# shell sous Ubuntu 14.04 LTS
# jph.le.roux@gmail.com
# 11/01/2015
# Remerciements a slc66@free.fr et à [url]http://forum.ubuntu-fr.org[/url] pour le support
# Un programme est lancé précédemment dans un autre terminal 
#  il enregistre en permanence la trame complète dans un fichier tic-trames.jplr
# Ce shell Lit le fichier comportant les trames et extrait les donnees interessantes
# enregistre au format csv les données horodatées
# ce programme est exécute toutes les 10mn pour un suivi énergétique

# --------------------- Pour le tarif bleu avec option HC :
# CONSTANTES - DEBUT
# Corrections d'heures Creuses et Pleines
HC_CORRECTION=68041
HP_CORRECTION=58219
# CONSTANTES - FIN

# Récupérer les consommations (Wh)
HC_COURANTE=$(grep HCHC tic-trames.jplr | tail -1 | awk '{printf("%d", $2);}')
HP_COURANTE=$(grep HCHP tic-trames.jplr | tail -1 | awk '{printf("%d", $2);}')
echo " " 
echo " Lecture des trames émises par le compteur électrique"
echo " (c) jph.le.roux@gmail.com 14/01/2015"
echo " +33 6 84 13 03 88"
echo " "
echo " TARIF BLEU + option HC"
echo " -------------- Consommation HC lue sur le bus TIC     : "$HC_COURANTE" Wh"
echo " -------------- Consommation HP lue sur le bus TIC     : "$HP_COURANTE
# Corriger les valeurs relevées
HC=$((HC_COURANTE + HC_CORRECTION))
HP=$((HP_COURANTE + HP_CORRECTION))
echo " -------------- Correction de l'index HC à apporter    : "$HC_CORRECTION
echo " -------------- Correction de l'index HP à apporter    : "$HP_CORRECTION
echo " -------------- Consommation HC corrigée               : "$HC
echo " -------------- Consommation HP corrigée               : "$HP
echo " "
echo "Enregistrement dans fichier index.csv :"
# Afficher le relevé
#   Format: date JJ/MM/AAAA ; HH:MN ; kWh HC ; kWh HP 
echo "$(date +"%d/%m/%Y;%H:%M");${HC};${HP}" >>index.csv
echo " "
exit 0;

Dernière modification par gipet77 (Le 16/01/2015, à 15:10)

Hors ligne

#32 Le 18/02/2015, à 20:38

andso

Re : Recuperer un flux d'info sur /dev/ttyUSB1

bonjour, gipet77
i sert strictement à rien ton 2° script
si tu fournis pas le premier ( qui enregistre les infos)
...!

P.S.1 : Ça pourrait fichtrement intéresser nombres de linuxiens:
une appli pour ça!
Un truc out of the box (1 .deb).

P.S.2 : faut se mettre à python!

Dernière modification par andso (Le 18/02/2015, à 21:29)


IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!

Hors ligne

#33 Le 01/03/2015, à 15:30

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

bonjour  andso
je peux fournir le 1er script mais il sera fonction du matériel (convertisseur compteur EDF -> PC) et de la connexion au PC (ports de communications RS232, RS485, USB, TCP, ...) il est donc propre à chaque machine.
contacte moi par mail si tu veux plus d'explication. (adresse dans script)
Si tu as une base de support de formation au Python, je suis preneur, je suis automaticien pas informaticien !

Hors ligne

#34 Le 20/06/2015, à 14:40

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Salut andso,
le script 1 nécessite des droits root, et est lancé au boot du PC, il est universel, et lié au matériel du PC
le script 2 est lancé à l'ouverture de cession, et lié type de compteur lu, il ne nécessite pas les droits root.
Cela donne pour un relevé :
view?usp=sharing

Dernière modification par gipet77 (Le 20/06/2015, à 18:17)

Hors ligne

#35 Le 20/06/2015, à 15:13

tiramiseb

Re : Recuperer un flux d'info sur /dev/ttyUSB1

(en passant, je me permets de signaler que je suis en train de faire un programme qui fait à peu près la même chose, mais proprement et en python)

Hors ligne

#36 Le 20/06/2015, à 18:13

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Bonjour tiramiseb
je suis preneur pour pouvoir comparer et nettoyer mon code...

tiramiseb a écrit :

(en passant, je me permets de signaler que je suis en train de faire un programme qui fait à peu près la même chose, mais proprement et en python)

Hors ligne

#37 Le 20/06/2015, à 21:06

claudius01

Re : Recuperer un flux d'info sur /dev/ttyUSB1

gipet77 a écrit :

Bonjour tiramiseb
je suis preneur pour pouvoir comparer et nettoyer mon code...

tiramiseb a écrit :

(en passant, je me permets de signaler que je suis en train de faire un programme qui fait à peu près la même chose, mais proprement et en python)

Suis également preneur pour l'utiliser dans un RPi B+ / Raspbian et faire des retours naturellement...

Hors ligne

#38 Le 21/06/2015, à 12:48

andso

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Yep, bonjour tiramiseb, gipet77, claudius01
j' ai une commande de matos (capteurs pompe, composants) sous le coude, et hésite entre
-arduino
-pinguino
-raspberry
ce pour un appli +/- domotique.
Le raspberry a de base des possibilités d' interfaçage étendues , et je penche pour lui . Bon, ça va être l' occase de me  mettre vraiment à python,
et ça m' interesse d' explorer des exemples, donc le tien.


IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!

Hors ligne

#39 Le 21/06/2015, à 12:55

tiramiseb

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Arduino et Pinguino c'est des microcontrôleurs, quelque chose de très simple : bien pour une application simple, moins bien pour du complexe. Un programme (et un seul) tourne sur le contrôleur.
Raspberry Pi, c'est un ordinateur sur lequel on a collé des GPIO, permettant de mettre un pied dans le monde de l'électronique. Mais on reste sur un ordinateur, avec système d'exploitation, plein de RAM et tutti quanti.

Un avantage de l'Arduino sur le RPi, c'est les pins analogiques : le RPi ne fait que du numérique, tout-ou-rien. Si tu vieux piloter un truc analogique (ou recevoir des infos d'un capteur analogique), avec un RPi tu vas OBLIGATOIREMENT ajouter de l'électronique.

Pour ma part, j'ai mis un Raspberry Pi dans ma borne de recharge de voiture électrique car je fais interagir plein de choses (compteur EDF, carte mains-libres Renault, borne de charge...), un *duino est largement trop léger pour ça.


Pour ma centrale domotique, j'ai mis un Beaglebone Black pour deux raison :
- beaucoup plus de GPIO que le Raspberry Pi
- réputé plus solide, plus "industriel", que le Raspberry Pi

Dernière modification par tiramiseb (Le 21/06/2015, à 12:55)

Hors ligne

#40 Le 21/06/2015, à 13:21

andso

Re : Recuperer un flux d'info sur /dev/ttyUSB1

là, c' est pour une gestion de cave (avec plein de bon trucs à l' intérieur, un estomac je vous dis),
et j' aimerais avoir d' entrée un systéme ouvert:
page web, wifi, bluetooth, ethernet, ?...
donc le rpy nécessite une carte A/N
...!

edit: ou ne fonctionner qu' avec des periphériques I2C...

Dernière modification par andso (Le 21/06/2015, à 13:24)


IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!

Hors ligne

#41 Le 21/06/2015, à 13:34

tiramiseb

Re : Recuperer un flux d'info sur /dev/ttyUSB1

page web, wifi, bluetooth, ethernet, ?...

alors oublie les *duino.

(ethernet ET wifi ? un seul des deux est suffisant, non ? ...)

donc le rpy

RPi
Pi
Comme le nombre 3,1415...
Pas Py.
smile

nécessite une carte A/N
[...]
ou ne fonctionner qu' avec des periphériques I2C...

Voilà.

Pour la fiabilité, je te suggère fortement d'envisager le BBB au lieu du RPi smile


(j'ai entendu pas mal de critiques à propos de l'interface ethernet du RPi, qui est branchée sur le bus USB, qui lui-même est pas très stable)

Hors ligne

#42 Le 27/06/2015, à 18:42

tiramiseb

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Plop.

Voilà un début :
https://github.com/tiramiseb/electricit … /teleinfod

=> c'est un daemon que j'ai mis sur ma centrale domotique (BeagleBone Black sous Calaos OS, basé sur Linux) sur laquelle j'ai branché la sortie téléinfo avec l'optocoupleur habituel, enfin le montage que tout le monde fait, quoi tongue

On peut y activer une ou plusieurs sorties, pour l'instant je n'y ai créé que ce qui m'intéresse, mais on peut en ajouter (par exemple s'il faut du CSV, ce n'est pas hyper compliqué)...

Dernière modification par tiramiseb (Le 27/06/2015, à 18:42)

Hors ligne

#43 Le 27/06/2015, à 21:52

andso

Re : Recuperer un flux d'info sur /dev/ttyUSB1

merci


IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!

Hors ligne

#44 Le 20/09/2015, à 16:25

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Salut,
Je viens d'essayer sous raspbian, (debian pour raspberry PI) le bash que j'ai mis en exemple ci-dessus fonctionne nickel
Je récupère les index, toutes les 10mn, heures, jour, semaine et mois au format csv avec CRONTAB
J'ai créé d'autre fonctionnalités:
- surveillance de l'intensité (dépassement seuil = alerte)
- Envoi de SMS
- Envoi de mail
- envoi des données au site http://www.michamps4b.be
Je cherche à présenter de façon énergétique et graphique les données.
Est ce que quelqu'un pourrait m'aiguiller ?
Est ce que des charts pré-établis existent ?
Merci d'avance pour vos réponses

Dernière modification par gipet77 (Le 22/09/2015, à 08:49)

Hors ligne

#45 Le 20/09/2015, à 16:37

gipet77

Re : Recuperer un flux d'info sur /dev/ttyUSB1

Salut,
Est ce possible de faire une visualisation graphique sur goggle site, des données csv que je stockerai sur google drive ?
A+

tiramiseb a écrit :

Plop.

Voilà un début :
https://github.com/tiramiseb/electricit … /teleinfod

=> c'est un daemon que j'ai mis sur ma centrale domotique (BeagleBone Black sous Calaos OS, basé sur Linux) sur laquelle j'ai branché la sortie téléinfo avec l'optocoupleur habituel, enfin le montage que tout le monde fait, quoi tongue

On peut y activer une ou plusieurs sorties, pour l'instant je n'y ai créé que ce qui m'intéresse, mais on peut en ajouter (par exemple s'il faut du CSV, ce n'est pas hyper compliqué)...

Hors ligne