Bonjour @geraldelbaze,
J’ai pas regardé en détail ton script mais il n’y a pas de problème.
Si il te manque des librairies tu peux tout à fait les installer
J’utilise du bash, du json et du python dans mes scripts et je traite les datas dans Jeedom
je suis en train…
mais typiquement normalement, il y a un fichier setup.py à executer pour vérifier et installer les dépendances, et de coup, je ne suis pas convaincu qu’il ne faudrait pas le faire depuis un bon vieux terminal…
Bha tu te connectes sur Jeedom avec MobaXterm ou WinSCP
Apres t’as accès au système Jeedom/Debian en SSH avec le terminal Putty
Dans le terminal, tu peux tes scripts et installer les dépendances Fait une image de ton DIY et de Jeedom si t’es pas sur de ton coup, c’est plus facile à restaurer.
oui oui c’est ce que j’ai fini par faire hier soir.
C’est installé. C’est pas pour autant que c’est abouti… mais je chemine
D’autant que j’ai découvert que le script était directement dispo dans PyPi
Je dispose des méthodes pour invoquer désormais le script. Mais du coup je touche du doigt qu’il me reste à concevoir les appels… et c’est que c’est pas gagné… J’étais parti sur le fait de scripter directement dans la fenetre jeedom, mais si j’ai bien compris, il faut que je mettes tout cela dans un fichier et que j’y fasse appel.
Merci.
Je suis preneur d’une édition de ton code sh stp.
juste pour comprendre si tu déclares toutes les variables dans ce fichier ou si tu as juste l’invoquation.
dernière chose : où et comment est stocké le résultat de ce script. Dans ton cas, si tu veux faire une courbe avec les résultats toutes les heures de ton script, j’ai du mal à voir comment cela se passe…
Merci !
Et mon script est là… je sais que je ne suis pas loin mais bon…
from pyemvue import PyEmVue
def print_recursive(usage_dict, info, depth=0):
for gid, device in usage_dict.items():
for channelnum, channel in device.channels.items():
name = channel.name
if name == 'Main':
name = info[gid].device_name
print('-'*depth, f'{gid} {channelnum} {name} {channel.usage} kwh')
if channel.nested_devices:
print_recursive(channel.nested_devices, depth+1)
vue = PyEmVue()
vue.login(username='put_username_here', password='put_password_here', token_storage_file='keys.json')
devices = vue.get_devices()
device_gids = []
info = {}
for device in devices:
if not device.device_gid in device_gids:
device_gids.append(device.device_gid)
info[device.device_gid] = device
else:
info[device.device_gid].channels += device.channels
device_usage_dict = vue.get_device_list_usage(deviceGids=device_gids, instant=None, scale="1MIN", unit="KilowattHours")
print_recursive(device_usage_dict, info)
# speedtest 1.1.1.28
# Récupere le debit de la connexion internet dans un fichier
# NOW=`date`
# Je lance le test de la connexion Internet
DEBIT=`sudo speedtest --accept-gdpr -f json`
# Je met le résultat du test dans le fichier log
echo ${DEBIT} > /var/www/html/plugins/script/data/SPEEDTEST/speedtest.log
Apres j’utilise un scénario qui lit le fichier log pour récupérer toutes les infos et les mettre en variables Jeedom.
si tu t’y connais en code PHP, tu peux te faire un plugin, c’est ce que j’ai fait pour ma VMC et ma voiture électrique.
t’as un template vide Jeedom qui permet de faire ça, mais faut connaitre, tout est bien expliqué sur l’aide Plugins.
Sinon, tu peux faire par scénario comme je t’ai montré en déclenchement cron pour l’exécution automatique.
hummm… sauf erreur de ma part, toi tu récupères déjà une data au format json via ta requête non ?
J’ai bon ?
Pour le moment moi je ne fais qu’un print_recursive…
Faut que j’arrive à le stocker au format json si je veux pouvoir m’appuyer sur ton exemple.