Script alarme Somfy Protexiom 600

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Seb13
Messages : 273
Inscription : 07 janv. 2016, 23:46

Re: Script alarme Somfy Protexiom 600

Message par Seb13 »

Hello, voici la suite avec l'état des Piles pour chaque élément.
Il suffit de voir de même pour le reste... je terminerai plus tard... je suis mort de fatigue :(

A ajouter toujours dans la version 3 de mon code.
Je ne vous montre pas le résultat sinon vous allez voir tous mes éléments de mon alarme :lol: :lol: :lol:

Code : Tout sélectionner

Connexion_Somfy

# Recherche les elements
#curl -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_name'
# Recherche l etat de la pile pour chaque element
#curl -L --cookie cjar --cookie-jar cjar $UrluListeElement | iconv -f iso8859-1 -t utf-8 | grep 'var elt_pile'

# 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 L ETAT DES PILES DES ELEMENTS
# On recup la liste des elements par la recherche elt_name
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 "itembattko" par "Etat Pile KO" JE N AI PAS FAIT LE TEST CAR PILE TJS OK
ListeEtatPile="$(echo "$ListeEtatPile" | sed s/itembattko/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


# On affiche les elements du tableau
TailleTab=${#TabListeElement[@]}
for (( i=0; i<$TailleTab; i++ ))
do
        echo "Element : "${TabListeElement["$i"]} " Etat Pile : "${TabListeEtatPile["$i"]}
done

Deconnexion_Somfy
Seb13
Messages : 273
Inscription : 07 janv. 2016, 23:46

Re: Script alarme Somfy Protexiom 600

Message par Seb13 »

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 :lol:

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
jcjames_13009
Messages : 105
Inscription : 23 févr. 2015, 15:27
Localisation : Marseille
Contact :

Re: Script alarme Somfy Protexiom 600

Message par jcjames_13009 »

jcjames_13009 a écrit :
n1c0l45 a écrit :voila ce que j'ai trouvé pour la 5000

Code : Tout sélectionner

UrlMLogin=$SrvSomfyIp"fr/login.htm"
UrlMuEtat=$SrvSomfyIp"fr/u_listelmt.htm"
UrlMLogout=$SrvSomfyIp"logout.htm"
UrlMuPilotage=$SrvSomfyIp"fr/u_pilotage.htm"
Le POST data de connexion est le suivant

Code : Tout sélectionner

login=u&password=XXXX&key=XXXX&btn_login=Connexion

mise en marche de toutes les zones

Code : Tout sélectionner

 on se connecte à la page 
http://IP_ALARME/fr/u_pilotage.htm
et on a ce "POST data"
hidden=hidden&btn_zone_on_ABC=Marche+A+B+C
Arret de toutes les zones

Code : Tout sélectionner

 on se connecte à la page 
 http://IP_ALARME/fr/u_pilotage.htm
et on a ce "POST data"
hidden=hidden&btn_zone_off_ABC=Arr%C3%AAt+A+B+C
Salut

pour completer ce qu'a trouvé n1c0l45

Mise en marche par Zone

Code : Tout sélectionner

hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A
hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B
hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C
Rappel l'arrêt par zone n'est pas possible

Pour connaitre l'état du système il faut utiliser l'url suivant

Code : Tout sélectionner

http://IP_ALARME/status.xml
Les info sont revoyées au format xml

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-15"?>
<response>

<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/Fenetre
<defaut3>ok</defaut3>				-> Alarme
<defaut4>ok</defaut4>				-> Boitier

<gsm>GSM connecté au réseau</gsm> 	-> GSM
<recgsm>4</recgsm>					-> Signal
<opegsm>"Orange</opegsm>			-> Operateur

<camera>disabled</camera>			-> Camera
</response>
Mais je n'ai pas encore trouvé comment les récupérer...

@+

JC
Salut

Voici ce qu'il faut faire pour remonter les états système de la PROTEXIOM 5000

Code : Tout sélectionner

EtatZoneA="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone0>.*')"
EtatZoneA="$(echo "${EtatZoneA:7:-9}")"
EtatZoneB="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone1>.*')"
EtatZoneB="$(echo "${EtatZoneB:7:-9}")"
EtatZoneC="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone2>.*')"
EtatZoneC="$(echo "${EtatZoneC:7:-9}")"
		
EtatPiles="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut0>.*')"
EtatPiles="$(echo "${EtatPiles:9:-11}")"
EtatRadio="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut1>.*')"
EtatRadio="$(echo "${EtatRadio:9:-11}")"
EtatPorte="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut2>.*')"
EtatPorte="$(echo "${EtatPorte:9:-11}")"
EtatAlarme="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut3>.*')"
EtatAlarme="$(echo "${EtatAlarme:9:-11}")"
EtatBoitier="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut4>.*')"
EtatBoitier="$(echo "${EtatBoitier:9:-11}")"

EtatGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<gsm>.*')"
EtatGSM="$(echo "${EtatGSM:5:-7}")"
SignalGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<recgsm>.*')"
SignalGSM="$(echo "${SignalGSM:8:-10}")"
OperateurGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<opegsm>.*')"
OperateurGSM="$(echo "${OperateurGSM:9:-10}")"
		
EtatCamera="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<camera>.*')"
EtatCamera="$(echo "${EtatCamera:8:-10}")"
Il y a en plus les info de la liaison GSM et l'état des caméras (Optionel)

Ce qui donne ça à l'affichage

Code : Tout sélectionner

 *******************************************
 Etat du système
 *******************************************
 Zone A                   = off
 Zone B                   = off
 Zone C                   = off

 Etat Piles               = ok
 Etat Communication Radio = ok
 Etat Porte/Fenêtre       = ok
 Etat Alarme              = ok
 Etat Boitier             = ok

 Etat GSM                 = GSM connecté au réseau
 Signal GSM               = 4
 Opérateur GSM            = Orange

 Etat caméra              = disabled
Je pense que je vais regrouper tout ça dans un post séparé pour la version PROTEXIOM 5000

@+

JC
Dernière modification par jcjames_13009 le 23 nov. 2016, 21:52, modifié 1 fois.
n1c0l45
Messages : 180
Inscription : 15 avr. 2016, 09:12

Re: Script alarme Somfy Protexiom 600

Message par n1c0l45 »

jcjames_13009 a écrit :
jcjames_13009 a écrit :
n1c0l45 a écrit :voila ce que j'ai trouvé pour la 5000

Code : Tout sélectionner

UrlMLogin=$SrvSomfyIp"fr/login.htm"
UrlMuEtat=$SrvSomfyIp"fr/u_listelmt.htm"
UrlMLogout=$SrvSomfyIp"logout.htm"
UrlMuPilotage=$SrvSomfyIp"fr/u_pilotage.htm"
Le POST data de connexion est le suivant

Code : Tout sélectionner

login=u&password=XXXX&key=XXXX&btn_login=Connexion

mise en marche de toutes les zones

Code : Tout sélectionner

 on se connecte à la page 
http://IP_ALARME/fr/u_pilotage.htm
et on a ce "POST data"
hidden=hidden&btn_zone_on_ABC=Marche+A+B+C
Arret de toutes les zones

Code : Tout sélectionner

 on se connecte à la page 
 http://IP_ALARME/fr/u_pilotage.htm
et on a ce "POST data"
hidden=hidden&btn_zone_off_ABC=Arr%C3%AAt+A+B+C
Salut

pour completer ce qu'a trouvé n1c0l45

Mise en marche par Zone

Code : Tout sélectionner

hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A
hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B
hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C
Rappel l'arrêt par zone n'est pas possible

Pour connaitre l'état du système il faut utiliser l'url suivant

Code : Tout sélectionner

http://IP_ALARME/status.xml
Les info sont revoyées au format xml

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-15"?>
<response>

<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/Fenetre
<defaut3>ok</defaut3>				-> Alarme
<defaut4>ok</defaut4>				-> Boitier

<gsm>GSM connecté au réseau</gsm> 	-> GSM
<recgsm>4</recgsm>					-> Signal
<opegsm>"Orange</opegsm>			-> Operateur

<camera>disabled</camera>			-> Camera
</response>
Mais je n'ai pas encore trouvé comment les récupérer...

@+

JC
Salut

Voici ce qu'il faut faire pour remonter les états système de la PROTEXIOM 5000

Code : Tout sélectionner

EtatZoneA="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone0>.*')"
EtatZoneA="$(echo "${EtatZoneA:7:-9}")"
EtatZoneB="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone1>.*')"
EtatZoneB="$(echo "${EtatZoneB:7:-9}")"
EtatZoneC="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<zone2>.*')"
EtatZoneC="$(echo "${EtatZoneC:7:-9}")"
		
EtatPiles="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut0>.*')"
EtatPiles="$(echo "${EtatPiles:9:-11}")"
EtatRadio="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut1>.*')"
EtatRadio="$(echo "${EtatRadio:9:-11}")"
EtatPorte="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut2>.*')"
EtatPorte="$(echo "${EtatPorte:9:-11}")"
EtatAlarme="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut3>.*')"
EtatAlarme="$(echo "${EtatAlarme:9:-11}")"
EtatBoitier="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<defaut4>.*')"
EtatBoitier="$(echo "${EtatBoitier:9:-11}")"

EtatGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<gsm>.*')"
EtatGSM="$(echo "${EtatGSM:5:-7}")"
SignalGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<recgsm>.*')"
SignalGSM="$(echo "${SignalGSM:8:-10}")"
OperateurGSM="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<opegsm>.*')"
OperateurGSM="$(echo "${OperateurGSM:9:-10}")"
		
EtatCamera="$(curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 | grep -Eoi '<camera>.*')"
EtatCamera="$(echo "${EtatCamera:8:-10}")"
Il y a en plus les info de la liaison GSM et l'éta des caméras (Optionel)

Ce qui donne ça à l'affichage

Code : Tout sélectionner

 *******************************************
 Etat du système
 *******************************************
 Zone A                   = off
 Zone B                   = off
 Zone C                   = off

 Etat Piles               = ok
 Etat Communication Radio = ok
 Etat Porte/Fenêtre       = ok
 Etat Alarme              = ok
 Etat Boitier             = ok

 Etat GSM                 = GSM connecté au réseau
 Signal GSM               = 4
 Opérateur GSM            = Orange

 Etat caméra              = disabled
Je pense que je vais regrouper tout ça dans un post séparé pour la version PROTEXIOM 5000

@+

JC
Effectivement ca serait pas mal de faire cela dans un post separé pour pas polluer celui ci!
en tous cas super! j'ai hate d'essayer ton script pour la 5000 car perso j'ai pas eu le temps d'avancer dessus. Si tu as le temps de le poster ce soir, je le teste direct!
Merci
jcjames_13009
Messages : 105
Inscription : 23 févr. 2015, 15:27
Localisation : Marseille
Contact :

Re: Script alarme Somfy Protexiom 600

Message par jcjames_13009 »

Et voilà

Le script pour la Protexiom 5000 est là
viewtopic.php?f=17&t=2831

@+

JC
Seb13
Messages : 273
Inscription : 07 janv. 2016, 23:46

Re: Script alarme Somfy Protexiom 600

Message par Seb13 »

Hello à tous,

Une petite information, en fait, mon script tourne toutes les 10mn via la Crontab, mais si je veux voir de suite l'état, il suffit de mettre le script dans les actions ON et OFF d'un élément, par exemple ouverture fenêtre et là, il va envoyer l'état de tous les éléments.

Petite modification, il ne faut pas le faire sur un élément qui est mis à jour pour le script sinon il va tourner en boucle :lol:
Il faut créer un interrupteur pour ça.

Voilà.
A+
Seb13
Messages : 273
Inscription : 07 janv. 2016, 23:46

Re: Script alarme Somfy Protexiom 600

Message par Seb13 »

Salut,

Une petite question, je cherche le moyen de faire sonner mon alarme Somfy, soit par un bip, comme celui que l'on a quand on active/desactive l'alarme ou vraiment l'alarme.

Le but est d'acheter des detecteurs d'ouverture de porte à 5€ en Asie :D et pas ceux à 70€ chez Somfy et faire un script d'alarme, cela va me permettre d'ajouter des detecteurs sans me ruiner.

J'ai cherché dans l'interface web... je ne trouve pas un bouton test ou d'activation de l'alarme.

Sinon, je peux faire un script qui active et désactive l'alarme à la suite histoire de faire du bruit dans la maison seulement dans le cas ou je suis là.

Merci de votre aide.
jcjames_13009
Messages : 105
Inscription : 23 févr. 2015, 15:27
Localisation : Marseille
Contact :

Re: Script alarme Somfy Protexiom 600

Message par jcjames_13009 »

Salut

Si c'est uniquement dans le cas où l'alarme est sur off, la cde Arrêt ABC suffit pour générer un BIP sur la centrale et la sirène.

Il y a aussi la possibilité d'emettre un DingDong
Capture 6.JPG
Capture 6.JPG (16.69 Kio) Consulté 10208 fois
C'est dans les paramètre généraux de l'alarme mais je ne sais pas comment l'activer.

Ca fonctionne comme ça sur la 5000, je ne sais pas pour la 600

Si ça peut aider ;)

JC
Seb13
Messages : 273
Inscription : 07 janv. 2016, 23:46

Re: Script alarme Somfy Protexiom 600

Message par Seb13 »

Merci je vais regarder...

En effet, je peux faire un arrêt des Zones ABC 1 ou 2 ou 3 fois... cela va faire du bruit :lol:

Mais je suis con !!!

J'active l'alarme
Je me connecte sur l'interface web via mon script
et je passe ouverture de porte à nok en valeur dans une commande Curl... comment j'y crois trop ;)
jcjames_13009
Messages : 105
Inscription : 23 févr. 2015, 15:27
Localisation : Marseille
Contact :

Re: Script alarme Somfy Protexiom 600

Message par jcjames_13009 »

C'est ça le travail d'équipe :D
Répondre