Well, at least there is some response now:
Code: Select all
pi@raspberrypi:~/domoticz/scripts $ sudo ./somfy.sh
Starting script in file: ./somfy.sh
./somfy.sh: line 856: syntax error: unexpected end of file
No code echo by the way
code looks like this now:
Code: Select all
#!/bin/bash
echo "Starting script in file: "$0
#----------------------------------------------------------------------------------------------------------------------
# Script alarme_Somfy.sh
# Date : 11/2016
# Version : 2.0
# Par : jcjames_13009 <jcjames_13009 at yahoo.fr>
# Description : Script de pilotage de l'alarme Somfy Protexiom 5000 via Domoticz sur Raspberry Pi
# - Adapatation du script de Seb13 du forum easydomoticz.com pour Alarme Somfy Protexion 600 au modèle Protexion 5000
# * Lecture des états du système et mise àjour dans Domoticz
# * Mise en marche de l'alarme Zone A
# * Mise en marche de l'alarme Zone B
# * Mise en marche de l'alarme Zone C
# * Mise en marche de l'alarme Zones A B C
# * Arret de l'alarme Zones A B C
# * Reset defauts piles, liaisons et alarmes
# * Gestion liste des Elements et mise àjour dans Domoticz
#----------------------------------------------------------------------------------------------------------------------
# Appel du script
# - Mise àjour des états de l'alarme toutes les 15min via le crontab :
# */15 * * * * sudo /home/pi/domoticz/scripts/somfy.sh --Status
# - Pilotage de l'alarme àpartir de DOMOTICZ :
# Ex pour la mise en marche Zone A ajouter dans l'onglet "Action On" du capteur virtuel:
# script:///home/pi/domoticz/scripts/somfy.sh --ZoneAOn
#----------------------------------------------------------------------------------------------------------------------
# Version : 2.1
# Date : 25/11/2016
# - Ajout d'un "sleep 1" pour éviter les pertes de retour d'état de l'alarme entre chaque cde dans la lecture de l'état
# du système et de la liste des Elements
#----------------------------------------------------------------------------------------------------------------------
# Version : 2.2
# Date : 27/11/2016
# - Ajout cde reset defauts piles, liaisons et alarmes
#----------------------------------------------------------------------------------------------------------------------
# Version : 2.3
# Date : 10/12/2016
# - Gestion liste des Elements et mise àjour dans Domoticz
#----------------------------------------------------------------------------------------------------------------------
# Version : 2.4
# Date : 04/01/2017
# - Envoie d'une seule commande pour éviter les pertes de retour d'état de l'alarme entre chaque cde dans la lecture de
# l'état du système et de la liste des Elements
#----------------------------------------------------------------------------------------------------------------------
# Version 2.5
# Date : 21/12/2017
# - Adaptation du script àDomoticz sur NAS Synology
# Remplacement de iconv qui n'existe pas sur Synology par uconv
#----------------------------------------------------------------------------------------------------------------------
Debug=True
#Debug=False
#----------------------------------------------------------------------------------------------------------------------
# PARAMETRES ALARME
#----------------------------------------------------------------------------------------------------------------------
# Carte d'authentification perso
declare -A CarteAuthentification
CarteAuthentification=( ["A1"]="7092" ["B1"]="2220" ["C1"]="4790" ["D1"]="5830" ["E1"]="0920" ["F1"]="0912"
["A2"]="7402" ["B2"]="5242" ["C2"]="2044" ["D2"]="5284" ["E2"]="4478" ["F2"]="8110"
["A3"]="2992" ["B3"]="9928" ["C3"]="9394" ["D3"]="9250" ["E3"]="7988" ["F3"]="4348"
["A4"]="3830" ["B4"]="5174" ["C4"]="9560" ["D4"]="8672" ["E4"]="0090" ["F4"]="0698"
["A5"]="3004" ["B5"]="1332" ["C5"]="5390" ["D5"]="7870" ["E5"]="0848" ["F5"]="3528" )
# Adresse IP alarme Somfy
SrvSomfyIp="http://10.0.0.112/"
# Code Utilisateur1
CodeUtilisateur1=9859
# URLs alarme SOMFY PROTEXION 5000 GSM
UrlLogin=$SrvSomfyIp"gb/login.htm" # Connect
UrlLogout=$SrvSomfyIp"logout.htm" # Log out
UrlEtat=$SrvSomfyIp"status.xml" # Status
UrlPilotage=$SrvSomfyIp"gb/u_pilotage.htm" # Control of alarm and automatic devices
UrlElements=$SrvSomfyIp"gb/u_listelmt.htm" # List of system devices
#----------------------------------------------------------------------------------------------------------------------
# PARAMETRES DOMOTICZ
#----------------------------------------------------------------------------------------------------------------------
# ID's Domoticz
AlarmeSomfyPilesIdx=18 #Batteries
AlarmeSomfyRadioIdx=19 #Radio link
AlarmeSomfyPorteIdx=20 #Door
AlarmeSomfyAlarmeIdx=21 #Alarm
AlarmeSomfyBoitierIdx=22 #Status
AlarmeSomfyGSMIdx=26 #GSM
AlarmeSomfySignalGSMIdx=24 #Signal
AlarmeSomfyOperateurGSMIdx=25 #Provider
#AlarmeSomfyCameraIdx=xxx #Camera
AlarmeSomfyZoneAIdx=15 #Zone A
AlarmeSomfyZoneBIdx=16 #Zone B
AlarmeSomfyZoneCIdx=17 #Zone C
#AlarmeSomfyDOEntreeIdx=xxx
#AlarmeSomfyDOAtelierIdx=xxx
# Domoticz IP Address
SrvDomoticzIp="10.0.0.30:8080"
#----------------------------------------------------------------------------------------------------------------------
# Functions
#----------------------------------------------------------------------------------------------------------------------
# Function Help Menu
Aide() {
echo -e "\tScript Domoticz Alarme Somfy Protexion 5000"
echo -e "\t--help or -h \t\tMenu d'aide"
echo -e "\t--Status \t\tLecture de l'état du système"
echo -e "\t--Elements \t\tListe des Elements"
echo -e "\t--ZoneAOn \t\tMise en marche de l'alarme Zone A"
echo -e "\t--ZoneBOn \t\tMise en marche de l'alarme Zone B"
echo -e "\t--ZoneCOn \t\tMise en marche de l'alarme Zone C"
echo -e "\t--ZonesABCOn \t\tMise en marche de l'alarme Zones A B C"
echo -e "\t--AlarmeOff \t\tArret de l'alarme Zones A B C"
echo -e "\t--RSTPiles \t\tReset defauts piles"
echo -e "\t--RSTAlarmes \t\tReset defauts alarmes"
echo -e "\t--RSTLiaisons \t\tReset defauts liaisons"
}
# Function Alarm Connection
login_alarme () {
# Affichage des URLs
if [ "$Debug" = "True" ]; then
echo " ********************************* "
echo " Liste des URLs"
echo " ********************************* "
echo " UrlLogin = "$UrlLogin
echo " UrlLogout = "$UrlLogout
echo " UrlEtat = "$UrlEtat
echo " UrlPilotage = "$UrlPilotage
echo " UrlElements = "$UrlElements
fi
# Get access code
if [ "$Debug" = "True" ]; then
echo " Retrieving access code""
CodeAcces="$(curl $SrvSomfyIp $UrlLogin | grep -Eoi 'code <b>.*</b>')"
CodeAcces="$(echo "${CodeAcces:9:2}")"
echo " Access code = "$CodeAcces
else
CodeAcces="$(curl -s $SrvSomfyIp $UrlLogin | grep -Eoi 'code <b>.*</b>')"
CodeAcces="$(echo "${CodeAcces:9:2}")"
fi
# Get access code from table
CodeAuthentification="${CarteAuthentification["$CodeAcces"]}"
if [ "$Debug" = "True" ]; then
echo " Ophalen Authentificatiecode"
echo " Authenticatiecode = "$CodeAuthentification
fi
# De user1-code en de authenticatiecode verzenden in de aanmeldings-URL voor Inloggen
if [ "$Debug" = "True" ]; then
echo " Gebruiker1-code en verificatiecode verzenden"
curl -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
}
# Functie verbinden met Alarm
logout_alarme () {
if [ "$Debug" = "True" ]; then
echo " Verbinden met alarm"
curl -L --cookie cjar --cookie-jar cjar $UrlLogout | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar $UrlLogout | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar $UrlLogout | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar $UrlLogout | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
}
# Functie update Domoticz sensoren
# Parameters: $1 Sensornaam / $2 On / Off / $3 Idx sensor
maj_capteur () {
if [ "$Debug" = "True" ]; then
echo " Staat "$1
if [ "$2" = "On" ]; then
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=On"
else
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=Off"
fi
else
if [ "$2" = "On" ]; then
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=On" > /dev/null
else
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=Off" > /dev/null
fi
fi
}
#----------------------------------------------------------------------------------------------------------------------
# Menu des options de lancement du script
#----------------------------------------------------------------------------------------------------------------------
while [[ $1 == -* ]]; do
case "$1" in
--help|-h) Aide; exit 0;;
--Status) Status="1"; break;;
--Elements) Elements="1"; break;;
--ZoneAOn) ZoneAOn="1"; break;;
--ZoneBOn) ZoneBOn="1"; break;;
--ZoneCOn) ZoneCOn="1"; break;;
--ZonesABCOn) ZonesABCOn="1"; break;;
--AlarmeOff) AlarmeOff="1"; break;;
--RSTPiles) RSTPiles="1"; break;;
--RSTAlarmes) RSTAlarmes="1"; break;;
--RSTLiaisons) RSTLiaisons="1"; break;;
--*|-*) shift; break;;
esac
done
#----------------------------------------------------------------------------------------------------------------------
# Lecture de l'état du système
#----------------------------------------------------------------------------------------------------------------------
if [ "$Status" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Lecture de l'état du système et récupération dans les variables
# Envoie URL http://IPAlarme/status.xml
# Retour:
# <zone0>off</zone0> -> Zone A
# <zone1>off</zone1> -> Zone B
# <zone2>off</zone2> -> Zone C
#
# <defaut0>ok</defaut0> -> Piles
# <defaut1>ok</defaut1> -> Radio
# <defaut2>ok</defaut2> -> Porte/Fenêtre
# <defaut3>ok</defaut3> -> Alarme
# <defaut4>ok</defaut4> -> Boitier
#
# <gsm>GSM connecté au réseau</gsm> -> GSM
# <recgsm>4</recgsm> -> Signal GSM
# <opegsm>"Orange</opegsm> -> Opérateur GSM
# <camera>disabled</camera> -> Caméra
# Lecture de l'état du système et stockage dans fichier temporaire
if [ "$Debug" = "True" ]; then
echo " Lecture de l'état du système"
curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status
#curl -L --cookie cjar --cookie-jar cjar $UrlEtat | uconv -f iso8859-1 -t utf-8 > status
else
curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status
#curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | uconv -f iso8859-1 -t utf-8 > status
fi
# Deconnexion de l'alarme
logout_alarme
# Récupération dans les variables
EtatZoneA="$(grep -Eoi '<zone0>.*' status)"
EtatZoneA="$(echo "${EtatZoneA:7:-9}")"
EtatZoneB="$(grep -Eoi '<zone1>.*' status)"
EtatZoneB="$(echo "${EtatZoneB:7:-9}")"
EtatZoneC="$(grep -Eoi '<zone2>.*' status)"
EtatZoneC="$(echo "${EtatZoneC:7:-9}")"
EtatPiles="$(grep -Eoi '<defaut0>.*' status)"
EtatPiles="$(echo "${EtatPiles:9:-11}")"
EtatRadio="$(grep -Eoi '<defaut1>.*' status)"
EtatRadio="$(echo "${EtatRadio:9:-11}")"
EtatPorte="$(grep -Eoi '<defaut2>.*' status)"
EtatPorte="$(echo "${EtatPorte:9:-11}")"
EtatAlarme="$(grep -Eoi '<defaut3>.*' status)"
EtatAlarme="$(echo "${EtatAlarme:9:-11}")"
EtatBoitier="$(grep -Eoi '<defaut4>.*' status)"
EtatBoitier="$(echo "${EtatBoitier:9:-11}")"
EtatGSM="$(grep -Eoi '<gsm>.*' status)"
EtatGSM="$(echo "${EtatGSM:5:-7}")"
SignalGSM="$(grep -Eoi '<recgsm>.*' status)"
SignalGSM="$(echo "${SignalGSM:8:-10}")"
OperateurGSM="$(grep -Eoi '<opegsm>.*' status)"
OperateurGSM="$(echo "${OperateurGSM:9:-10}")"
EtatCamera="$(grep -Eoi '<camera>.*' status)"
EtatCamera="$(echo "${EtatCamera:8:-10}")"
if [ "$Debug" = "True" ]; then
# Statusoverzicht
echo " ******************************************* "
echo " Status van het systeem"
echo " ******************************************* "
echo " Zone A = "$EtatZoneA
echo " Zone B = "$EtatZoneB
echo " Zone C = "$EtatZoneC
echo ""
echo " Status Batterijen = "$EtatPiles
echo " Status communicatie = "$EtatRadio
echo " Status Ramen/Deuren = "$EtatPorte
echo " Status Alarm = "$EtatAlarme
echo " Status Behuizing = "$EtatBoitier
echo ""
echo " Status GSM = "$EtatGSM
echo " Signal GSM = "$SignalGSM
echo " GSM Provider = "$OperateurGSM
echo ""
echo " Status Camera = "$EtatCamera
fi
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
# Zone A
if [ "$EtatZoneA" = "off" ]; then
maj_capteur ZoneA Off $AlarmeSomfyZoneAIdx
else
maj_capteur ZoneA On $AlarmeSomfyZoneAIdx
fi
# Zone B
if [ "$EtatZoneB" = "off" ]; then
maj_capteur ZoneB Off $AlarmeSomfyZoneBIdx
else
maj_capteur ZoneB On $AlarmeSomfyZoneBIdx
fi
# Zone C
if [ "$EtatZoneC" = "off" ]; then
maj_capteur ZoneC Off $AlarmeSomfyZoneCIdx
else
maj_capteur ZoneC On $AlarmeSomfyZoneCIdx
fi
# Status Batterijen
if [ "$EtatPiles" = "ok" ]; then
maj_capteur Piles On $AlarmeSomfyPilesIdx
else
maj_capteur Piles Off $AlarmeSomfyPilesIdx
fi
# Status Communicatie
if [ "$EtatRadio" = "ok" ]; then
maj_capteur Radio On $AlarmeSomfyRadioIdx
else
maj_capteur Radio Off $AlarmeSomfyRadioIdx
fi
# Status Ramen/Deuren
if [ "$EtatPorte" = "ok" ]; then
maj_capteur Porte/Fenetre Off $AlarmeSomfyPorteIdx
else
maj_capteur Porte/Fenetre On $AlarmeSomfyPorteIdx
fi
# Status Alarm
if [ "$EtatAlarme" = "ok" ]; then
maj_capteur Alarme Off $AlarmeSomfyAlarmeIdx
else
maj_capteur Alarme On $AlarmeSomfyAlarmeIdx
fi
# Status Behuizing
if [ "$EtatBoitier" = "ok" ]; then
maj_capteur Boitier Off $AlarmeSomfyBoitierIdx
else
maj_capteur Boitier On $AlarmeSomfyBoitierIdx
fi
# Status GSM
if [ "$EtatGSM" = "GSM connecté au réseau" ]; then
maj_capteur GSM On $AlarmeSomfyGSMIdx
else
maj_capteur GSM Off $AlarmeSomfyGSMIdx
fi
# GSM Signaal
if [ "$Debug" = "True" ]; then
echo " Niveau Signal GSM"
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM"
else
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM" > /dev/null
fi
# GSM Provider
if [ "$Debug" = "True" ]; then
echo " Opérateur GSM"
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM"
else
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM" > /dev/null
fi
# Camera
#if [ "$EtatCamera" = "disabled" ]; then
# maj_capteur Camera Off $AlarmeSomfyCameraIdx
#else
# maj_capteur Camera On $AlarmeSomfyCameraIdx
#fi
fi
#----------------------------------------------------------------------------------------------------------------------
# Mise en marche de l'alarme Zones A B C
#----------------------------------------------------------------------------------------------------------------------
if [ "$ZonesABCOn" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Mise en marche de l'alarme Zones A B C
if [ "$Debug" = "True" ]; then
echo "Mise en marche de l'alarme Zones A B C"
curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
maj_capteur ZoneA On $AlarmeSomfyZoneAIdx
maj_capteur ZoneB On $AlarmeSomfyZoneBIdx
maj_capteur ZoneC On $AlarmeSomfyZoneCIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Mise en marche de l'alarme Zone A
#----------------------------------------------------------------------------------------------------------------------
if [ "$ZoneAOn" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Mise en marche de l'alarme Zone A
if [ "$Debug" = "True" ]; then
echo "Mise en marche de l'alarme Zone A"
curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
maj_capteur ZoneA On $AlarmeSomfyZoneAIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Mise en marche de l'alarme Zone B
#----------------------------------------------------------------------------------------------------------------------
if [ "$ZoneBOn" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Mise en marche de l'alarme Zone B
if [ "$Debug" = "True" ]; then
echo "Mise en marche de l'alarme Zone B"
curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
maj_capteur ZoneB On $AlarmeSomfyZoneBIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Mise en marche de l'alarme Zone C
#----------------------------------------------------------------------------------------------------------------------
if [ "$ZoneCOn" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Mise en marche de l'alarme Zone C
if [ "$Debug" = "True" ]; then
echo "Mise en marche de l'alarme Zone C"
curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
maj_capteur ZoneC On $AlarmeSomfyZoneCIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Arret de l'alarme Zones A B C
#----------------------------------------------------------------------------------------------------------------------
if [ "$AlarmeOff" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Arret de l'alarme Zones A B C
if [ "$Debug" = "True" ]; then
echo "Arret de l'alarme Zones A B C"
curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
maj_capteur ZoneA Off $AlarmeSomfyZoneAIdx
maj_capteur ZoneB Off $AlarmeSomfyZoneBIdx
maj_capteur ZoneC Off $AlarmeSomfyZoneCIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Reset defauts piles
#----------------------------------------------------------------------------------------------------------------------
if [ "$RSTPiles" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Reset defauts piles
if [ "$Debug" = "True" ]; then
echo "Reset defauts piles"
curl -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
fi
#----------------------------------------------------------------------------------------------------------------------
# Reset defauts alarmes
#----------------------------------------------------------------------------------------------------------------------
if [ "$RSTAlarmes" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Reset defauts alarmes
if [ "$Debug" = "True" ]; then
echo "Reset defauts alarmes"
curl -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
fi
#----------------------------------------------------------------------------------------------------------------------
# Reset defauts liaisons
#----------------------------------------------------------------------------------------------------------------------
if [ "$RSTLiaisons" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Reset defauts liaisons
if [ "$Debug" = "True" ]; then
echo "Reset defauts liaisons"
curl -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | iconv -f iso8859-1 -t utf-8
#curl -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | uconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
#curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Deconnexion de l'alarme
logout_alarme
fi
#----------------------------------------------------------------------------------------------------------------------
# Gestion de la liste des Elements
#----------------------------------------------------------------------------------------------------------------------
if [ "$Elements" = "1" ]; then
# Connexion àl'alarme
login_alarme
# Lecture de la liste des Elements et stockage dans fichier temporaire
if [ "$Debug" = "True" ]; then
echo "Gestion liste des Elements"
curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 > elements
#curl -L --cookie cjar --cookie-jar cjar $UrlElements | uconv -f iso8859-1 -t utf-8 > elements
else
curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 > elements
#curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | uconv -f iso8859-1 -t utf-8 > elements
fi
# Deconnexion de l'alarme
logout_alarme
# Récupération dans les variables
TypeElements="$(grep -Eoi 'var item_label.*' elements)"
NomElements="$(grep -Eoi 'var elt_name.*' elements)"
EtatElements="$(grep -Eoi 'var item_pause.*' elements)"
EtatPiles="$(grep -Eoi 'var elt_pile.*' elements)"
EtatLiaison="$(grep -Eoi 'var elt_onde.*' elements)"
EtatPortes="$(grep -Eoi 'var elt_porte.*' elements)"
EtatBoitiers="$(grep -Eoi 'var elt_as.*' elements)"
EtatAlarme="$(grep -Eoi 'var elt_maison.*' elements)"
# Affichage des Elements
if [ "$Debug" = "True" ]; then
echo " Type des Elements"
echo $TypeElements
echo " Nom des Elements"
echo $NomElements
echo " Etat des Elements"
echo $EtatElements
echo " Etat des piles"
echo $EtatPiles
echo " Etat liaison radio"
echo $EtatLiaison
echo " Etat détecteurs ouverture"
echo $EtatPortes
echo " Etat ouverture boitiers"
echo $EtatBoitiers
echo " Etat alarme"
echo $EtatAlarme
fi
# Formatage du type des Elements
# Suppression des 21 1er caractères et 2 derniers
TypeElements="$(echo "${TypeElements:21:-2}")"
# Suppression des "
TypeElements="$(echo "$TypeElements" | sed s/\"//g)"
# Suppression des espaces entre les ,
TypeElements="$(echo "$TypeElements" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabTypeElements=($TypeElements)
# Formatage des noms des Elements
# Suppression des 21 1er caractères et 2 derniers
NomElements="$(echo "${NomElements:21:-2}")"
# Suppression des "
NomElements="$(echo "$NomElements" | sed s/\"//g)"
# Suppression des espaces entre les ,
NomElements="$(echo "$NomElements" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabNomElements=($NomElements)
# Formatage état des Elements
# Suppression des 21 1er caractères et 2 derniers
EtatElements="$(echo "${EtatElements:21:-2}")"
# Suppression des "
EtatElements="$(echo "$EtatElements" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatElements="$(echo "$EtatElements" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatElements=($EtatElements)
# Modification valeurs tableau
TailleTab=${#TabEtatElements[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatElements["$i"]} = "running" ]; then TabEtatElements["$i"]="Activé"
else
TabEtatElements["$i"]="Désactivé"
fi
done
# Formatage état des piles
# Suppression des 21 1er caractères et 2 derniers
EtatPiles="$(echo "${EtatPiles:21:-2}")"
# Suppression des "
EtatPiles="$(echo "$EtatPiles" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatPiles="$(echo "$EtatPiles" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatPiles=($EtatPiles)
# Modification des valeurs du tableau
TailleTab=${#TabEtatPiles[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatPiles["$i"]} = "itemhidden" ]; then TabEtatPiles["$i"]="NA"
else
if [ ${TabEtatPiles["$i"]} = "itembattok" ]; then TabEtatPiles["$i"]="OK"
else
TabEtatPiles["$i"]="NOK"
fi
fi
done
# Formatage état liaison radio
# Suppression des 21 1er caractères et 2 derniers
EtatLiaison="$(echo "${EtatLiaison:21:-2}")"
# Suppression des "
EtatLiaison="$(echo "$EtatLiaison" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatLiaison="$(echo "$EtatLiaison" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatLiaison=($EtatLiaison)
# Modification des valeurs du tableau
TailleTab=${#TabEtatLiaison[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatLiaison["$i"]} = "itemhidden" ]; then TabEtatLiaison["$i"]="NA"
else
if [ ${TabEtatLiaison["$i"]} = "itemcomok" ]; then TabEtatLiaison["$i"]="OK"
else
TabEtatLiaison["$i"]="NOK"
fi
fi
done
# Récup état détecteurs ouverture
# Suppression des 21 1er caractères et 2 derniers
EtatPortes="$(echo "${EtatPortes:21:-2}")"
# Suppression des "
EtatPortes="$(echo "$EtatPortes" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatPortes="$(echo "$EtatPortes" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatPortes=($EtatPortes)
# Modification des valeurs du tableau
TailleTab=${#TabEtatPortes[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatPortes["$i"]} = "itemhidden" ]; then TabEtatPortes["$i"]="NA"
else
if [ ${TabEtatPortes["$i"]} = "itemdoorok" ]; then TabEtatPortes["$i"]="Fermée"
else
TabEtatPortes["$i"]="Ouverte"
fi
fi
done
# Récup état ouverture boitiers
# Suppression des 21 1er caractères et 2 derniers
EtatBoitiers="$(echo "${EtatBoitiers:21:-2}")"
# Suppression des "
EtatBoitiers="$(echo "$EtatBoitiers" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatBoitiers="$(echo "$EtatBoitiers" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatBoitiers=($EtatBoitiers)
# Modification des valeurs du tableau
TailleTab=${#TabEtatBoitiers[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatBoitiers["$i"]} = "itemhidden" ]; then TabEtatBoitiers["$i"]="NA"
else
if [ ${TabEtatBoitiers["$i"]} = "itemboxok" ]; then TabEtatBoitiers["$i"]="Fermé"
else
TabEtatBoitiers["$i"]="Ouvert"
fi
fi
done
# Récup état alarme
# Suppression des 21 1er caractères et 2 derniers
EtatAlarme="$(echo "${EtatAlarme:21:-2}")"
# Suppression des "
EtatAlarme="$(echo "$EtatAlarme" | sed s/\"//g)"
# Suppression des espaces entre les ,
EtatAlarme="$(echo "$EtatAlarme" | sed s/\,\ /\,/g)"
# Déclaration , comme séparateur
IFS=","
# Stockage dans le tableau
TabEtatAlarme=($EtatAlarme)
# Modification des valeurs du tableau
TailleTab=${#TabEtatAlarme[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabEtatAlarme["$i"]} = "itemhouseok" ]; then TabEtatAlarme["$i"]="Pas d'alarme"
else
TabEtatAlarme["$i"]="Alarme"
fi
done
# Affichage de la liste des Elements
if [ "$Debug" = "True" ]; then
echo " Liste des Elements"
TailleTab=${#TabNomElements[@]}
for (( i=0; i<$TailleTab; i++ ))
do
echo " Type : "${TabTypeElements["$i"]} "/ Nom : "${TabNomElements["$i"]} "/ Etat : "${TabEtatElements["$i"]} "/ Etat piles : "${TabEtatPiles["$i"]} "/ Etat liaison : "${TabEtatLiaison["$i"]} "/ Etat portes : "${TabEtatPortes["$i"]} "/ Etat boitiers : "${TabEtatBoitiers["$i"]} "/ Etat alarme : "${TabEtatAlarme["$i"]}
done
fi
# Mise àjour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise àjour capteurs Domoticz"
fi
# DO Entré
TailleTab=${#TabNomElements[@]}
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabNomElements["$i"]} = "DO Entree" ]; then PosElement=$i
fi
done
if [ ${TabEtatPortes["$PosElement"]} = "Fermée" ]; then
maj_capteur DOEntrée Off $AlarmeSomfyDOEntreeIdx
else
maj_capteur DOEntrée On $AlarmeSomfyDOEntreeIdx
fi
# DO Couloir
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabNomElements["$i"]} = "DO Couloir" ]; then PosElement=$i
fi
done
if [ ${TabEtatPortes["$PosElement"]} = "Fermée" ]; then
maj_capteur DOAtelier Off $AlarmeSomfyDOAtelierIdx
else
maj_capteur DOAtelier On $AlarmeSomfyDOAtelierIdx
fi
fi
exit 0