Qelles commandes pour créer fichier ?


#1

Bonsoir tout le monde,:grinning:

Avec mon RPI3b+, j’ai installé Jeedom. J’ai aussi modifié un fichier de script pour qu’il fonctionne chez moi et que j’ai appelé “volets_jeedom” avec la commande en SSH : sudo nano volets_jeedom.

Pourriez-vous m’aider à trouver la commande pour créer ce fichier dans : /usr/share/nginx/www/jeedom/plugins/script/core/ressources/
J’ai essayé plusieurs fois sans trouver la solution : :rage: : réponse lors du Ctrl X + O = fichier ou répertoire n’existe pas ou Aucun fichier ou dossier de ce type ! :skull:

Question 2 : Est-ce que les commandes suivantes sont toujours d’actualités ? Et dois-je remplacer des termes dans ces commandes pour que cela fonctionne chez moi ?
1 #sudo chown www-data:www-data /usr/share/nginx/www/jeedom/plugins/script/core/ressources/volets_jeedom.sh
2 #sudo chmod +x /usr/share/nginx/www/jeedom/plugins/script/core/ressources/volets_jeedom.sh

Un grand merci pour vos réponses. :raised_hands:
Bien à vous. Cordialement.
Patrice


#2

Salut Patrice,

Je pense que volets_jeedom est dans /home/pi donc /home/pi/volets_jeedom
sudo cp /home/pi/volets_jeedom /usr/share/nginx/www/jeedom/plugins/script/core/ressources/

Pour copier volets_jeedom dans /usr/share/nginx/www/jeedom/plugins/script/core/ressources/

ou
sudo nano /usr/share/nginx/www/jeedom/plugins/script/core/ressources/volets_jeedom
Pour en créer un vide que tu rempliras.

Pour la question 2 = ça me semble logique comme commandes (mais je ne suis pas informaticien, encore moins codeur et je n’utilise pas Jeedom).

++


#3

Un très grand merci à toi Nabla :+1:
Effectivement, le fichier 2volets_jeedom" est dans ce répertoire /home/pi.
Je vais essayer cela ce soir. Dans le gros livre de “Raspberry Pi3 ou Pi Zero”, j’avais vu cette commande CP mais cela ne m’a interpelé. La prochaine fois, je lirai encore avec plus d’attention.
Pour la Q2, il me semble que j’ai vu ces commandes dans la doc de Jeedom. Je vais revoir cela.
Merci encore pour ces informations et pour ton temps passé à me répondre.
Cordialement.
Patrice


#4

Rebonjour Nabla,
Je viens de tester la 1ère commande que tu m’as donnée. Cela donne cela :
sudo cp /home/pi/volets_jeedom /usr/share/nginx/www/jeedom/plugins/script/core/ressources/
cp: impossible de créer le fichier standard ‘/usr/share/nginx/www/jeedom/plugins/script/core/ressources/’: Aucun fichier ou dossier de ce type
J’ai déjà eu cette réponse pour d’autres commandes.


#5

Encore moi !!!
Pour la 2ème commande, sudo nano /usr/share/nginx/www/jeedom/plugins/script/core/ressources/volets_jeedom, j’ai comme retour : [ Erreur lors de l’écriture de /usr/share/nginx/www/jeedom/plugins/script/core/ressources/volets_jeedom : Aucun fichier ou dossier de ce type ].
Comme précédemment, j’ai déjà eu cette info auparavant.
Merci pour l’aide.
Patrice


#6

Salut,

J’ai tout appris en essayant ; jamais en lisant de livres :wink:
Je suis partisan de la “méthode singe” car je suis un peu “hyperactif” (dans le mouvement)
Bon, j’avoue, le “plus mieux” est de faire les 2.
Il est préférable de lire, comprendre et tester :slight_smile:

Aucun fichier ou dossier de ce type
Donc on va tester
/usr/share/nginx/www/jeedom/plugins/script/core/ressources/

Si tu fais cd /usr/share/nginx/www/jeedom/plugins/script/core/ressources/, tu as quoi comme réponse ?
Et on fait pareil pour :

  • cd /usr/share/nginx/www/jeedom/plugins/script/core/
  • cd /usr/share/nginx/www/jeedom/plugins/script/
  • cd /usr/share/nginx/www/jeedom/plugins/
  • cd /usr/share/nginx/www/jeedom/
  • cd /usr/share/nginx/www/
  • cd /usr/share/nginx/
  • cd /usr/share/

Tu suis le principe ?

++


#7

Difficile de répondre sans savoir plus précisément ce que vous essayez de faire… Ce qui m’interpelle, c’est “J’ai aussi modifié un fichier de script pour qu’il fonctionne chez moi”. Peut-on en savoir plus ?
À titre d’information en vrac :

  • si vous avez un message “Aucun fichier ou dossier de ce type” alors que vous essayez de sauvegarder ou copier un fichier, cela signifie qu’un des dossiers dans l’arborescence “/usr/share/nginx/www/jeedom/plugins/script/core/ressources/” n’existe pas. Cela peut être “ressources”. C’est étrange qu’un dossier nécessaire au fonctionnement soit absent. Cela peut-être dû à une installation qui c’est mal passé.
  • “chown www-data:www-data etc” est généralement utilisé pour rendre un service web propriétaire d’un fichier. C’est la plupart du temps dangereux et inutile. Dangereux parce qu’un utilisateur connecté au site pourrait potentiellement modifier le contenu du fichier, et inutile : il suffit que le fichier soit accessible, ce qui est le cas par défaut. À moins de savoir exactement ce qu’on fait.
  • “chmod” rend le fichier exécutable. Logique et indispensable pour un script shell.Votre fichier “.sh” en est probablement un.

#8

Salut,
Je viens d’installer Jeedom en qq minutes (la fibre, ça aide) sur mon Rpi3B+ pour tester ton souci (je n’utiliserai pas et réinstallerai Raspbian après pour passer à la dernière version).
C’est quoi ton script volets_jeedom ? ; tu l’as pris où ?
Tu ne passes pas par leur “market” ?
++


#9

Voilà Nabla,
J’ai repris l’article à cette adresse : https://www.kzenjoy.net/2016/personnaliser-louverture-des-volets-somfy-avec-jeedom-et-les-scripts/
Mon script est celui-ci après adaptation pour mon installation. J’ai aussi ajouté dans le script de base, le commentaire de ébouriffeur. J’ai modifier et enregistrer ce script dans Bloc-Note. Cela donne cela :

#!/bin/bash

#Usage :
#volets_jeedom -v VOLET -n NIVEAU
#VOLET = RF Volet Fenêtre - Cuisine, RF Volet Porte-Fenêtre - Cuisine, RF Volet Porte-Fenêtre - Salon
#NIVEAU = de 0 à 100%

Définition des variables

SERVER=“192.168.1.220”
CMD=“http://$SERVER/jeedom/core/api/jeeApi.php?apikey=ESjn5bHOCxIt46i9F3I1AOgL5v4k5xJZ&type=cmd&id=

function help
{
echo “########################################################################################################”
echo “# volets_jeedom -v VOLET -n NIVEAU #”
echo “# #”
echo “# VOLET = RF Volet Fenêtre - Cuisine, RF Volet Porte-Fenêtre - Cuisine, RF Volet Porte-Fenêtre - Salon #”
echo “# NIVEAU = de 0 à 100% #”
echo “########################################################################################################”
}

On définit les options du script

while getopts :hp:n: option
do
case $option in§
h)
help;;

v)
VOLET=$OPTARG;;

n)
NIVEAU=$OPTARG;;

?)
echo “Il manque les options”
help;;

:slight_smile:
echo “Il n’y a pas d’argument”
help;;
esac
done

shift $((OPTIND-1))

Récupération des variables en fonction du volet choisi

Les ID sont à récupérer dans “Général/Résumé domotique” dans Jeedom

case $VOLET in
RF Volet Fenêtre - Cuisine)
TEMPS_CYCLE_VOLET=17 # Temps d’ouverture complet du volet
ID_Monter=122
ID_Descendre=123
ID_Stop=124;;

RF Volet Porte-Fenêtre - Cuisine)
TEMPS_CYCLE_VOLET=29 # Temps d’ouverture complet du volet
ID_Monter=118
ID_Descendre=119
ID_Stop=120;;

RF Volet Porte-fenêtre - Salon)
TEMPS_CYCLE_VOLET=20 # Temps d’ouverture complet du volet
ID_Monter=126
ID_Descendre=127
ID_Stop=128;;
esac

Exécution des commandes en fonction du niveau souhaitée

0% = fermé et 100% = ouvert

On regarde si le % souhaité est plus ou moins grand que 50. Cela évite, si on veut par exemple ouvrir le volet à 90% et

qu’il est déjà ouvert, de le fermer complètement pour le ré-ouvrir de 90%. On effectuera l’action dans l’autre sens, à savoir

le descendre de 10%.

On a rajouté deux bloc de commande en plus :

position de 0 à 1 , 2 à 50 , 51 à 98 , 99 à 100

ce qui donne si le temps de Montée est égal au temps de Descente :

if [[ « $NIVEAU » -ge 0 && « NIVEAU » -le 1 ]];
then
#On calcule le temps d’ouverture du volet pour le % souhaité
TEMPS_ATTENTE=$((($NIVEAU*$TEMPS_CYCLE_VOLET)/100))

On calcule le temps d’ouverture du volet

curl -s -i -H « Accept: application/json » « $CMD$ID_Descendre »
elif [[ « $NIVEAU » -ge 2 && « NIVEAU » -le 50 ]];
then
#On calcule le temps d’ouverture du volet pour le % souhaité
TEMPS_ATTENTE=$((($NIVEAU*$TEMPS_CYCLE_VOLET)/100))

On calcule le temps d’ouverture du volet

curl -s -i -H « Accept: application/json » « $CMD$ID_Descendre »
sleep $TEMPS_CYCLE_VOLET
curl -s -i -H « Accept: application/json » « $CMD$ID_Monter »
sleep $TEMPS_ATTENTE
curl -s -i -H « Accept: application/json » « $CMD$ID_Stop »
elif [[ « $NIVEAU » -ge 51 && « NIVEAU » -le 98 ]];
then
TEMPS_ATTENTE=$(($TEMPS_CYCLE_VOLET-(($NIVEAU*$TEMPS_CYCLE_VOLET)/100)))
curl -s -i -H « Accept: application/json » « $CMD$ID_Monter »
sleep $TEMPS_CYCLE_VOLET
curl -s -i -H « Accept: application/json » « $CMD$ID_Descendre »
sleep $TEMPS_ATTENTE
curl -s -i -H « Accept: application/json » « $CMD$ID_Stop »
elif [[ « $NIVEAU » -ge 99 && « NIVEAU » -le 100 ]];
then
TEMPS_ATTENTE=$(($TEMPS_CYCLE_VOLET-(($NIVEAU*$TEMPS_CYCLE_VOLET)/100)))
curl -s -i -H « Accept: application/json » « $CMD$ID_Monter »
fi

Ensuite, j’ai voulu suivre la méthode donnée dans l’article mais je me heurte à des retours comme : impossible de créer le fichier ou aucun fichier ou dossier de ce type …
Par contre, j’ai des doute que la mise à jour de Rasbian ce soit faite correctement lors de son installation ? Je viens de la refaire mais tout semble normal…
Merci pour ton aide. Je reviens vers toi après 16h00.
A bientôt.
Patrice


#10

Salut,

Je suis sur le Rpi où j’ai lancé.
Je n’ai rien installé de plus (je suis en train de me faire un BarTop donc j’ai plus scié et poncé que bidouillé cette après-midi)

pi@raspberrypi:~ $ cd /usr/share/nginx/www/jeedom/plugins/script/core/ressources
bash: cd: /usr/share/nginx/www/jeedom/plugins/script/core/ressources: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx/www/jeedom/plugins/script/core
bash: cd: /usr/share/nginx/www/jeedom/plugins/script/core: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx/www/jeedom/plugins/script
bash: cd: /usr/share/nginx/www/jeedom/plugins/script: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx/www/jeedom/plugins
bash: cd: /usr/share/nginx/www/jeedom/plugins: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx/www/jeedom
bash: cd: /usr/share/nginx/www/jeedom: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx/www
bash: cd: /usr/share/nginx/www: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share/nginx
bash: cd: /usr/share/nginx: Aucun fichier ou dossier de ce type
pi@raspberrypi:~ $ cd /usr/share
pi@raspberrypi:/usr/share $ 

Bref, tu ne peux rien créer dans /usr/share/nginx/www/jeedom/plugins/script/core/ressources/ puis çq n’existe pas après /usr/share (c’est normal que /usr/share existe).

Il existe 3 dossiers “jeedom” dans mon Rpi :

  • /tmp/jeedom
  • /var/www/html/core/css/icon/jeedom
  • /var/lib/mysql/jeedom

Je crains donc que le tuto ne soit pas réalisable en l’état car l’article sur lequel tu te bases a un défaut : il date du [7 février 2016] ce qui revient à une éternité en informatique :wink:

++


#11

Bonjour Nabla,
Merci pour toutes ces informations. Effectivement, le tuto date !! C’est certainement une des raisons que cela ne fonctionne pas.
Je vais voir ailleurs et notamment dans le forum de Jeedom où je peux trouver ce que je cherche.
Merci encore pour ton aide. On se retrouve au bar alors …
Cordialement.
Patrice