[Python] Scripts pour MyJDownloader, 4G Box, Pollens, Qualitée de l'air, Moustiques et Vigilance Meteo

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
denis_brasseur
Messages : 476
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

Re: [Python] Scripts pour MyJDownloader, 4G Box, Pollens, Qualitée de l'air, Moustiques et Vigilance Meteo

Message par denis_brasseur »

denis_brasseur a écrit :
29 avr. 2019, 18:25
denis_brasseur a écrit :
27 avr. 2019, 19:40


Impossible de récupérer WanIPAddress.
Idem pour rssi, pas de message d'erreur, mails le device ne se met pas à jour, alors que l'heure du device se met bien à jour.
Effectivement, on ajoutant print(client.device.information()), l'IP ne remonte pas.

En ce qui concerne rssi, la valeur retournée est celle ci :
'rssi': '>=-51dBm'

J'ai donc modifié str(signal["rssi"])

Code : Tout sélectionner

requests.get(domoticz+"/json.htm?type=command&param=udevice&idx="+str(idxs[types.index(0)])+"&nvalue=0&svalue="+str(signal["rssi"]))
en str(signal["rssi"][5:])

Code : Tout sélectionner

requests.get(domoticz+"/json.htm?type=command&param=udevice&idx="+str(idxs[types.index(0)])+"&nvalue=0&svalue="+str(signal["rssi"][5:]))
afin de ne conserver que les caracteres a partir du 5eme. Et cela fonctionne.

Par contre, impossible d’exécuter le script depuis crontab, pas de mise à jour des device et rien dans les log, alors que la commande dans la console met à jour et alimente les logs.

Code : Tout sélectionner

*/15 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/4gbox.py >> /home/pi/domoticz/4gbox.log
J'ai loupé un truc ?
Cette période de confinement prolongé a été l'occasion de revenir sur le script 4G Box.
J'avais 3 problèmes différents :
Impossible de récupérer WanIPAddress.
J'ai pour cela utilisé
client.monitoring.status() au lieu de client.device.information()

Code : Tout sélectionner

wanIP = client.monitoring.status()["WanIPAddress"]
et cela fonctionne.

En ce qui concerne la valeur de rssi qui remontait comme ceci : >=-51dBm (>=-51dBm)
'rssi': '>=-51dBm'
j'ai utilisé

Code : Tout sélectionner

rssi=signal["rssi"].lstrip('>=')
afin de supprimer >= au lieu de tronquer les 5 premiers saractères.
et cela fonctionne.

Pour ce qui concerne l’exécution du script depuis cron, j'avais déjà trouvé la solution de passer par un script 4gbox.sh

Code : Tout sélectionner

#!/bin/sh
python3 /home/pi/domoticz/scripts/python/gbox.py
exit 0
et exécution depuis crontab -e

Code : Tout sélectionner

*/15 * * * * pi /home/pi/domoticz/4gbox.sh >> /home/pi/domoticz/4gbox.log
Et cela fonctionne également
Pi3 + DD PiDrive + RFXtrx433 + AEON Labs ZW090
7 Modules fil pilote ZMNHJD1
2 détecteur fumées CHACON 34131
5 Bresser Capteur thermo/hygro
1 contacteur porte Philio PST02-1A Z
OWL Micro+ CM180
D2L LINKY
FGR-223 "Roller Shutter 3"

Répondre