willyboy09 Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Bonjour à tous, Je tourne en rond pour l'installation d'un script .sh depuis une semaine et j'ai l'impression d'avoir tout essayé !!! Donc j'ai sur mon ds214play installé Domoticz qui fonctionne bien. J'ai installé depuis peu chez moi une alarme Somfy Protexium 5000 et je cherche à mettre en place un script trouvé sur un forum dédié à Domoticz. Sauf que ça ne fonctionne pas... J'ai l'impression que ce Script à été réalisé pour une utilisation sur Raspberry et que cela pose problème. voici le script : #!/bin/bash #---------------------------------------------------------------------------------------------------------------------- # Script alarme_Somfy.sh # Date : 11/2016 # Version : 2.0 # Par : jcjames_13009 # 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 #---------------------------------------------------------------------------------------------------------------------- # Appel du script # - Mise à jour des états de l'alarme toutes les 15min via le crontab : # */15 * * * * sudo /home/pi/domoticz/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/alarme_Somfy.sh --ZoneAOn #---------------------------------------------------------------------------------------------------------------------- # Version : 2.1 # Date : 25/11/2016 # - Ajout d'un "sleep 1" pour éviter les pertes de retour d'état entre chaque cde dans la lecture de l'état du système #---------------------------------------------------------------------------------------------------------------------- # 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 remonté état dans Domoticz #---------------------------------------------------------------------------------------------------------------------- #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=xxxx AlarmeSomfyRadioIdx=xxxx AlarmeSomfyPorteIdx=xxxx AlarmeSomfyAlarmeIdx=xxxx AlarmeSomfyBoitierIdx=xxxx AlarmeSomfyGSMIdx=xxxx AlamreSomfySignalGSMIdx=xxxx AlamreSomfyOperateurGSMIdx=xxxx AlarmeSomfyCameraIdx=xxxx AlamreSomfyZoneAIdx=xxxx AlamreSomfyZoneBIdx=xxxx AlamreSomfyZoneCIdx=xxxx AlamreSomfyDOEntreeIdx=xxxx AlamreSomfyDOAtelierIdx=xxxx # 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 Zones A" echo -e "\t--ZoneBOn \t\tMise en marche de l'alarme Zones B" echo -e "\t--ZoneCOn \t\tMise en marche de l'alarme Zones C" echo -e "\t--ZoneABCOn \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;; --ZoneABCOn) ZoneABCOn="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 if [ "$Debug" = "True" ]; then echo " Lecture de l'état du système" EtatZoneA="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone0>.*')" EtatZoneA="$(echo "${EtatZoneA:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatZoneB="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone1>.*')" EtatZoneB="$(echo "${EtatZoneB:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatZoneC="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone2>.*')" EtatZoneC="$(echo "${EtatZoneC:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPiles="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut0>.*')" EtatPiles="$(echo "${EtatPiles:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatRadio="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut1>.*')" EtatRadio="$(echo "${EtatRadio:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPorte="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut2>.*')" EtatPorte="$(echo "${EtatPorte:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatAlarme="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut3>.*')" EtatAlarme="$(echo "${EtatAlarme:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatBoitier="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut4>.*')" EtatBoitier="$(echo "${EtatBoitier:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<gsm>.*')" EtatGSM="$(echo "${EtatGSM:5:-7}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde SignalGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<recgsm>.*')" SignalGSM="$(echo "${SignalGSM:8:-10}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde OperateurGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<opegsm>.*')" OperateurGSM="$(echo "${OperateurGSM:9:-10}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatCamera="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<camera>.*')" EtatCamera="$(echo "${EtatCamera:8:-10}")" # 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 else EtatZoneA="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone0>.*')" EtatZoneA="$(echo "${EtatZoneA:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatZoneB="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone1>.*')" EtatZoneB="$(echo "${EtatZoneB:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatZoneC="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone2>.*')" EtatZoneC="$(echo "${EtatZoneC:7:-9}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPiles="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut0>.*')" EtatPiles="$(echo "${EtatPiles:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatRadio="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut1>.*')" EtatRadio="$(echo "${EtatRadio:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPorte="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut2>.*')" EtatPorte="$(echo "${EtatPorte:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatAlarme="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut3>.*')" EtatAlarme="$(echo "${EtatAlarme:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatBoitier="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut4>.*')" EtatBoitier="$(echo "${EtatBoitier:9:-11}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatGSM="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<gsm>.*')" EtatGSM="$(echo "${EtatGSM:5:-7}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde SignalGSM="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<recgsm>.*')" SignalGSM="$(echo "${SignalGSM:8:-10}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde OperateurGSM="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<opegsm>.*')" OperateurGSM="$(echo "${OperateurGSM:9:-10}")" sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatCamera="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<camera>.*')" EtatCamera="$(echo "${EtatCamera:8:-10}")" fi # Déconnexion de l'alarme logout_alarme # 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 [ "$ZoneABCOn" = "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 # Gestion de la Liste des éléments et récupération dans des tableaux # Envoie URL http://IPAlarme/fr/u_listelmt.htm # Retour: var item_type = ["typetrans", "typebadgerfid", ...]; var item_label = ["Tr Tél", "Badge", ...]; var item_pause = ["running", "paused", ...]; var elt_name = ["Centrale", "Badge 1", ...]; var elt_code = ["521907", "788853", ...]; var elt_pile = ["itembattok", "itemhidden", ...]; var elt_as = ["itemboxok", "itemhidden", ...]; var elt_maison = ["itemhouseok", "itemhouseok", ...]; var elt_onde = ["itemcomok", "itemhidden", ...]; var elt_porte = ["itemhidden", "itemhidden", ...]; var elt_zone = ["SYS", "SYS", ...]; # Script à modifier en focntion des éléments du système et des états remontés dans Domoticz if [ "$Debug" = "True" ]; then echo "Gestion liste des éléments" echo " Type des éléments" # Récup du type des éléments TypeElements="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var item_label.*')" echo $TypeElements # 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) echo " Nom des éléments" # Récup des noms des éléments sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde NomElements="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_name.*')" echo $NomElements # 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) echo " Etat des éléments" # Récup état des éléments sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatElements="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var item_pause.*')" echo $EtatElements # 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 echo " Etat des piles" # Récup état des piles sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPiles="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_pile.*')" echo $EtatPiles # 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 echo " Etat liaison radio" # Récup état liaison radio sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatLiaison="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_onde.*')" echo $EtatLiaison # 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 echo " Etat détecteurs ouverture" # Récup état détecteurs ouverture sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPortes="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_porte.*')" echo $EtatPortes # 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 echo " Etat ouverture boitiers" # Récup état ouverture boitiers sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatBoitiers="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_as.*')" echo $EtatBoitiers # 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 echo " Etat alarme" # Récup état alarme sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatAlarme="$(curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_maison.*')" echo $EtatAlarme # 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 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 else # Récup du type des éléments TypeElements="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var item_label.*')" # 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) # Récup des noms des éléments sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde NomElements="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_name.*')" # 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) # Récup état des éléments sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatElements="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var item_pause.*')" # 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 # Récup état des piles sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPiles="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_pile.*')" # 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 # Récup état liaison radio sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatLiaison="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_onde.*')" # 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 sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatPortes="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_porte.*')" # 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 sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatBoitiers="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_as.*')" # 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 sleep 1 # Attente 1s pour éviter les pertes de retour d'état entre chaque cde EtatAlarme="$(curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'var elt_maison.*')" # 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 fi # Déconnexion de l'alarme logout_alarme # 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 0 voici ce que j'ai lorsque je l'exécute : 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 ./somfyv1.sh: line 288: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 291: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 295: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 298: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 301: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 304: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 307: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 311: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 314: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 317: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 321: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 158: 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 ./somfyv1.sh: line 433: iconv: command not found (23) Failed writing body ./somfyv1.sh: line 158: iconv: command not found (23) Failed writing body J'en ai déduit qu'il y a une erreur avec iconv qui n'est pas installé sur mon syno. J'ai donc téléchargé la librairie libiconv-1.15 mais j'ai une erreur sur le ssh lorsque je lance la commande iconv : Segmentation fault (core dumped) J'ai essayé de supprimer toutes les lignes iconv du script et puis j'ai transformer le fichier avec la commande dos2unix, mais cela n'a pas l'air de fonctionner non plus Bon vous l'avez compris je n'y connais rien et la je ne sais plus quoi faire... merci pour votre aide !! William 0 Citer
Fenrir Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 (modifié) Comme indiqué dans les messages d'erreur, ton script cherche la commande iconv, mais elle n'existe pas sur les syno. Si tu te sens l'âme d'un développeur, tu peux créer un script qui fait la même chose, mais ce n'est pas trivial. -- edit : je n’avais pas vu ton commentaire de fin tu as bien identifié le pb Pour le script de remplacement, je pense que tu peux le faire en php, le module iconv est présent Modifié le 24 février 2017 par Fenrir 0 Citer
willyboy09 Posté(e) le 24 février 2017 Auteur Posté(e) le 24 février 2017 Merci Fenrir, je viens de faire la recherche pour le php mais cela semble compliqué (enfin pour moi) est-ce que la commande iconv n'est pas intégrable dans le syno ? 0 Citer
Fenrir Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Pas sans recompiler, sauf si quelqu'un l'a déjà fait (paquets communautaire ou ipkg). En cherchant sur mon syno je viens de voir qu'il y avait uconv d'installé par défaut, il a une syntaxe très proche. Ça devrait marcher. 0 Citer
willyboy09 Posté(e) le 25 février 2017 Auteur Posté(e) le 25 février 2017 Fenrir, merci beaucoup ! J'ai repris le script avec ton info (uconv) puis j'ai du le convertir avec la commande dos2unix et maintenant, ca fonctionne ! :-) Bonne soirée William 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.