écrire dans le cron à distance et sans SSH

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
Feldou
Messages : 7
Enregistré le : mar. 19 févr. 2019 14:52

écrire dans le cron à distance et sans SSH

Message par Feldou » mar. 19 févr. 2019 15:11

Bonjour à tous, et d'abord merci pour le forum où j'ai déjà trouvé quelques réponses à mes interrogations framboisiennes

- Pour le contexte :
Je me suis confectionné un réveil avec une raspberry pi 3, il s'agit d'un script python qui gère un ruban de led RGB et du son via une enceinte en USB. C'est (très) probablement codé avec les pieds mais ça marche et c'est tout ce qui compte pour moi :D
Le script est lancé par cron ce qui me convient très bien, SAUF QUE : pour régler l'heure dans le cron je passe par une connexion SSH (Juice SSH sur android, pour ne pas le citer) et c'est pas franchement ergonomique. Mais ça marche. Mais c'est pas ergonomique.

- La requête :
Je ne sais pas du tout comment m'y prendre mais j'aimerais bien avoir un système plus convivial (style une page web accessible sur mon wifi avec 7 boutons pour les 7 jours de la semaine, sur lesquels je pourrais cliquer et indiquer l'heure correspondante)

Si quelqu'un a des pistes je suis preneur, j'ai pas forcément de grosses compétences, je sais juste me démerder en python pour qu'il fasse ce que je veux (et encore c'est sale)

Et si vous avez une idée encore plus "confort", même sans la solution technique, je suis à l'écoute :) bon pas la peine non plus de me proposer de coder une appli android à qui je parlerais à voix haute pour lui dire "réveille moi à 6h demain steuplé, avec du pink floyd si possible"

Voilà je pense avoir exposé tout ce qu'il faut pour ma requête ! (je sais pas si le titre est vraiment clair cela dit)

Bonne journée !

Feldou
Messages : 7
Enregistré le : mar. 19 févr. 2019 14:52

Re: écrire dans le cron à distance et sans SSH

Message par Feldou » lun. 4 mars 2019 16:24

Petit up timidement

domi
Administrateur
Messages : 2621
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: écrire dans le cron à distance et sans SSH

Message par domi » lun. 4 mars 2019 17:07

Bonjour,
La demande est un peu vague, car écrire dans la crontab via une page web n'est pas possible nativement.
Il faut voir le code du programme, et peut-être passer par un fichier de liaison, qui d'un coté stockera les alarmes écrient par le programme web, et de l'autre écrire un autre programme qui vérifiera toute les minutes si il doit déclencher une alarme.

Feldou
Messages : 7
Enregistré le : mar. 19 févr. 2019 14:52

Re: écrire dans le cron à distance et sans SSH

Message par Feldou » mar. 5 mars 2019 00:14

domi a écrit :
lun. 4 mars 2019 17:07
écrire dans la crontab via une page web n'est pas possible nativement
OK c'est bon à savoir. Merci du tuyau

On pourrait imaginer une page où je renseigne les 7 horaires qui s'écriraient dans un fichier ASCII au format du style :
Mon 6:30
Tue 7:00
Etc...
Et par exemple le fait de modifier ce fichier lancé un script qui le traduit dans crontab.

Du coup la question devient :
- de quoi ai-je besoin pour pouvoir écrire dans ce fichier txt de manière sympa depuis mon téléphone ? Je vais me renseigner de mon côté ça doit se trouver par ici (ça sent l'apache non ? Je n'y connais rien en web)
- est il possible de lancer un script python depuis mon téléphone sans passer par ssh ? Je vais chercher sur le forum également et dans les diverses doc

On avance :) merci encore

Bud Spencer
Raspinaute
Messages : 630
Enregistré le : lun. 15 août 2016 21:38

Re: écrire dans le cron à distance et sans SSH

Message par Bud Spencer » mer. 6 mars 2019 22:36

Feldou a écrit :
mar. 5 mars 2019 00:14
bon pas la peine non plus de me proposer de coder une appli android à qui je parlerais à voix haute pour lui dire "réveille moi à 6h demain steuplé, avec du pink floyd si possible"
Dommage, ca aurait été amusant ...

Tiens, cadeau.
https://forums.framboise314.fr/viewtopi ... 840#p30840
Pas d’apache, pas de cron, autant de définitions jour,heure,minute,script-python différents que l’on veut. Tout ça en une seul fonction et un fichier de config en mode texte (json). Tout ce qu’il faut pour comprendre comment ça marche et ajouter facilement une page web qui permettrait la config depuis un navigateur (smartphone oupas) est déjà expliqué très longuement dans le reste du tuto.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Artemus24
Raspinaute
Messages : 430
Enregistré le : ven. 15 sept. 2017 19:15

Re: écrire dans le cron à distance et sans SSH

Message par Artemus24 » jeu. 7 mars 2019 00:24

Salut à tous.
Feldou a écrit :Le script est lancé par cron ce qui me convient très bien, ...
Votre problème n'est pas de lancer le script, mais de le faire à la bonne heure.
D'où comment paramétrer d'une manière interactive l'heure à laquelle votre script va se déclencher.
Feldou a écrit :SAUF QUE : pour régler l'heure dans le cron je passe par une connexion SSH
Modifier la crontab d'une manière interactive n'est pas une bonne idée.

Votre exemple est un réveil matin qui se déclenche à différentes heures selon le jour de la semaine.

Vous pouvez déclencher votre script, à partir de la crontab, disons tous les quart d'heure.
C'est ce que l'on nomme "une tâche planifiée".

Puis comme vous le suggèrer un fichier où vous indiquez vos horaires.
Pour le transférer depuis un ordinateur windows, on peut utiliser la commande "pscp" qui est disponible avec "putty".
Donc sous windows, vous avez juste à mettre en forme votre fichier et à l'envoyer en utilisant un script batch windows qui va contenir cette commande.
Par exemple :

Code : Tout sélectionner

@echo off

chcp 1252 > nul

title "Transfert vers 'Raspberry'."

set PATH=C:\Program Files (x86)\PuTty;%PATH%

echo "+-------------------------------+"
echo "|   Transfert Fichier Horaire   |"
echo "+-------------------------------+"
echo.
pscp.exe -load Raspberry -p  c:\horaire.txt      pi@192.168.1.123:/home/pi/horaire.txt
echo.
echo.
pause
exit
En ce qui concerne votre tâche planifiée qui est déclenchée par la crontab, il suffit en python de venir consulter ce fichier des horaire.
Le déclenchement doit se faire dans la périodicité de tous les quarts d'heure et tous les jours.
Par exemple, vous indiquez un déclenchement à 7H00, le lundi.

Dans votre script python, vous faites :
1) récupérer la date et l'heure système.

2) vous êtes dans une boucle (du type while), où vous allez lire une ligne à la fois, du contenu de votre fichier des horaires.

3) pour chaque ligne, vous vérifiez la condition suivante :
jour système = jour déclenchement (celui du fichier)
et
heure système <= heure de déclenchement (celui du fichier) <= heure système + 1/4 d'heure.

4) si aucune condition n'a été vérifiée, vous arrivez en fin de boucle et vous sortez définitivement de votre script.

5) si une condition est vérifiée, vous sortez de la boucle et vous poursuivez le traitement.

Vu que je ne connais pas python, je vous laisse chercher comment coder cela.
Il est inutile de réinventer le timer (solution de Bud Spencer), puisque la crontab sait très bien le faire.

@+
--> RPi0v1.3, RPi0W, Rpi2B, Rpi3A+, Rpi3B+
--> Rpi0WH + Tuner TV HAT
--> Joy-It I2C Serial 20x4 2004 LCD Module
--> RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB

Feldou
Messages : 7
Enregistré le : mar. 19 févr. 2019 14:52

Re: écrire dans le cron à distance et sans SSH

Message par Feldou » jeu. 7 mars 2019 10:14

Je pense que je n'ai effectivement pas été clair dans mes propos :

En fait pour le réglage, j'ai un script sur la raspberry (en plus du script "réveil") que je lance depuis une connexion SSH, je rentre l'heure de réveil et la durée du snooze. Le script crée une tâche planifiée dans la crontab, du style "active le réveil à 7h".
Ce que je souhaite ce n'est pas de passer par Windows mais par mon téléphone android (je n'ai pas envie d'allumer mon pc à chaque fois qu'il faut régler mon réveil !)

Je pense que le seul point qui me pose problème ici c'est de générer de manière confortable un fichier texte sur ma rapsberry pi qui contient les horaires, et ceci depuis mon téléphone portable. En évitant le terminal car c'est quand même super naze sur un téléphone...

Honnêtement une fois que j'ai un fichier "horaires" sur la carte je sais me débrouiller pour que ça finisse dans la crontab, c'est vraiment le fait de générer/modifier ce fichier qui me pose souci.

A ce propos il semblerait que la réponse ait été apportée ! Merci Bud je vois que tu t'es tapé un petit délire :) je jette un oeil ce soir mais ça ressemble à ce dont j'ai besoin ! Ni-ckel !

Terrence

Bud Spencer
Raspinaute
Messages : 630
Enregistré le : lun. 15 août 2016 21:38

Re: écrire dans le cron à distance et sans SSH

Message par Bud Spencer » jeu. 7 mars 2019 23:33

délire, il faut le dire vite … disons que ca m'amuse quand il ni a rien le soir à la téloch et que j'en ais marre de coder du turbinage :lol:

Imagines une page web ou tu pourrait ajouter ou supprimer autant d'actions que tu voudrais (jour de la semaine, heure, minute et script python). Tout ca par simple sélection dans des combos et avec en prime la possibilté d'executer les scripts d'un simple click dans la page. Forcement avec une GUI dynamique qui ne se charge qu'une fois et qui n'as pas besoin d'etre rafraichie. C'est un peut sur ca que je voulait t'orienter. Pis comme j'aime pas ne faire que balancer des idées en l'air, je me suis amusé a le faire (ca m'as pris un peu plus de 2h00). J'ai pas de pi linux dispo pour ce soir pour tester dessus donc j'ai fait sous Windows. Je testerais demain sur une Raspbian et si tout fonctionne comme prévu (pas de rasions, mais bon … je préfère etre sur), je mettrais les codes en ligne sur le post du tuto.

timer.png
timer.png (143.31 Kio) Vu 717 fois
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Utilisateurs avancés »