Quoi de plus logique que d'indiquer les scripts qui font défaut... dsl
Alors pour Lecture GPIO j'ai le script suivant:
Code : Tout sélectionner
#!/bin/bash
setup ()
{
echo Setup
gpio -g mode 21 in
porte="fermee"
}
AttentePorte ()
{
while [ 1 ]; do
if [ `gpio -g read 21` = 1 ] && [ "$porte" == "fermee" ]; then
mosquitto_pub -h mon.host.ext -i testPublish -t porte -m 'Porte de la buanderie ouverte'
wget -O - -q -t 1 http://api.pushingbox.com/pushingbox?devid=xxxxxxxxxxxxxx
porte="ouverte"
echo $porte
fi
if [ `gpio -g read 21` = 0 ] && [ "$porte" == "ouverte" ]; then
mosquitto_pub -h mon.host.ext -i testPublish -t porte -m 'Porte de la buanderie fermée'
porte="fermee"
echo $porte
fi
sleep 0.1
done
}
setup
while true; do
AttentePorte
done
Pour lancer le script au boot j'ai ajouter les lignes 20 à 24 dans mon rc.local:
Code : Tout sélectionner
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file
exec 1>&2 # send stdout to the same log file
set -x # tell sh to display commands before execution
/home/pi/porte.sh &
exit 0
Erreur retournée dans mon rc.local.log:
...
/home/pi/porte.sh: line 22: gpio: command not found
/home/pi/porte.sh: line 22: [: =: unary operator expected
/home/pi/porte.sh: line 15: gpio: command not found
/home/pi/porte.sh: line 15: [: =: unary operator expected
...
J'ajoute que le script fonctionne très bien lorsque lancé manuellement.
Voilà des informations complettes
