Bonjour,
Apres quelques jours d'experimentation avec mon HCL, voici ma premiere contribution au forum, en espérant que cela sera utile à certain.
Mon besoin est très simple. Offrir un moyen simple pour :
- désactiver l'alarme
- activer l'alarme en mode nuit (détecteurs de portes et fenêtres uniquement)
- activer l'alarme complete (nuit + détecteurs de mouvements)
J'ai exploré les module RFID mais rien de bien simple à mettre en oeuvre. Au fond d'un tiroir il me reste un iPhone 4... voila une chouette façon de gérer l'alarme.
Je regarde les outils sur l'AppStore pour gérer des requêtes http (d'ou mes questions). Bolt me semble pas mal mais il plante lorsque l'on veut enchainer plusieurs commandes. La solution: Pythonista (env 5€).
Premiere étape créer deux scenes pour: l'une activer l'alarme en mode nuit (id=3) et l'autre pour activer l'alarme complete (id=4).
Apres voici le code...
# coding: utf-8
import ui
import requests
def button_tapped(sender):
motion = ['5' , '16']
contact = ['13' , '14' ,'23' , '24' , '25' , '26']
# Get the button's title for the following logic:
'@type sender: ui.Button'
t = sender.name
global shows_result
if t == 'night':
url = "http://admin:xxx@10.0.1.18/api/sceneControl?id=3&action=start"
print url
req = requests.request('GET', url)
if t == 'full':
url = "http://admin:xxx@10.0.1.18/api/sceneControl?id=4&action=start"
print url
req = requests.request('GET', url)
if t == 'off':
devices = contact + motion
for i, v in enumerate(devices):
url = "http://admin:xxx@10.0.1.18/api/callAction?deviceID=" + v + "&&name=setArmed&arg1=0&arg2=PINâ€_CODE
print i , url
req = requests.request('GET', url)
v = ui.load_view('Alarm')
if ui.get_screen_size()[1] >= 768:
# iPad
v.present('popover')
else:
# iPhone
v.present(orientations=['portrait'])
Et finalement, une petite interface graphique avec trois boutons (night, full, off) grace à l'éditeur graphique intègre de Pythonista.
Je pose au mur l'iPhone avec un mot de passe au niveau iOS. L'application Pythonista est déjà ouverte donc accès direct. Et en bonus, l'application est installée sur tous nos iPhone et iPad.
Cordialement,
dac.
PS: j'ai utilisé la lib requests au lieu de urllib2. Cette dernière est pas mal bugguée. Je concede que la passage du login/pwd par l'url n'est pas élégant !