Intégration des Onduleurs Solis de chez ginlong

Bonjour,

J’ai récemment pu récupérer toutes les informations provenant d’un onduleur Solis de chez Ginlong avec l’aide d’un ancien sujet. Intégration des Onduleurs Solis de chez ginlong - Forum Communauté Jeedom

Les informations sont bien intégrées dans jeedom avec le plugin jmqtt, le broker fonctionne très bien mais les informations collectées ne remontent que si je lance manuellement depuis la console le script ginlong-listen.py avec l’aide de la commande ./ginlong-listen.py, sans cela je n’ai pas de remontée d’informations.

Comment puis-je faire pour que la commande que je lance depuis la console s’exécute automatiquement sans que je passe par la console?
Les informations sont collectées toutes les 6minutes avec la commande manuelle.

Pouvez-vous me guider pour que ce script s’exécute automatiquement?

Mon jeedom est installé sur un NAS dans l’appli dockers.

Merci pour l’aide

En utilisant crontab :

Bonsoir,
Merci pour la réponse.
Mon script a exécuter se trouve sous /root/gin long.mqtt/ginlong-listen.py

J’ai donc créer un fichier nommé cron.10mn sous /etc/cron.d avec la synthaxe suivante:

SHELL=bin/sh
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
10**** root/ginlong-mqtt/./ginlong-listen.py > /dev/null 2>&1

Enregistre ce fichier et exécuter par la commande
sudo service cron restart

Mais rien ne se passe et le scripte ginlong-listen.py ne s’exécute pas ?

Pourriez vous m’aider svp

Merci

Il y a longtemps que je n’ai pas pratiqué.

crontab -e

Pour éditer le fichier.

10 * * * * root/ginlong-mqtt/ginlong-listen.py > /dev/null 2>&1

A ajouter au fichier.

Puis redémarrer le service cron.

Bonsoir,
La commande crontab-e génère un nouveau fichier dans lequel je vais placer la ligne de commande. Où est ce que le fichier doit être placé ou sauvé pour fonctionner ?

Merci

Tu peux aussi t’aider avec man :

man crontab

Bonsoir, malgré toutes les manipulations mon fichier ne s’exécute toujours pas

Merci

Peux-tu décrire exactement les manipulations que tu as effectuées ?
Un copier-coller des cmd ssh effectuées serait bien.

Bonsoir,
Je me suis connecté à mon Terminal dans le conteneur Jeedom installé sur mon NAS, je suis connecté en admin si je ne me trompe pas (root@Jeedom:/#).
Mon script se trouve sous /root/ginlong-mqtt/ginlong-listen.py.

Je me suis positionné sur le dossier par la commande

cd /var/spool/cron/crontabs

Puis j’ai exécuté la commande

crontab -e

J’ai collé dans l’éditeur la ligne suivante

*10 * * * * /ginlong-mqtt/./ginlonglisten.py > /dev/null 2>&1

Puis enregistrer sous le chemin suivant

/var/spool/cron/crontabs/ginlong10

J’ai lancé la commande suivante pour vérifier que le cron tourne

ps -ef | grep cron

Le résultat est le suivant

www-data   730     1  0 Aug30 ?        01:00:30 php /var/www/html/core/class/../php/jeeCron.php cron_id=113                                                       
www-data  2221     0  0 Sep08 ?        00:01:21 php /var/www/html/core/class/../php/jeeCron.php cron_id=30                                                        
www-data 21144     0  0 17:01 ?        00:00:00 php /var/www/html/core/class/../php/jeeCron.php cron_id=33                                                        
root     25510     0  0 Sep03 ?        00:00:03 /usr/sbin/cron                                                                                                    
www-data 26317     1  0 Sep03 ?        00:00:16 php /var/www/html/core/class/../php/jeeCron.php cron_id=132                                                       
www-data 27683     0  1 17:13 ?        00:00:00 php /var/www/html/core/class/../php/jeeCron.php cron_id=28                                                        
root     27851 15584  0 17:13 pts/1    00:00:00 grep --color=auto cron                                                                                            
www-data 30043     0  0 04:30 ?        00:03:29 php /var/www/html/core/class/../php/jeeCron.php cron_id=20  

A partir de là je suis bloqué et mon script ne se lance pas.

Merci

Je ne vois pas la même ligne de commande

La commande crontab -e gère automatiquement le chemin et le nom du fichier cron de l’utilisateur en cours.

EDIT : Après relecture :

10 * * * * /root/ginlong-mqtt/ginlong-listen.py > /dev/null 2>&1

Bonsoir,

Après avoir suivi tous vos conseils et inséré uniquement la ligne par la commande crontab -e

10 * * * * /root/ginlong-mqtt/ginlong-listen.py > /dev/null 2>&1

le service cron ne s’active toujours pas toutes les 10 minutes, cependant j’arrive correctement à lancer en manuel la commande ./ginlong-listen.py depuis le terminal…

Est-ce que quelqu’un peut m’apporter une aide afin que la ligne de commande s’exécute toutes les 10 minutes pour le script. Est ce que la ligne de commande comporte des erreurs car malgré toutes mes manipulations le listener ne se déclenche pas malgré la commande cron? J’ai tenté d’éditer le crontab par la commande crontab -e de la manière suivante sans succès:

SHELL= /bin/bash
PATH= /root/ginlong-mqtt/ginlong-listen.py
*/10 **** /root/ginlong-mqtt/ginlong-listen.py > /dev/null > 2&1

Puis relancer le cron par la commande

service cron restart

Le script ne s’exécute pas et mon broker ne reçoit aucune mise à jour, sauf si je lance la commande ./ginlong-listen.py en manuel depuis le terminal…

Des idées ?

Merci

Et comme ça ?

10 * * * * /root/ginlong-mqtt/ginlong-listen.py

Bonsoir,
J’y suis presque je pense. Mais j’ai maintenant une erreur dans le fichier log.
J’ai créé une commande crontab comme ceci et le cron semble se déclencher toutes les minutes:

# lancer le script ginlong-listen.py toutes les minutes                                                                                                           
SHELL=/bin/bash                                                                                                                                                   
*/1 * * * * /root/ginlong-mqtt/./ginlong-listen.py > /root/ginlong-mqtt/ginlong.log 2>&1 

L’erreur retournée dans le fichier .log est la suivante:

Traceback (most recent call last):                                                                                                                                
  File "/root/ginlong-mqtt/./ginlong-listen.py", line 32, in <module>                                                                                             
    with open("config.ini") as f:                                                                                                                                 
IOError: [Errno 2] No such file or directory: 'config.ini'

J’ai cherché à propos de cette erreur et mon fichier config.ini se trouve bien dans le même chemin que le script.

root@Jeedom:~/ginlong-mqtt# ls -lu                                                                                                                                
total 104                                                                                                                                                         
-rwxr-xr-x 1 root root   123 Sep 22 18:26 config.ini                                                                                                              
-rw-r--r-- 1 root root   123 Aug 23 13:30 config.ini-default                                                                                                      
-rwxrwxr-x 1 root root  7640 Sep 22 17:44 ginlong-listen.py                                                                                                       
-rwxr-xr-x 1 root root  6890 Aug 26 17:39 ginlong-listen.py.save                                                                                                  
-rwxr-xr-x 1 root root   198 Sep 22 18:39 ginlong.log                                                                                                             
-rw------- 1 root root     4 Aug 19 19:43 nano.save                                                                                                               
-rw-r--r-- 1 root root 66304 Aug 23 13:25 rawlog                                                                                                                  
-rw-r--r-- 1 root root     1 Aug 29 19:04 remove   

Est-ce qu’il s’agit d’un problème lié au script à partir de la ligne 32?

with open("config.ini") as f:                                                                                                                                     
        sample_config = f.read()                                                                                                                                  
config = ConfigParser.RawConfigParser(allow_no_value=True)                                                                                                        
config.readfp(io.BytesIO(sample_config))  

Pas trouvé encore la solution mais j’y crois !!!

Des idées ?

Merci

Bonsoir, personne n’est en mesure d’apporter un conseil ? Merci

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.