[Bash] Script alarme Somfy Protexiom 5000
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
Bon j'ai encore essayé autre chose j'ai renommé le fichier alarme.sh par somfyv1.sh
et j'ai testé des commandes déjà réalisée dans le poste et j'ai des erreurs qui apparaissent mais je ne sais pas a quoi ça correspond
wil@Synology:/usr/local/domoticz/var/scripts$ ./somfyv1.sh --Status
./somfyv1.sh: line 148: iconv: command not found
(23) Failed writing body
./somfyv1.sh: line 285: iconv: command not found
(23) Failed writing body
Wil@Synology:/usr/local/domoticz/var/scripts$ ./somfyv1.sh --ZoneABCOn
./somfyv1.sh: line 137: CarteAuthentification: bad array subscript
./somfyv1.sh: line 148: iconv: command not found
(23) Failed writing body
une idée de la correspondance de cette erreur ?
et j'ai testé des commandes déjà réalisée dans le poste et j'ai des erreurs qui apparaissent mais je ne sais pas a quoi ça correspond
wil@Synology:/usr/local/domoticz/var/scripts$ ./somfyv1.sh --Status
./somfyv1.sh: line 148: iconv: command not found
(23) Failed writing body
./somfyv1.sh: line 285: iconv: command not found
(23) Failed writing body
Wil@Synology:/usr/local/domoticz/var/scripts$ ./somfyv1.sh --ZoneABCOn
./somfyv1.sh: line 137: CarteAuthentification: bad array subscript
./somfyv1.sh: line 148: iconv: command not found
(23) Failed writing body
une idée de la correspondance de cette erreur ?
Dernière modification par willyboy09 le 26 févr. 2017, 23:43, modifié 1 fois.
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
a priori cela doit provenir du fait que la commande iconv n'existe pas sur le syno.
J'ai essayé d''intégrer la librairie mais j'ai une erreur : Segmentation fault (core dumped)
une idée pour pouvoir utiliser le script sur syno ?
J'ai essayé d''intégrer la librairie mais j'ai une erreur : Segmentation fault (core dumped)
une idée pour pouvoir utiliser le script sur syno ?
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
j'ai finalement réussi grâce à une personne du forum dédié au synology !
Il m'a dit d'essayer la commande uconv qui existe dans le syno contrairement à iconv qui n'existe pas
J'ai quand même eu ensuite un problème d'encodage mais sur Notepad++ en faisant édition -> convertir les sauts de ligne -> Convertir en Format Unix (LF) ça a corrigé le problème.
Voila un problème de réglé et en voici un nouveau qui apparaît
depuis domoticz, j'ai un problème avec le bouton push on d'une zone, ce dernier une fois activé tourne en rond et il réactive la fonction "On" s'en cesse. :
depuis domoticz j'ai ça dans le log:
2017-02-26 22:47:51.124 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:47:51.146 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:47:57.621 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:47:57.868 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:48:18.320 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:48:18.344 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:49:28.468 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:49:28.717 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:49:34.142 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:49:34.199 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
(j'en met qu'une partie mais ça continue ...)
et depuis l'alarme :
26/02/17 22h47 Mise ON (Zone C)
26/02/17 22h47 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
pour arrêter le massacre j'en l’enlevé une lettre du liens du script et ça recommence 2 fois et ça s’arrête :
2017-02-26 22:54:19.453 Error: SQLHelper: Error script not found '/usr/local/domoticz/scripts/shell/somfy.s'
2017-02-26 22:54:25.187 Error: SQLHelper: Error script not found '/usr/local/domoticz/scripts/shell/somfy.s'
C'est idem pour tous les boutons de mise en marche, je pense que j'ai du rater quelque chose dans la configuration du bouton ! avez-vous une idée ?
merci
William
Il m'a dit d'essayer la commande uconv qui existe dans le syno contrairement à iconv qui n'existe pas
J'ai quand même eu ensuite un problème d'encodage mais sur Notepad++ en faisant édition -> convertir les sauts de ligne -> Convertir en Format Unix (LF) ça a corrigé le problème.
Voila un problème de réglé et en voici un nouveau qui apparaît
depuis domoticz, j'ai un problème avec le bouton push on d'une zone, ce dernier une fois activé tourne en rond et il réactive la fonction "On" s'en cesse. :
depuis domoticz j'ai ça dans le log:
2017-02-26 22:47:51.124 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:47:51.146 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:47:57.621 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:47:57.868 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:48:18.320 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:48:18.344 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:49:28.468 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:49:28.717 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-26 22:49:34.142 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-26 22:49:34.199 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
(j'en met qu'une partie mais ça continue ...)
et depuis l'alarme :
26/02/17 22h47 Mise ON (Zone C)
26/02/17 22h47 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
26/02/17 22h46 Mise ON (Zone C)
pour arrêter le massacre j'en l’enlevé une lettre du liens du script et ça recommence 2 fois et ça s’arrête :
2017-02-26 22:54:19.453 Error: SQLHelper: Error script not found '/usr/local/domoticz/scripts/shell/somfy.s'
2017-02-26 22:54:25.187 Error: SQLHelper: Error script not found '/usr/local/domoticz/scripts/shell/somfy.s'
C'est idem pour tous les boutons de mise en marche, je pense que j'ai du rater quelque chose dans la configuration du bouton ! avez-vous une idée ?
merci
William
Dernière modification par willyboy09 le 02 mars 2017, 11:55, modifié 1 fois.
-
jcjames_13009
- Messages : 105
- Inscription : 23 févr. 2015, 15:27
- Localisation : Marseille
- Contact :
Re: Script alarme Somfy Protexiom 5000
Salut
Bonne nouvelle pour la solution de ton pb
Pour le push-on button j'ai cette config
J'espère que ça peut aider
@+
JC
Bonne nouvelle pour la solution de ton pb
Pour le push-on button j'ai cette config
J'espère que ça peut aider
@+
JC
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
Bonsoir Jc,
Merci pour ton message, effectivement j'ai mis les infos dans action : ON
quel est la différence ?
Merci pour ton message, effectivement j'ai mis les infos dans action : ON
quel est la différence ?
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
Je viens de modifier avec tes parametres mais ça na rien changé :
2017-02-27 23:35:13.010 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:13.011 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:14.132 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:14.355 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:28.002 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:28.003 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:29.206 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:29.446 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:43.002 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:43.003 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:44.125 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:44.349 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:57.978 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:57.978 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:59.101 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:59.324 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
Pour info je retrouve aussi la mise en marche dans la log du bouton comme si j'avais moi meme appuyer
Qu'est-ce que j'ai pu rater ?
2017-02-27 23:35:13.010 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:13.011 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:14.132 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:14.355 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:28.002 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:28.003 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:29.206 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:29.446 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:43.002 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:43.003 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:44.125 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:44.349 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
2017-02-27 23:35:57.978 User: Admin initiated a switch command (96/Alarme Marche Zone C/On)
2017-02-27 23:35:57.978 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:59.101 (Periph virtuel) Light/Switch (Alarme Marche Zone C)
2017-02-27 23:35:59.324 Executing script: /usr/local/domoticz/scripts/shell/somfy.sh
Pour info je retrouve aussi la mise en marche dans la log du bouton comme si j'avais moi meme appuyer
Qu'est-ce que j'ai pu rater ?
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
Je n'ai pas réussi à résoudre mon problème mais j'ai trouvé une solution alternative qui me convient bien, j'ai protégé le bouton avec un mot de passe, cela règle le problème et la commande n'est envoyée qu'une seule fois.
l'inconvénient c'est que j'ai maintenant un MDP pour activer l'alarme mais finalement ça protège un peu mieux le système...
Je viens de repérer un problème déjà abordé ici, j'ai régulièrement des remontés erronées, ce qui ne m'arrange pas car, je voulais me servir de ces informations pour coupler à d'autres actions (fermeture ouverture des volets / mise en route des caméras / ...)
Avez-vous toujours ce problème ? comment faire pour rendre fiable cette information ?
Merci
l'inconvénient c'est que j'ai maintenant un MDP pour activer l'alarme mais finalement ça protège un peu mieux le système...
Je viens de repérer un problème déjà abordé ici, j'ai régulièrement des remontés erronées, ce qui ne m'arrange pas car, je voulais me servir de ces informations pour coupler à d'autres actions (fermeture ouverture des volets / mise en route des caméras / ...)
Avez-vous toujours ce problème ? comment faire pour rendre fiable cette information ?
Merci
-
jcjames_13009
- Messages : 105
- Inscription : 23 févr. 2015, 15:27
- Localisation : Marseille
- Contact :
Re: Script alarme Somfy Protexiom 5000
Bonjour
le pb de remonté d'état erroné, j'avais rajouté des pauses (Sleep) dans le script en chaque envoie de trame à l'alarme. Ca marchait assez bien mais j'avais quand même de temps en temps des ratés.
viewtopic.php?f=17&t=2831&start=20#p26082
Comme écrit dans un autre post, j'ai commencé à modifier le script pour n'envoyer la commande qu'une seule fois et enregistrer les retours dans un fichier et trier ensuite les infos dans le fichier. Mais je n'ai pas encore pu le tester complètement n'ayant pas réinstallé mon alarme
J'ai utilisé une commande du type pour récupérer l'état de l’alarme et stocker l'info dans un fichier "status"
Si quelqu'un a une autre idée welcome
@+
JC
le pb de remonté d'état erroné, j'avais rajouté des pauses (Sleep) dans le script en chaque envoie de trame à l'alarme. Ca marchait assez bien mais j'avais quand même de temps en temps des ratés.
viewtopic.php?f=17&t=2831&start=20#p26082
Comme écrit dans un autre post, j'ai commencé à modifier le script pour n'envoyer la commande qu'une seule fois et enregistrer les retours dans un fichier et trier ensuite les infos dans le fichier. Mais je n'ai pas encore pu le tester complètement n'ayant pas réinstallé mon alarme
J'ai utilisé une commande du type pour récupérer l'état de l’alarme et stocker l'info dans un fichier "status"
Code : Tout sélectionner
curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status@+
JC
-
jcjames_13009
- Messages : 105
- Inscription : 23 févr. 2015, 15:27
- Localisation : Marseille
- Contact :
Re: Script alarme Somfy Protexiom 5000
Je mets ici le script avec la modif pour n'envoyer qu'une seule commande et stocker l'info dans un fichier pour éviter les pertes de retour d'état de l'alarme entre chaque cde
Mais attention je ne l'ai pas encore complètement testé
@+
JC
Mais attention je ne l'ai pas encore complètement testé
Code : Tout sélectionner
#!/bin/bash
#----------------------------------------------------------------------------------------------------------------------
# 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
# - 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
# * Arrêt de l'alarme Zones A B C
# * Reset defauts piles, liaisons et alarmes
# * Gestion liste des éléments 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/shell/alarme_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/shell/alarme_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 éléments
#----------------------------------------------------------------------------------------------------------------------
# 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 éléments et mise à jour dans Domoticz
#----------------------------------------------------------------------------------------------------------------------
# Version : 2.4
# Date : 04/01/2017
# - Envoie d'une seule commande pour éviter les pertes de reotur d'état de l'alarme entre chaque cde dans la lecture de
# l'état du système et de la liste des éléments
#----------------------------------------------------------------------------------------------------------------------
#Debug=True
Debug=False
#----------------------------------------------------------------------------------------------------------------------
# PARAMETRES ALARME
#----------------------------------------------------------------------------------------------------------------------
# Carte d'authentification perso
declare -A CarteAuthentification
#CarteAuthentification=( ["A1"]="xxxx" ["B1"]="xxxx" ["C1"]="xxxx" ["D1"]="xxxx" ["E1"]="xxxx" ["F1"]="xxxx"
# ["A2"]="xxxx" ["B2"]="xxxx" ["C2"]="xxxx" ["D2"]="xxxx" ["E2"]="xxxx" ["F2"]="xxxx"
# ["A3"]="xxxx" ["B3"]="xxxx" ["C3"]="xxxx" ["D3"]="xxxx" ["E3"]="xxxx" ["F3"]="xxxx"
# ["A4"]="xxxx" ["B4"]="xxxx" ["C4"]="xxxx" ["D4"]="xxxx" ["E4"]="xxxx" ["F4"]="xxxx"
# ["A5"]="xxxx" ["B5"]="xxxx" ["C5"]="xxxx" ["D5"]="xxxx" ["E5"]="xxxx" ["F5"]="xxxx" )
# Adresse IP alarme Somfy
#SrvSomfyIp="http://IP.ALARME/"
# Code Utilisateur1
#CodeUtilisateur1=1234
# URLs alarme SOMFY PROTEXION 5000 GSM
UrlLogin=$SrvSomfyIp"fr/login.htm" # Connexion à l'alarme
UrlLogout=$SrvSomfyIp"logout.htm" # Déconnexion de l'alarme
UrlEtat=$SrvSomfyIp"status.xml" # Etat du système
UrlPilotage=$SrvSomfyIp"fr/u_pilotage.htm" # Pilotage alarme
UrlElements=$SrvSomfyIp"fr/u_listelmt.htm" # Liste des éléments / Reset défauts
#----------------------------------------------------------------------------------------------------------------------
# PARAMETRES DOMOTICZ
#----------------------------------------------------------------------------------------------------------------------
# Capteurs virtuels Domoticz
AlarmeSomfyPilesIdx=xx
AlarmeSomfyRadioIdx=xx
AlarmeSomfyPorteIdx=xx
AlarmeSomfyAlarmeIdx=xx
AlarmeSomfyBoitierIdx=xx
AlarmeSomfyGSMIdx=xx
AlamreSomfySignalGSMIdx=xx
AlamreSomfyOperateurGSMIdx=xx
AlarmeSomfyCameraIdx=xx
AlamreSomfyZoneAIdx=xx
AlamreSomfyZoneBIdx=xx
AlamreSomfyZoneCIdx=xx
AlamreSomfyDOEntreeIdx=xx
AlamreSomfyDOAtelierIdx=xx
# Adresse IP et port du serveur Domoticz
#SrvDomoticzIp="IP.DOMOTICZ:PORT"
#----------------------------------------------------------------------------------------------------------------------
# FONCTIONS
#----------------------------------------------------------------------------------------------------------------------
# Fonction menu d'aide
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 éléments"
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\tArrêt 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"
}
# Fonction connexion à l'alarme
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
# Récupération du code d'acces
if [ "$Debug" = "True" ]; then
echo " Récuperation du code d'accès"
CodeAcces="$(curl $SrvSomfyIp $UrlLogin | grep -Eoi 'authentification <b>.*</b>')"
CodeAcces="$(echo "${CodeAcces:20:2}")"
echo " Code d'accès = "$CodeAcces
else
CodeAcces="$(curl -s $SrvSomfyIp $UrlLogin | grep -Eoi 'authentification <b>.*</b>')"
CodeAcces="$(echo "${CodeAcces:20:2}")"
fi
# Récupération du code d'authentification à partir du code d'accès
CodeAuthentification="${CarteAuthentification["$CodeAcces"]}"
if [ "$Debug" = "True" ]; then
echo " Récuperation du code d'authentification"
echo " Code d'authentification = "$CodeAuthentification
fi
# Envoi du code utilisateur1 et du code d'authentification dans l'url Login pour connexion
if [ "$Debug" = "True" ]; then
echo " Envoi du code utilisateur1 et du code d'authentification"
curl -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | iconv -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
fi
}
# Fonction déconnexion de l'alarme
logout_alarme () {
if [ "$Debug" = "True" ]; then
echo " Déconnexion de l'alarme"
curl -L --cookie cjar --cookie-jar cjar $UrlLogout | iconv -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
fi
}
# Fonction mise à jour capteurs Domoticz
# Paramètres: $1 Nom du capteur / $2 On ou Off / $3 Idx du capteur
maj_capteur () {
if [ "$Debug" = "True" ]; then
echo " Etat "$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
else
curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status
fi
# Déconnexion 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
# Affichage des états
echo " ******************************************* "
echo " Etat du système"
echo " ******************************************* "
echo " Zone A = "$EtatZoneA
echo " Zone B = "$EtatZoneB
echo " Zone C = "$EtatZoneC
echo ""
echo " Etat Piles = "$EtatPiles
echo " Etat Communication Radio = "$EtatRadio
echo " Etat Porte/Fenêtre = "$EtatPorte
echo " Etat Alarme = "$EtatAlarme
echo " Etat Boitier = "$EtatBoitier
echo ""
echo " Etat GSM = "$EtatGSM
echo " Signal GSM = "$SignalGSM
echo " Opérateur GSM = "$OperateurGSM
echo ""
echo " Etat caméra = "$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 $AlamreSomfyZoneAIdx
else
maj_capteur ZoneA On $AlamreSomfyZoneAIdx
fi
# Zone B
if [ "$EtatZoneB" = "off" ]; then
maj_capteur ZoneB Off $AlamreSomfyZoneBIdx
else
maj_capteur ZoneB On $AlamreSomfyZoneBIdx
fi
# Zone C
if [ "$EtatZoneC" = "off" ]; then
maj_capteur ZoneC Off $AlamreSomfyZoneCIdx
else
maj_capteur ZoneC On $AlamreSomfyZoneCIdx
fi
# Etat Piles
if [ "$EtatPiles" = "ok" ]; then
maj_capteur Piles On $AlarmeSomfyPilesIdx
else
maj_capteur Piles Off $AlarmeSomfyPilesIdx
fi
# Communication Radio
if [ "$EtatRadio" = "ok" ]; then
maj_capteur Radio On $AlarmeSomfyRadioIdx
else
maj_capteur Radio Off $AlarmeSomfyRadioIdx
fi
# Porte/Fenêtre
if [ "$EtatPorte" = "ok" ]; then
maj_capteur Porte/Fenetre Off $AlarmeSomfyPorteIdx
else
maj_capteur Porte/Fenetre On $AlarmeSomfyPorteIdx
fi
# Alarme
if [ "$EtatAlarme" = "ok" ]; then
maj_capteur Alarme Off $AlarmeSomfyAlarmeIdx
else
maj_capteur Alarme On $AlarmeSomfyAlarmeIdx
fi
# Boitier
if [ "$EtatBoitier" = "ok" ]; then
maj_capteur Boitier Off $AlarmeSomfyBoitierIdx
else
maj_capteur Boitier On $AlarmeSomfyBoitierIdx
fi
# GSM
if [ "$EtatGSM" = "GSM connecté au réseau" ]; then
maj_capteur GSM On $AlarmeSomfyGSMIdx
else
maj_capteur GSM Off $AlarmeSomfyGSMIdx
fi
# Niveau Signal GSM
if [ "$Debug" = "True" ]; then
echo " Niveau Signal GSM"
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlamreSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM"
else
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlamreSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM" > /dev/null
fi
# Opérateur GSM
if [ "$Debug" = "True" ]; then
echo " Opérateur GSM"
curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlamreSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM"
else
curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlamreSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM" > /dev/null
fi
# Caméra
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
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
fi
# Déconnexion de l'alarme
logout_alarme
# Mise à jour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise à jour capteurs Domoticz"
fi
maj_capteur ZoneA On $AlamreSomfyZoneAIdx
maj_capteur ZoneB On $AlamreSomfyZoneBIdx
maj_capteur ZoneC On $AlamreSomfyZoneCIdx
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
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
fi
# Déconnexion de l'alarme
logout_alarme
# Mise à jour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise à jour capteurs Domoticz"
fi
maj_capteur ZoneA On $AlamreSomfyZoneAIdx
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
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
fi
# Déconnexion de l'alarme
logout_alarme
# Mise à jour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise à jour capteurs Domoticz"
fi
maj_capteur ZoneB On $AlamreSomfyZoneBIdx
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
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
fi
# Déconnexion de l'alarme
logout_alarme
# Mise à jour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise à jour capteurs Domoticz"
fi
maj_capteur ZoneC On $AlamreSomfyZoneCIdx
fi
#----------------------------------------------------------------------------------------------------------------------
# Arrêt de l'alarme Zones A B C
#----------------------------------------------------------------------------------------------------------------------
if [ "$AlarmeOff" = "1" ]; then
# Connexion à l'alarme
login_alarme
# Arrêt 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=Arrêt A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8
else
curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arrêt A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Déconnexion de l'alarme
logout_alarme
# Mise à jour capteurs Domoticz
if [ "$Debug" = "True" ]; then
echo " Mise à jour capteurs Domoticz"
fi
maj_capteur ZoneA Off $AlamreSomfyZoneAIdx
maj_capteur ZoneB Off $AlamreSomfyZoneBIdx
maj_capteur ZoneC Off $AlamreSomfyZoneCIdx
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
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Déconnexion 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
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Déconnexion 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
else
curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null
fi
# Déconnexion de l'alarme
logout_alarme
fi
#----------------------------------------------------------------------------------------------------------------------
# Gestion de la liste des éléments
#----------------------------------------------------------------------------------------------------------------------
if [ "$Elements" = "1" ]; then
# Connexion à l'alarme
login_alarme
# Lecture de la liste des éléments et stockage dans fichier temporaire
if [ "$Debug" = "True" ]; then
echo "Gestion liste des éléments"
curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -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
fi
# Déconnexion 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 éléments
if [ "$Debug" = "True" ]; then
echo " Type des éléments"
echo $TypeElements
echo " Nom des éléments"
echo $NomElements
echo " Etat des éléments"
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 éléments
# 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 éléments
# 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 éléments
# 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 éléments
if [ "$Debug" = "True" ]; then
echo " Liste des éléments"
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 $AlamreSomfyDOEntreeIdx
else
maj_capteur DOEntrée On $AlamreSomfyDOEntreeIdx
fi
# DO Atelier
for (( i=0; i<$TailleTab; i++ ))
do
if [ ${TabNomElements["$i"]} = "DO Atelier" ]; then PosElement=$i
fi
done
if [ ${TabEtatPortes["$PosElement"]} = "Fermée" ]; then
maj_capteur DOAtelier Off $AlamreSomfyDOAtelierIdx
else
maj_capteur DOAtelier On $AlamreSomfyDOAtelierIdx
fi
fi
exit 0JC
-
willyboy09
- Messages : 27
- Inscription : 27 janv. 2017, 23:32
Re: Script alarme Somfy Protexiom 5000
j'ai testé hier soir le script modifié et ce matin j'avais toujours autant d'erreur dans les résultats. je vais regarder de mon côté si je trouve une solution.
en tous cas merci pour ton travail !
en tous cas merci pour ton travail !