Page 1 sur 1

Notifications push

Posté : ven. 21 août 2015 13:47
par FullMetalKnet
Bonjour à toutes et à tous!
N'ayant pas eu de réponse dans l'onglet alarme videosurveillance, je déplace le post! merci
Ayant un peu de domotique delta dore chez moi, je souhaiterais améliorer mon système grâce a notre joujou préféré le rapsberry!

J'ai acheté récement le tydom 1.0 de chez delta dore qui permet de prendre le contrôle de la maison simplement depuis le smartphone, (très bon produit mais la n'est pas le sujet).
Mon soucis c'est que j'ai un module impulsionnel sur le moteur de la porte du garage, et par la logique des choses aucuns retour sur la position du porte.

Avec le raspberry j'avais pensé a combler ce manque avec les notifications push:http://videos.cctvcamerapros.com/digita ... ry-pi.html

Ca fonctionne super bien, mais je souhaiterais aller plus loin, étant novice en codage python j'ai tenté quelques codes mais n'aboutissant pas.

j'aurais voulu une notification aussi pour m'informé que le portail est bien fermé!

voici le code:

Code : Tout sélectionner

#!usr/bin/env python

import pycurl, json
from StringIO import StringIO
import RPi.GPIO as GPIO

#setup GPIO using Broadcom SOC channel numbering
GPIO.setmode(GPIO.BCM)

# set to pull-up (normally closed position)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#setup InstaPush variables
# add your Instapush Application ID
appID = "55c84f85a4c48a613fc9a5df"

# add your Instapush Application Secret
appSecret = "2f354146a123f3312c60b71a87358e8f"
pushEvent = "Alerte"
pushMessage = "Porte garage!"

# use this to capture the response from our push API call
buffer = StringIO()

# use Curl to post to the Instapush API
c = pycurl.Curl()

# set API URL
c.setopt(c.URL, 'https://api.instapush.im/v1/post')

#setup custom headers for authentication variables and content type
c.setopt(c.HTTPHEADER, ['x-instapush-appid: ' + appID,
			'x-instapush-appsecret: ' + appSecret,
			'Content-Type: application/json'])


# create a dict structure for the JSON data to post
json_fields = {}

# setup JSON values
json_fields['event']=pushEvent
json_fields['trackers'] = {}
json_fields['trackers']['message']=pushMessage
#print(json_fields)
postfields = json.dumps(json_fields)

# make sure to send the JSON with post
c.setopt(c.POSTFIELDS, postfields)

# set this so we can capture the resposne in our buffer
c.setopt(c.WRITEFUNCTION, buffer.write)

# uncomment to see the post sent
#c.setopt(c.VERBOSE, True)


# setup an indefinite loop that looks for the door to be opened / closed
while True:

	GPIO.wait_for_edge(23, GPIO.RISING)
	print("Porte ouverte!\n")

	# in the door is opened, send the push request
	c.perform()

	# capture the response from the server
	body= buffer.getvalue()

	# print the response
	print(body)

	# reset the buffer
	buffer.truncate(0)
	buffer.seek(0)
	
	# print when the door in closed
	GPIO.wait_for_edge(23, GPIO.FALLING)
	print("Porte fermee!\n")
	

# cleanup
c.close()
GPIO.cleanup()

j'avis tenté ce code après:

Code : Tout sélectionner

# print when the door in closed
	GPIO.wait_for_edge(23, GPIO.FALLING)
	print("Porte fermee!\n")

	# in the door is closed, send the push request
	c.perform()

	# capture the response from the server
	body= buffer.getvalue()

	# print the response
	print(body)

	# reset the buffer
	buffer.truncate(0)
	buffer.seek(0)

je souhaiterais rajouter plus tard d'autres notifications, es ce possible?

merci d'avance

Re: Notifications push

Posté : sam. 22 août 2015 08:44
par Manfraid
Salut,

pourquoi ne pas utiliser l'excellente librairy "requests" plutôt qu'urllib ?

sinon avec ton code cela risque d'être un poil compliquer, l'idéal serai de faire une fonction d'envoi d'un message (qui sera un paramètre), comme cela tu pourra envoyer autant de notification différente que tu veux.

Re: Notifications push

Posté : sam. 22 août 2015 09:07
par FullMetalKnet
:shock:

Merci pour ta réponse.

Cela dis, je vais prendre quelques cours de python, car je suis novice en programmation, (j’ai quelques connaissances en vb) :?

Quels sites me conseil tu pour apprendre les bases? :roll:

Re: Notifications push

Posté : sam. 22 août 2015 10:51
par EVOTk
Salut,
Tu n'as pas un abonnement free mobile par hasard ? Car avec Free il est tres facile de s'envoyer des sms sur son portable.

Re: Notifications push

Posté : sam. 22 août 2015 11:39
par domi
Bonjour,
FullMetalKnet a écrit :Quels sites me conseil tu pour apprendre les bases? :roll:
Très complet, tu as déjà le site OpenClassRooms.

Re: Notifications push

Posté : lun. 24 août 2015 13:19
par FullMetalKnet
EVOTk a écrit :Salut,
Tu n'as pas un abonnement free mobile par hasard ? Car avec Free il est tres facile de s'envoyer des sms sur son portable.
Je suis bien chez free mais c'est pas moi qui a le forfait mobile (c'est madame).

domi a écrit :Bonjour,
FullMetalKnet a écrit :Quels sites me conseil tu pour apprendre les bases? :roll:
Très complet, tu as déjà le site OpenClassRooms.
Merci j’ai commencé le cours, c'est plutôt bien expliqué. J'en ai profité pour m'acheter le livre de François sur le raspberry pi 2