#!/bin/bash

# Vérifie que l'on est en Root
if [[ $EUID -ne 0 ]];
then
	echo "Ce script doit être exécuté avec les privilèges administrateur"
   	exit 1
fi

IP_DEVICE=192.168.0.4	# Adresse IP du smartphone
GPIO_PORT=17		# Port GPIO à contrôler

Hdebut=8		# Début du créneau horaire pour couper le chauffage automatiquement
Hfin=11			# Fin du créneau horaire pour couper le chauffage automatiquement

function read_GPIO {

	if [ `/usr/local/bin/gpio -g read $GPIO_PORT` -eq 0 ]
	then
		return 0	# 0 = True
	else
		return 1	# 1 = False
	fi

}

function switch_GPIO {

	# -g paramètre permettant d'utiliser le numero de GPIO standard et non celui de WiringPi

	/usr/local/bin/gpio -g write $GPIO_PORT $1

}

function try_device {

	# -q paramètre du mode silencieux
	# -c nombre de pings à effectuer

	ping -q -c3 $1 > /dev/null

	if [ $? -eq 0 ]			# Si le résultat du ping est vrai => Donc si le device est trouvé
	then
		if ! read_GPIO		# Si read_GPIO est égal à 1
		then
			echo "$(date +%Y%m%d-%H:%M) - Device $1 trouvé : Mode jour activé"
			switch_GPIO 0
		fi

	elif read_GPIO			# Si read_GPIO est égal à 0
		then
			if [ $(date +%H) -ge $Hdebut ] && [ $(date +%H) -le $Hfin ]
			then
				echo "$(date +%Y%m%d-%H:%M) - Device $1 non trouvé : Mode nuit activé"
				switch_GPIO 1
			fi
	fi

}

try_device $IP_DEVICE

exit 0
