Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[Script] Ecriture de valeurs

Pour échanger sur les plugins classés en catégorie "Programmation"
Répondre
Avatar de l’utilisateur
TBDwarf
Timide
Messages : 38
Inscription : 04 janv. 2017, 19:57

[Script] Ecriture de valeurs

Message par TBDwarf » 21 déc. 2017, 19:21

Bonjour à tous,

Je souhaite crée un script pour écrire des variables Jeedom dans un fichier .txt
J'utilise le plugin "Script", j'ai crée une commande "Script" en type "Action" avec pour requête : /var/www/html/plugins/script/core/ressources/meteotille.php

Voila mon script present dans "meteotille.php" (très simple).

Code : Tout sélectionner

<?php
 $monfichier = fopen('meteotillesup.txt', 'r+');
fputs($monfichier, "test"); // On écrit
fclose($monfichier);
?>
L'objectif est d’écrire dans un fichier .txt des variables présente dans Jeedom (température, hygrométrie etc...), en l’état le script devrait m’écrire "test" mais le fichier texte reste vide...

J'aurai bien besoin d'un petit coup de main, mon erreur doit etre bête je pense... :lol:

Merci par avance :D

Avatar de l’utilisateur
TBDwarf
Timide
Messages : 38
Inscription : 04 janv. 2017, 19:57

Re: [Script] Ecriture de valeurs

Message par TBDwarf » 23 déc. 2017, 10:45

J"essaye de trouver la solution à mon problème...
J'ai rajouté un chmod 777 sur le fichier .txt mais sans succès, toujours pas d’écriture.

Au secours :( !

neurall
Timide
Messages : 472
Inscription : 25 avr. 2016, 11:39

Re: [Script] Ecriture de valeurs

Message par neurall » 23 déc. 2017, 12:41

peut être que si tu donnais le chemin complet d'accès à ton fichier car le chemin relatif ... ce n'est pas une bonne méthode en règle général.
Jeedom mini+ Z-Wave+
Minix Z83 eMMC 32Mo, Stick Zwave Gen 5, quelques dizaines de modules divers et variés

Avatar de l’utilisateur
TBDwarf
Timide
Messages : 38
Inscription : 04 janv. 2017, 19:57

Re: [Script] Ecriture de valeurs

Message par TBDwarf » 23 déc. 2017, 13:59

Yes ! Mille merci c’était ça :D !!

Code : Tout sélectionner

$monfichier = fopen('/var/www/html/plugins/script/core/ressources/meteotillesup.txt', 'r+');
 
$pages_vues = fgets($monfichier); // On lit la première ligne
fseek($monfichier, 0); // On remet le curseur au début du fichier
fputs($monfichier, "#[Extérieur][Sonde extérieur][Température]#"); // On écrit 
 
fclose($monfichier);
Nouveau problème "#[Extérieur][Sonde extérieur][Température]#" n'affiche pas la valeur de température dans le fichier .txt :? a mon avis je rate une subtilité (je découvre la fonction script)... une idée ?

totovaauski
Actif
Messages : 1926
Inscription : 05 juil. 2014, 11:21

Re: [Script] Ecriture de valeurs

Message par totovaauski » 23 déc. 2017, 15:53

Oui, lire la doc du plugin script car y'a l'exemple qui va bien !
RPI3 + Dongle Aeon
Jeedom sur : Raspberry Pi + Raspberry compute
Mysensors , z-wave, xiaomi ...

https://www.youtube.com/watch?v=-bjbUg9d64g
https://www.youtube.com/watch?v=GPj1ozB ... _b-Toq47NQ

Avatar de l’utilisateur
TBDwarf
Timide
Messages : 38
Inscription : 04 janv. 2017, 19:57

Re: [Script] Ecriture de valeurs

Message par TBDwarf » 23 déc. 2017, 16:09

totovaauski a écrit :
23 déc. 2017, 15:53
Oui, lire la doc du plugin script car y'a l'exemple qui va bien !
Ça ne m'aide pas beaucoup... :lol: je ne m'amuse pas à demander de l'aide sur le forum sans avoir évidement lue la documentation au préalable.

Suivant ce que j'ai compris de la documentation :
Dans la ligne : /usr/share/nginx/www/jeedom/plugins/script/core/ressources/MON_SCRIPT_PHP.php list , l’argument "list" est une chaîne de caractères (fixe) récupérée dans le script php grâce à la fonction suivante $argv[1] cf : Google pour plus de détails sur la récupération de paramètres en PHP.
Passer [CUISINE][CUISINE][Température] comme paramètre au script et Jeedom le remplacera par la valeur lue lors de l’envoi.
Donc j'ai essayer de faire : "/var/www/html/plugins/script/core/ressources/meteotille.php [Extérieur][Sonde extérieur][Température]"
supposant que "[Extérieur][Sonde extérieur][Température]" et l’élément de récupération de paramètres.
et j'ai modifier mon script comme ceci :

Code : Tout sélectionner

fputs($monfichier, $argv[1]); // On écrit 
supposant que "$argv[1]" est la variable de remplacement de la valeur...

Cela ne marche pas... mais je ne comprend probablement pas l'exemple, c'est pour cela que je viens demander de l'aide ;)

Rappel de la 1er ligne de documentations sur la fonction script :
Le plus sympa mais pas le plus simple à expliquer.

Avatar de l’utilisateur
TBDwarf
Timide
Messages : 38
Inscription : 04 janv. 2017, 19:57

Re: [Script] Ecriture de valeurs

Message par TBDwarf » 24 déc. 2017, 09:57

J'ai réussi à résoudre mon problème en le contournant, pour d'autre voici ma solution :
J'ai fais un type script HTTP en mode Action, voici l'url :

Code : Tout sélectionner

http://urldemonsite.com/monscript.php?infojeedom=#[Extérieur][Sonde extérieur][Température]#*#[Extérieur][Sonde extérieur][Humidité]#.0*#[Extérieur][Météo][Pression]#.0*#[Extérieur][Météo][Vitesse du vent]#*#[Extérieur][Météo][Direction du vent]#*#[Extérieur][Valeurs impérial météo][Pluie 1h]#*#[Extérieur][Valeurs impérial météo][Pluie Jour]#*#[Extérieur][Valeurs impérial météo][Pluie mois]#*0.0*0.0*0.0*0.0
Voila le script :

Code : Tout sélectionner

<?php

$infojeedom = $_GET['infojeedom']; //info depuis jeedom

$today = date("d/m/y"); //jour mois année
$heure = date('h'); //heure
$minute = date('i'); //minute

$info = $today . "*" . $heure . "h" . $minute . "*" . $infojeedom . ""; //on crée le bloc de données
$monfichier = fopen('meteotillesup.txt', 'w'); //on ouvre le .txt et on vide tous


  

fseek($monfichier, 0); // On remet le curseur au début du fichier

fputs($monfichier, $info); // On écrit 
 
fclose($monfichier); //on ferme le fichier


?>
"infojeedom" sera mon paramètre de récupération, grace à "$infojeedom = $_GET['infojeedom'];" je recupere les info et je les stock dans la variable "$infojeedom".

Une fois exécuté le script me donne dans "meteotillesup.txt" :

Code : Tout sélectionner

24/12/17*09h51*5.3*98.0*1033.0*9.36*200*0*0*93.8*0.0*0.0*0.0*0.0
De bonne fête à tous !

Avatar de l’utilisateur
Lecl0ne
Timide
Messages : 183
Inscription : 11 août 2018, 16:57

Re: [Script] Ecriture de valeurs

Message par Lecl0ne » 16 oct. 2018, 07:56

Bonjour !

Je me permets de déterrer ce topic, parce que sa base est commune à la mienne.
Je souhaite faire un fichier log dans un fichier txt, donc mon but est d'ajouter des lignes, en revenant à la ligne à chaque sollicitation.

Exemple:

16.10.18 - 02h31 : L'éclairage de la cuisine a été déclenché.
15.10.18 - 07h52 : Le garage a été ouvert.

Pour l'instant j'ai fait ce code de base:

Code : Tout sélectionner

$monfichier = fopen('/var/www/html/log/SuperLog.txt', 'r+');
fputs($monfichier, "La cuisine a été ouverte"); // On écrit
fclose($monfichier);
Il il manque certainement plein de lignes pour faire ce que je veux !

Contrairement au besoin initial, je ne veux pas qu'un script qui écrit de nouveau dans mon txt efface la ligne précédemment écrite, mais en ajoute une nouvelle avant la précédente. :) Une idée ?

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

Re: [Script] Ecriture de valeurs

Message par tomdom » 16 oct. 2018, 17:42

Bonjour,

Code : Tout sélectionner

$nomfichier='/var/www/html/log/SuperLog.txt';
$texte="La cuisine a été ouverte\n";
$texte.=file_get_contents($nomfichier);
file_put_contents($nomfichier,$texte);
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

Avatar de l’utilisateur
Lecl0ne
Timide
Messages : 183
Inscription : 11 août 2018, 16:57

Re: [Script] Ecriture de valeurs

Message par Lecl0ne » 16 oct. 2018, 22:34

Bonjour et merci de ta réponse !

Hélas après 3 lancements de commande, voilà le résultat:

La cuisine a été ouverteLa cuisine a été ouverteLa cuisine a été ouverte

Du moins en apparence! Puisque en faisant copier coller ici j'obtiens:

La cuisine a été ouverte
La cuisine a été ouverte
La cuisine a été ouverte

Il semble que le /n ne soit pas pris en charge correctement dans le fichier txt. Une idée?

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

Re: [Script] Ecriture de valeurs

Message par tomdom » 17 oct. 2018, 06:08

Bonjour,

Essaie :

Code : Tout sélectionner

"La cuisine a été ouverte\r\n"
ou

Code : Tout sélectionner

"La cuisine a été ouverte".chr(10)
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

Avatar de l’utilisateur
Lecl0ne
Timide
Messages : 183
Inscription : 11 août 2018, 16:57

Re: [Script] Ecriture de valeurs

Message par Lecl0ne » 17 oct. 2018, 07:19

Le premier essai fonctionne !!!! Merci !!
Savez-vous si je peux écrire dans un fichier texte sur mon OneDrive par exemple plutôt que dans mon Raspberry ? Ca me permettrait d'avoir accès à mon log partout :)

Avatar de l’utilisateur
marmoul
Actif
Messages : 891
Inscription : 01 sept. 2015, 15:50
Localisation : Haute-Saône (70)

Re: [Script] Ecriture de valeurs

Message par marmoul » 17 oct. 2018, 08:36

Bonjour je n’ai pas la réponse mais sa m’intéresse

Merci

Avatar de l’utilisateur
Lecl0ne
Timide
Messages : 183
Inscription : 11 août 2018, 16:57

Re: [Script] Ecriture de valeurs

Message par Lecl0ne » 18 oct. 2018, 09:52

Personne de calé la dessus? :)

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

Re: [Script] Ecriture de valeurs

Message par tomdom » 18 oct. 2018, 10:01

Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

Avatar de l’utilisateur
Seb54
Timide
Messages : 133
Inscription : 30 déc. 2017, 11:04

Re: [Script] Ecriture de valeurs

Message par Seb54 » 02 déc. 2018, 21:40

Bonjour,
Qqn a une idée svp pour la fonction inverse ?
Je voudrais récupérer, dans une variable jeedom, le contenu d'un fichier txt

Merci !

Répondre

Revenir vers « [Catégorie] Programmation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités