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

Vous avez créé 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.
denis_brasseur
Messages : 898
Inscription : 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
Sylv_01
Messages : 227
Inscription : 17 janv. 2017, 13:25

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

Message par Sylv_01 »

Bonsoir, je tente d'utiliser le script pour récupérer les infos de ma box 4g Huawei et j'ai une erreur...
J'ai bien installé l'api Huawei mais le script ne la trouve pas :

Code : Tout sélectionner

pip3 install huawei-lte-api
Collecting huawei-lte-api
  Downloading https://www.piwheels.org/simple/huawei-lte-api/huawei_lte_api-1.4.12-py3-none-any.whl (41kB)
    100% |████████████████████████████████| 51kB 290kB/s 
Collecting xmltodict (from huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/28/fd/30d5c1d3ac29ce229f6bdc40bbc20b28f716e8b363140c26eff19122d8a5/xmltodict-0.12.0-py2.py3-none-any.whl
Collecting dicttoxml (from huawei-lte-api)
  Downloading https://www.piwheels.org/simple/dicttoxml/dicttoxml-1.7.4-py3-none-any.whl
Collecting requests (from huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl (61kB)
    100% |████████████████████████████████| 71kB 546kB/s 
Collecting certifi>=2017.4.17 (from requests->huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl (156kB)
    100% |████████████████████████████████| 163kB 457kB/s 
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests->huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/9f/f0/a391d1463ebb1b233795cabfc0ef38d3db4442339de68f847026199e69d7/urllib3-1.25.10-py2.py3-none-any.whl (127kB)
    100% |████████████████████████████████| 133kB 533kB/s 
Collecting idna<3,>=2.5 (from requests->huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 612kB/s 
Collecting chardet<4,>=3.0.2 (from requests->huawei-lte-api)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 557kB/s 
Installing collected packages: xmltodict, dicttoxml, certifi, urllib3, idna, chardet, requests, huawei-lte-api
Successfully installed certifi-2020.6.20 chardet-3.0.4 dicttoxml-1.7.4 huawei-lte-api-1.4.12 idna-2.10 requests-2.24.0 urllib3-1.25.10 xmltodict-0.12.0
pi@raspberrypi:~/domoticz/scripts/python $ python 4gbox.py
Traceback (most recent call last):
  File "4gbox.py", line 1, in <module>
    from huawei_lte_api.Client import Client
ImportError: No module named huawei_lte_api.Client
pi@raspberrypi:~/domoticz/scripts/python $ 
J'ai essayé d'installer en root également avec sudo devant, mais c'est pareil...
Une idée ?
Par avance merci
denis_brasseur
Messages : 898
Inscription : 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 »

Peut etre la syntaxe de ta ligne de commande
python3 /home/pi/domoticz/scripts/python/4gbox.py
Domo89 a écrit : 26 avr. 2019, 00:32 Bonjour,
Je pense que cela ne fonctionne pas car ces scripts sont prévus pour être exécutés séparément et pas via les Events de domoticz.
Personnellement, j'ai crée le script directement dans le dossier scripts/python de domoticz sans passer par les Events, et j'exécute ce script toutes les 2h avec un crontab:

Code : Tout sélectionner

PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin
* */2 * * * python3 /home/pi/domoticz/scripts/python/updateDevices/4gbox.py >/dev/null 2>&1
D’après tes logs, il semblerait que le scripts n'arrive pas a importer le module alors qu'il est installé (peut-etre la faute a une installation faite sur une différente version de python que celle utilisée par domoticz ?)

PS: Pour apt, c'est normal de ne pas trouver le paquet huawei-lte-api (étrangement, le nom du paquet est avec des tirets, mais pour l'importer il faut utiliser des underscores) car c'est un module python et non un paquet debian, il s'installe donc par pip3.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Sylv_01
Messages : 227
Inscription : 17 janv. 2017, 13:25

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

Message par Sylv_01 »

Yes, ça marche, merci !
Effectivement j'avais lu un peu vite...
Dernière question : dans Domoticz,, on crée un capteur virtuel de type custom sensor, c'est bien ça ?
Il n'existe pas de type pré-établi pour ce genre d'info (je parle de la conso de datas...) ?
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

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

Message par mike913 »

Bonjour,
Je tiens tout d'abord a remercier Domo89 pour son travail.
Quelques compléments au sujet de la vigilance Météo France:
il existe 3 types de fichier:
1- http://vigiprevi.meteofrance.com/data/NXFR33_LFPW_.xml
2- http://vigiprevi.meteofrance.com/data/NXFR34_LFPW_.xml
3- http://vigiprevi.meteofrance.com/data/NXFR49_LFPW_.xml
et les explications les concernant dans un fichier pdf disponible https://www.data.gouv.fr/fr/datasets/vi ... metropole/
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
denis_brasseur
Messages : 898
Inscription : 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 »

Sylv_01 a écrit : 09 sept. 2020, 07:38 Dernière question : dans Domoticz,, on crée un capteur virtuel de type custom sensor, c'est bien ça ?
Il n'existe pas de type pré-établi pour ce genre d'info (je parle de la conso de datas...) ?
Le custom sensor est un capteur passe partout pour lequel tu peux personnaliser le nom de l'axe.
Il n'existe pas de capteur spécifique pour du data.
Capture.PNG
Capture.PNG (24.55 Kio) Consulté 4489 fois
Capture1.PNG
Capture1.PNG (314.07 Kio) Consulté 4489 fois
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Sylv_01
Messages : 227
Inscription : 17 janv. 2017, 13:25

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

Message par Sylv_01 »

Hello, oui c'est bien ce qu'il me semblait, merci pour ta confirmation...
mickaelr30
Messages : 210
Inscription : 29 août 2015, 15:57

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

Message par mickaelr30 »

bonjour,
j'ai un soucis avec ma box 4g, j'ai le modèle B528s-23a
je n'ai pas de nom de connexion je rentre seulement le mot de passe, donc j'ai mis admin pour le nom d'utilisateur.
mais j'ai ceci comme erreur :
from: trop d'arguments
from: trop d'arguments
./boxmick.py: ligne 3: import : commande introuvable
./boxmick.py: ligne 8: erreur de syntaxe près du symbole inattendu « ( »
./boxmick.py: ligne 8: `def updateDomoticz(boxAddr,idxs,types,domoticz):'
le script marche t'il avec cette box ?
Domoticz + Imperihome + Mydomoathome
1-wire : 12 DS18b20 + 3 DS2413
Z-Wave : 8 FGR221 + 3 FGS222 + 3 FGSD002
téléinfo : 2 modules ( consommation + production)
Mysensors+2 éclairages ws2812 et WLED
2 caméra IP +1 raspberry piscine + 1 nuc domoticz
denis_brasseur
Messages : 898
Inscription : 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 »

mickaelr30 a écrit : 11 sept. 2020, 23:17 je n'ai pas de nom de connexion je rentre seulement le mot de passe, donc j'ai mis admin pour le nom d'utilisateur.
Si pas de mot de passe, ta ligne ressemble à celle ci ?

Code : Tout sélectionner

boxAddr = 'http://admin:@192.168.1.1/'
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Répondre