Hello à tous,
J'ai terminé le script V4, j'ai tous les états de tous les éléments.
Comme dans la première partie nous avons l'état des piles/boitier/Radio etc... pour le général, c'est à dire que si l'un des éléments tombe en nok (no ok) dans le script il y aura une alerte.
Donc, je ne garde que le détail des éléments DO (Detecteur Ouverture) de fenêtre et de porte à envoyer dans Domoticz.
J'ai ajouté les commandes pour balancer vers Domoticz, mais pas ici car vous savez faire maintenant
Je ne peux pas mettre tout le code car j'ai les variables comme $EtatPorteEntree ou $EtatFenetreOlivier etc... trop d'info sur mon habitation
Si j'ai le temps, je ferai un remplacement des variables pour des bidons, genre $EtatFenetreChambre1 etc...
MAis normalement, avec tout ce que j'ai donné vous pouvez adapter avec vos alarmes ou scripts.
Code : Tout sélectionner
# Affiche le code de la page $UrluListeElement
#curl -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8
# TRAITEMENT POUR LES ELEMENTS
# On recup la liste des elements par la recherche elt_name
ListeElement="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_name')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeElement="$(echo "${ListeElement:21:-2}")"
# On remplace les " par rien on les supprime
ListeElement="$(echo "$ListeElement" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeElement="$(echo "$ListeElement" | sed s/\,\ /\,/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeElement
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeElement=($ListeElement)
# On affiche les elements du tableau
#for TabLecture in ${TabListeElement[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR LE CODE DES ELEMENTS
# On recup la liste des codes des elements par la recherche elt_code
ListeCode="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_code')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeCode="$(echo "${ListeCode:21:-2}")"
# On remplace les " par rien on les supprime
ListeCode="$(echo "$ListeCode" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeCode="$(echo "$ListeCode" | sed s/\,\ /\,/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeCode
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeCode=($ListeCode)
# On affiche les elements du tableau
#for TabLecture in ${TabListeCode[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR L ETAT DES PILES DES ELEMENTS
# On recup la liste des etats des piles des elements par la recherche elt_pile
ListeEtatPile="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_pile')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeEtatPile="$(echo "${ListeEtatPile:21:-2}")"
# On remplace les " par rien on les supprime
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/\,\ /\,/g)"
# On remplace "itemhidden" par "Pas de Pile"
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/itemhidden/Pas\ de\ Pile/g)"
# On remplace "itembattok" par "Etat Pile OK"
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/itembattok/Etat\ Pile\ OK/g)"
# On remplace "itembattnok" par "Etat Pile KO" JE N AI PAS FAIT LE TEST CAR PILE TJS OK
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/itembattnok/Etat\ Pile\ KO/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste Etat Pile = "$ListeEtatPile
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeEtatPile=($ListeEtatPile)
# On affiche les elements du tableau
#for TabLecture in ${TabListeEtatPile[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR L ETAT DES ELEMENTS SI EN FONCTION OU EN PAUSE
# On recup la liste des etats des elements par la recherche elt_pause
ListeEtatElement="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var item_pause')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeEtatElement="$(echo "${ListeEtatElement:21:-2}")"
# On remplace les " par rien on les supprime
ListeEtatElement="$(echo "$ListeEtatElement" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeEtatElement="$(echo "$ListeEtatElement" | sed s/\,\ /\,/g)"
# On remplace "running" par "En Fonction"
ListeEtatElement="$(echo "$ListeEtatElement" | sed s/running/En\ Fonction/g)"
# On remplace "paused" par "En Pause "
ListeEtatElement="$(echo "$ListeEtatElement" | sed s/paused/En\ Pause\ \ \ /g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeEtatElement
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeEtatElement=($ListeEtatElement)
# On affiche les elements du tableau
#for TabLecture in ${TabListeEtatElement[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR L ETAT DES DO DES ELEMENTS SI OUVERT OU FERME
# On recup la liste des etats des DO par la recherche elt_porte
ListeEtatDO="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_porte')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeEtatDO="$(echo "${ListeEtatDO:21:-2}")"
# On remplace les " par rien on les supprime
ListeEtatDO="$(echo "$ListeEtatDO" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeEtatDO="$(echo "$ListeEtatDO" | sed s/\,\ /\,/g)"
# On remplace "itemhidden" par "Pas de DO"
ListeEtatDO="$(echo "$ListeEtatDO" | sed s/itemhidden/Pas\ de\ DO/g)"
# On remplace "itemdoornok" par "Ouverte"
ListeEtatDO="$(echo "$ListeEtatDO" | sed s/itemdoornok/Ouverte/g)"
# On remplace "itemdoorok" par "Fermee"
ListeEtatDO="$(echo "$ListeEtatDO" | sed s/itemdoorok/Fermée/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeEtatDO
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeEtatDO=($ListeEtatDO)
# On affiche les elements du tableau
#for TabLecture in ${TabListeEtatDO[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR L ETAT DE LA COMMuNICATION DES ELEMENTS SI OK OU KO
# On recup la liste des etats de Radio par la recherche elt_onde
ListeEtatRadio="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_onde')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeEtatRadio="$(echo "${ListeEtatRadio:21:-2}")"
# On remplace les " par rien on les supprime
ListeEtatRadio="$(echo "$ListeEtatRadio" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeEtatRadio="$(echo "$ListeEtatRadio" | sed s/\,\ /\,/g)"
# On remplace "itemhidden" par "Pas de Radio"
ListeEtatRadio="$(echo "$ListeEtatRadio" | sed s/itemhidden/Pas\ de\ Radio/g)"
# On remplace "itemcomok" par "Radio OK"
ListeEtatRadio="$(echo "$ListeEtatRadio" | sed s/itemcomok/Radio\ OK\ \ \ \/g)"
# On remplace "itemcomnok" par "Radio KO"
ListeEtatRadio="$(echo "$ListeEtatRadio" | sed s/itemcomnok/Radio\ KO\ \ \ \/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeEtatRadio
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeEtatRadio=($ListeEtatRadio)
# On affiche les elements du tableau
#for TabLecture in ${TabListeEtatRadio[*]}
#do
#echo $TabLecture;
#done
# TRAITEMENT POUR L ETAT DES BOITIERS DES ELEMENTS SI OK OU KO
# On recup la liste des etats des boitiers par la recherche elt_as
ListeEtatBoitier="$(curl -s -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_as')"
# On supprime les 21 premiers caracteres et les 2 derniers
ListeEtatBoitier="$(echo "${ListeEtatBoitier:21:-2}")"
# On remplace les " par rien on les supprime
ListeEtatBoitier="$(echo "$ListeEtatBoitier" | sed s/\"//g)"
# On remplace ", " par "," on supprime les espaces entre les virgules
ListeEtatBoitier="$(echo "$ListeEtatBoitier" | sed s/\,\ /\,/g)"
# On remplace "itemhidden" par "Pas de Boitier"
ListeEtatBoitier="$(echo "$ListeEtatBoitier" | sed s/itemhidden/Pas\ de\ Boitier/g)"
# On remplace "itemboxok" par "Boitier OK"
ListeEtatBoitier="$(echo "$ListeEtatBoitier" | sed s/itemboxok/Boitier\ OK/g)"
# On remplace "itemboxnok" par "Boitier KO"
ListeEtatBoitier="$(echo "$ListeEtatBoitier" | sed s/itemboxnok/Boitier\ KO/g)"
# On doit avoir la liste des elements sans , et avec des ' a la place des "
#echo "Liste des elements = "$ListeEtatBoitier
# On declare la virgule comme element separateur
IFS=","
# On alimente la variable tableau avec les elements separes par une virgule
TabListeEtatBoitier=($ListeEtatBoitier)
# On affiche les elements du tableau
#for TabLecture in ${TabListeEtatBoitier[*]}
#do
#echo $TabLecture;
#done
# On affiche les elements du tableau et on recupere l'état des fenetres
TailleTab=${#TabListeElement[@]}
for (( i=0; i<$TailleTab; i++ ))
do
echo -e "Nom Element : "${TabListeElement["$i"]} "\t Code Element : "${TabListeCode["$i"]} "\t Etat Element : "${TabListeEtatElement["$i"]} "\t Etat Pile : "${TabListeEtatPile["$i"]} "\t Etat DO : "${TabListeEtatDO["$i"]} "\t Etat Radio : "${TabListeEtatRadio["$i"]} "\t Etat Boitier : "${TabListeEtatBoitier["$i"]}
done
A mettre dans ma V3 entre
Code : Tout sélectionner
# Exection si option -v activee
if [ "$VerifEtat" = "1" ]; then
# Script de connexion au site Somfy version Mobile
Connexion_Somfy
et
Code : Tout sélectionner
# Lecture de la page MuEtat pour recuperer les etats de l alarme
if [ "$Debug" = "True" ]; then
echo ""
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Porte.*fermée'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Porte.*ouverte'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Pile.*OK'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Pile.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Communication.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Pas.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'Boîtier.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'zonea.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'zoneb.*</td>'
curl -L --cookie cjar --cookie-jar cjar $UrlMuEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi 'zonec.*</td>'
echo ""
fi