Je viens de passer de jeedom v3 en v4. J’avais dans l’ancienne version des scripts python qui étaient ok.
L’interface de la V4 ayant changé, je ne peux plus rentrer l’endroit de mon équipement où trouver la variable.
Cela fait plusieurs jours maintenant que j’écume le forum et internet pour trouver le moyen de rapatrier ma variable pour l’exploiter dans mon script, sans succes. Beaucoup de liens morts vers des pages en error 404. Beaucoup de choses pour php ou html, mais maigre pour python.Donc je viens vers vous pour trouver une bonne âme qui veuille bien m’aider.
Voila un exemple de script python que j’utilise. c’est pour ma prod solaire:
manque plus qu’a recuperer la valeur pour argv[1]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os.path
import datetime
import time
t = datetime.datetime.now()
heure = t.strftime("%H")
minut = t.strftime("%M")
# si c'est 23h10 on sauvegarde l'index
# sinon on lit la valeur de l'index sauvée le soir qu'on
# vient déduire de l'index en cours pour avoir la prod du jour
if heure == '23':
if (minut == '10'):
# sauvegarde ancien index
foc = open("/home/pi/Datas/Jeedom/Index-Est.csv",'w')
foc.write(str(sys.argv[1])+",#")
foc.close()
else:
# lecture fichier ancien index
foc = open("/home/pi/Datas/Jeedom/Index-Est.csv",'r')
foc.seek(0)
linesList = foc.readlines()
for line in linesList:
s = linesList.index(line)
AncIndex = line.split(",")
foc.close()
# done l'index ancien en valeur[0]
# calcul de la prod
prod = (int(sys.argv[1])-int(AncIndex[0]))
print prod
Salut, déjà il faudrait peut être simplifier les choses.
1 je partirais d’un scenario avec un déclencheur programmé (chaque jours a 23h00)
2 dans le scenario utilise un bloc code avec un shell_exec
avec une ligne du genre
il faut bien sur que ton script soit avec des droits d’exécution.
Ton paramètre doit être dans une commande il te suffit de le récupérer
en début de bloc du scenario avec un truc comme çà
(j’ai mis 72 arbitrairement mais c’est le N° de l’ID de ta commande que tu doit mettre
ps: tu t’embête avec tes « ancien et nouveaux index »
utilise une variable dans ton scenario stock ton index dedans
à 23H00 fait la différence dans jeedom puis lance ton script juste pour ajouter ta nouvelle valeur à ton fichier !
Merci olive pour être venu à mon aide. Je ne me sers pas des scénarios. Il va falloir que je lise la doc relative à cela pour essayé de comprendre comment ça marche. Ça me parait compliqué.
En fin de compte ce que je veux faire, c’est le soir récupérer l’index de mon compteur de prod solaire, pour pouvoir le lendemain faire la différence avec l’index en cours pour connaître la prod totale de la journée courante. C’est tout.
Je vais éplucher tout ça. Je te tiens au courant de ma progression…ou pas.
La question est a tu besoin de ton fichier dans le quel tu sauvegarde chaques valeurs du jour ou pas ?
Si non ça peut encore être beaucoup plus simple.
La doc est sèche ! pas d’exemple pour aider à comprendre. L’interface n’est pas simple non plus.
Alors dans l’onglet « général » : j’ai créé un scénario, je l’ai nommé, activé, parenté. Dans mode scénario j’ai mis programmé.
Dans l’onglet « scénario » j’ai créer un bloc « A »
l’heure j’ai mis : 2310 pour 23h10
j’ai fait ajouter code :
par contre je ne sais pas quoi mettre dedans.
Ma donnée a récupérer est là → #[maison][autoconso-sud -Capteur Teleinfo - 4][Energie 3]#
j’ai lu dans la doc qu’il y avait :
$scenario->getData($key); : Récupère une donnée (variable).
$scenario->setData($key, $value); : Sauvegarde une donnée (variable).
Et la je suis comme une poule devant un couteau, je ne sais pas quoi faire et où ?
voila il va peut être te manquer un virtuel pour afficher ta production du jour si tu ne l’a pas déjà fait
(c’est celui que j’ai appeler #[voltaïque][affichage][prod-jour]# dans le deuxième scénario)
ok, je suis pas sur d’avoir compris le 1er combat. J’ai créé la variable « mon index sud » avec jeedom/outils/variables. le reste je comprends pas ce que je dois en faire.
Je fais le point. Donc après avoir créé les 2 scénarios comme conseillés dans les 2 images plus haut. j’ai essayé sans succès après moult essais en variantes de caser les instructions suivantes:
#[maison][autoconso-sud -Capteur Teleinfo - 4][Energie 3]# et
j’ai essayé de les mettre dans un bloc « A », un bloc « action ». lorsque j’éxécute les scénarios, l’index apparait bien dans les log avec ensuite « commande invalide ». Je ne vois pas comment récupérer la variable pour ensuite m’en servir dans le cacul de production ni l’affichage dans un virtuel.
Bref, c’est la galère !
j’ai cherché sur youtube, sur le forum, mais pas grand chose d’exploitable pour moi. Je sollicite à nouveau votre aide car cette histoire commence à me prendre beaucoup de temps.