IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupération de valeurs d'un fichier texte


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut Récupération de valeurs d'un fichier texte
    Bonjour, j’ai essayé de modifier un ancien code qu’un ami m’était fait il y a une dizaine d’années. C'est une petite installation domotique qui est géré sur un Raspberry PI. J’ai ajoutez des lignes de code en faisant un copier-coller mais malheureusement pour moi ça ne fonctionne pas malgré toutes mes recherches .

    Voilà le problème en photo

    Pièce jointe 625769

    Comme vous pouvez le voir sous le 8em et 9em icônes il y a un problème que je n’arrive pas à résoudre. ( Absence de valeur ).

    Le fonctionnement :


    Une tache cron (1-wire-sh) va exécutez un script Shell toutes les 10 minutes (1-Wire.sh) ce script va récupérer des valeurs dans des fichiers texte pour écrire ce fichier log (1-Wire-values)

    Pièce jointe 625771

    Ensuite avec ces lignes dans mon fichier php je vais récupérè les valeurs TEXT,HYGR,TINT, TTAP,TTRP dans le log (1-Wire-values). Pour les afficher sur la page


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    // Temp Ext
    $H_txt=$TE_txt="NA";
    $H_col=$TE_col='red';
    $DHT=getMemValues('TEXT');
    $DHT.="/".getMemValues('HYGR');
    $ext=explode("/",$DHT);
    if (count($ext)=='4'){
    	$H_col=$TE_col='white';
    	$TE_txt=$ext[0];
    	// temp ext
    	if ((time()-strtotime($ext[1]))>(60*30)) {
    		$TE_ts=date ("d/m H:i",strtotime($ext[1]));
    		$TE_col='orange';
    		}
    	// hygro ext
    	$H_txt=$ext[2];
    	if ((time()-strtotime($ext[3]))>(60*30)) {
    		$H_ts=date ("d/m H:i",strtotime($ext[3]));
    		$H_col='orange';
    		}
    	}
    else{
    	$TE_txt=$H_txt='NA';
    	$H_col=$TE_col='red';
    	}
     
    // Temp int
     
    $TI_txt="NA";
    $TI_col='red';
    $TI=getMemValues('TINT');
    $ti=explode("/",$TI);
    if (count($ti)=='2'){
    	$TI_col='white';
    	$TI_txt=$ti[0];
    	if ((time()-strtotime($ti[1]))>(60*30)) {
    		$TI_ts=date ("d/m H:i",strtotime($ti[1]));
    		$TI_col='orange';
    		}
    	}
    // Temp Aller PAC
     
    $TA_txt="NA";
    $TA_col='red';
    $TA=getMemValues('TTAP');
    $ta=explode("/",$TA);
    if (count($ta)=='2'){
    	$TA_col='white';
    	$TA_txt=$ta[0];
    	if ((time()-strtotime($ta[1]))>(60*30)) {
    		$TA_ts=date ("d/m H:i",strtotime($ta[1]));
    		$TA_col='orange';
    		}
    	}
    // Temp Retour PAC	
     
    $TR_txt="NA";
    $TR_col='red';
    $TR=getMemValues('TTRP');
    $tr=explode("/",$TR);
    if (count($tr)=='2'){
    	$TR_col='white';
    	$TR_txt=$tr[0];
    	if ((time()-strtotime($tr[1]))>(60*30)) {
    		$TR_ts=date ("d/m H:i",strtotime($tr[1]));
    		$TR_col='orange';
    		}
    	}

    Sa fonctionne bien avec valeurs TEXT,HYGR,TINT Mais pas avec TTAP,TTRP . Et le fichier (1-Wire-values) ne se vide plus comme avant!

    je suis novice Pouvez vous m'aidez . Merci d'avance .

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    il manque la définition de la fonction "getMemValues".
    mettez aussi le fichier "1-Wire-values" en pièce jointe ou alors dans une balise "code".

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Merci mathieu d'avoir pris le temps de me répondre , Mais étant novice je ne comprend pas trop !!!

    (il manque la définition de la fonction "getMemValues"). ou ???

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    dans votre message, vous devez nous montrer la fonction pour qu'on puisse tester comment ça fonctionne.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Ha ! Désolé mathieu mais je suis complétement perdu je la trouve ou cette fonction ? dans le fichier php ?

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    je ne sais pas, ça dépend de comment sont organisés vos fichiers.
    pour qu'on puisse vous aider, il faut que vous nous donniez le maximum d'informations. j'ai l'impression que le code que vous nous avez montré n'est pas le fichier complet.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Voila enfin trouvé ce fameux getMemValues Je l'ai modifié il me manquait les valeurs TTAP et TTRP Les valeurs s'affiche sur ma page PHP , mais le fichier (1-Wire-values) ne se vide toujours pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function getMemValues($x,$flag=true){
    	$x=strtoupper($x);
    	$retval='NA';
    	$resu=file(dirname(__FILE__)."/../logs/1-Wire-values");
    	foreach ($resu as $val) {
    		if (strpos($val,$x)!==false){
    			$rec=explode("=",$val);
    			$retval=trim($rec[1]);
    			switch($x){
    				case 'TEXT':
    					$retval.='°C';
    					if ($flag==true) {
    						$retval.="/$rec[2]";
    						}
    					break;
    				case 'HYGR':
    					$retval.='%';
    					if ($flag==true) {
    						$retval.="/$rec[2]";
    						}
    					break;
    				case 'TINT':
    					$retval.='°C';
    					if ($flag==true) {
    					$retval.="/$rec[2]";
    				    	}
    				    break;
    				case 'TTAP':
    					$retval.='°C';
    					if ($flag==true) {
    					$retval.="/$rec[2]";
    				    	}
    					break;
    				case 'TTRP':
    					$retval.='°C';
    					if ($flag==true) {
    					$retval.="/$rec[2]";
    					break;
    				    	}
    			    }
                return $retval;
                }
            }
        return $retval; 
    	}

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2020
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Bonjour, personne ne peux m'aidez ???. Je recupere bien les valeurs mais mon fichier 1-Wire-values ne se vide pas !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function read_last_REC($filename) {
    	if (!file_exists($filename)) return array('log no exist!') ;
    	$fp=fopen((string)$filename,"r");
    	$result=array();
    	while (!feof($fp)) {
    		$result[]=fgets($fp, 1024);
    		if (count($result) > 2) {
    			$result=array_slice($result, 1);
    			}
    		}
    	fclose($fp);
    	$data=explode("/",$result[0]);
    	return trim($data[3]);
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] probleme pour recuperer des valeurs avec des classes
    Par nivlem dans le forum Général Python
    Réponses: 56
    Dernier message: 22/05/2018, 18h34
  2. probleme checkbox recuperer les valeurs
    Par flomomo dans le forum Struts 2
    Réponses: 1
    Dernier message: 11/05/2014, 23h01
  3. [MySQL] Probleme avec recuperation des valeur d'un formulaire
    Par penguin50 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/04/2008, 10h56
  4. probleme pour recuperer une valeur
    Par kespy13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/04/2006, 10h18
  5. [DOM] Probleme de recuperation de valeur
    Par serwol dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 29/11/2005, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo