Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 02/02/15 dans toutes les zones

  1. Bon, comme promi, voila le script, facile d'utilisation, et redigé en ... PYTHON alors au programme, il surveille les ip predefini (autant d'ip que l'on veut) avec un delai donné (5 sec) et permet de lancer une commande lorsque : plus aucune ip ne repond des qu'au moin une ip est présente sur le reseau vu les caractéristiques : on peut : soit activer la videosurveillance qd plus personne n'est là ou l'inverse ; activer la videosurveillance dès que 1 personne est présente tout depend le but que l'on veut en faire voila le script : # Parametres a modifier ###### program_enable = "python ./cam_enable.py 1" program_disable = "python ./cam_enable.py 0" delai = 5 ip = [ '192.168.1.60', '192.168.1.61', '192.168.1.62' ] number_check = 3 DEBUG = True ############################## import urllib2 import time import os enable = 2 status = [] nb = len(ip) if number_check < 2 : number_check = 2 for i in range(0, nb) : status.append(1) while True: to_disable = 0 to_enable = 0 for i in range(0, nb) : try: urllib2.urlopen("http://" + ip, timeout = 1) except urllib2.URLError as e: if str(e.reason) != '[Errno 111] Connection refused' : if status > 0 : status -= 1 else : to_enable += 1 else : if status < number_check : status += 1 else : to_disable += 1 time.sleep(delai) if DEBUG : print ip + ' ' + str(status) + ' ' + str(e.reason) if enable != 1 and to_enable == nb : if DEBUG : print "Launch Enable Program" os.system(program_enable) enable = 1 if enable != 0 and to_disable != 0 : if DEBUG : print "Launch Disable Program" os.system(program_disable) enable = 0 if DEBUG : print 'enable : ' + str(enable) + ' to_enable : ' + str(to_enable) + ' to_ disable : ' + str(to_disable) exit alors, il y a 6 varilables program_enable = le programme appelé qd plus aucune ip ne repond (par defaut le programme python pour piloté la camera) program_disable = le programme appelé qd au moin une ip répond (par defaut le programme python pour piloté la camera) delai = delay entre 2 check si les ip sont presentes ip = liste des adresse IP number_check = nombre de chck par ip avant de changé d'état (minimum = 2; default = 3) DEBUG affiche des info de debug pour les test (True / False)
    1 point
  2. bon, j'ai pas trop eu le temps, je vais deja donner le script qui active / desactive et met en position home la camera restera plus que la gestiion du ping sur les gsm que je doit reecrire, car ca a été codé à l'arrache cam_enable.py : # Parametres a modifier ###### user = 'admin' password = 'enter password here' camera_number = 0 camera_preset = 0 base_url = 'http://127.0.0.1:5000/webapi/' ############################## import sys import urllib import urllib2 import json def call_syno_api ( path, values ): param = urllib.urlencode(values); r = urllib2.urlopen(base_url + path + '?' + param) j = json.loads(r.read()) if not j['success']: sys.exit( "Path : %s%s?%snError code : %s" % (base_url, path ,param, j['error']['code']) ) return j # Init path = 'query.cgi' values = { 'api' : 'SYNO.API.Info', 'method' : 'Query', 'version' : '1', 'query' : 'ALL'} list = call_syno_api(path, values) # Login path = list['data']['SYNO.API.Auth']['path'] values = { 'api' : 'SYNO.API.Auth', 'method' : 'Login', 'version' : '2', 'account' : user, 'passwd' : password, 'session' : 'SurveillanceStation'} ret = call_syno_api(path, values) sid = '"' + ret['data']['sid'] + '"' # Camera Select path = list['data']['SYNO.SurveillanceStation.Camera']['path'] values = { 'api' : 'SYNO.SurveillanceStation.Camera', 'method' : 'List', 'version' : '6', '_sid' : sid} ret = call_syno_api(path, values) camera_id = ret['data']['cameras'][camera_number]['id'] # Camera activation/desactivation path = list['data']['SYNO.SurveillanceStation.Camera']['path'] if str(sys.argv[1]) != "0" : # Activation de la camera values = { 'api' : 'SYNO.SurveillanceStation.Camera', 'method' : 'Enable', 'version' : '6', 'cameraIds' : camera_id, '_sid' : sid} ret = call_syno_api(path, values) if str(sys.argv[1]) == "2" : # Selection de la position home values = { 'api' : 'SYNO.SurveillanceStation.PTZ', 'method' : 'ListPreset', 'version' : '3', 'cameraId' : camera_id, '_sid' : sid} ret = call_syno_api(path, values) camera_preset = ret['data']['presets'][0]['id'] # Move de la camera values = { 'api' : 'SYNO.SurveillanceStation.PTZ', 'method' : 'GoPreset', 'version' : '3', 'cameraId' : camera_id, 'presetId' : camera_preset, '_sid' : sid} ret = call_syno_api(path, values) else: # Desactivation de la camera path = list['data']['SYNO.SurveillanceStation.Camera']['path'] values = { 'api' : 'SYNO.SurveillanceStation.Camera', 'method' : 'Disable', 'version' : '6', 'cameraIds' : camera_id, '_sid' : sid} ret = call_syno_api(path, values) # Logout path = list['data']['SYNO.API.Auth']['path'] values = { 'api' : 'SYNO.API.Auth', 'method' : 'Logout', 'version' : '2', 'session' : 'SurveillanceStation', '_sid' : sid} ret = call_syno_api(path, values) dans le code, il y a 5 variable à modifier : user = le nom d'utilisateur qui a le droit d'activer / desactiver la camera (admin par defaut) password = j'espère que tous le monde compredra ce champ camera_number = numera d'index de la camera dans l'ordre qu'elle ont ete declarée, première camera = 0 camera_preset = numero d'index de la position predefinie (pour la position home de la cam = 0) base_url = url d'acces à l'api (a changer uniquement si utilisation sur un port différent ou à partir d'une autre machine) le programme s'utilise avec un paramètre python cam_enable 0 (desactive la camera) python cam_enable 1 (active la camera) python cam_enable 2 (active la camera et la positionne à la position prédéfinie) voila, pour l'iddée du wget au lieu du ping, c simple, un wget sur un telephone renvoit une connection refusée qd il est present, un timeout qd il n'est pas là --> on a ce que l'on desire
    1 point
  3. hello aurel94 je ne sais pas si ma methode est bonne en tous cas elle fonctionne pour moi en fait c'est tres simple pour ces 2 models et la méthode est la meme : DS 214 DS114 ton probleme vient surtout des ports qui ne sont pas ouvert moi j'ai ouvert tous les ports que tu vois si dessous : donc j'ai commencé par ouvrir les ports de ma bbox , voila les ports que j'ai ouvert : voila la methode complete pour ceux qui ont galérés comme moi . ensuite , j'ai créé un dossier la la racine de mon hdd sur mon nas pour ce faire , j'ai executer le logiciel putty : je rentre mon ip dans putty comme ceci : - host name = ton adresse ip de ton nas - port = 22 et cliquer en bas sur open . dans la fenetre dos noire qui apparait : il te demande de te logger , donc tu fait : login as : tu tapes root mot de passe : tu rentre celui de ton nas ensuite , tu as marqué " diskstation> ici tu tape cette commande : mkdir /volume1/pyload ( copier/coller en faisant CTRL+C et et boutton droit dans le fenetre sinon taper a la main et bien respecter l'espace entre mkdir et le / ) ensuite ça va te créer le fameux repertoir a la racine de ton nas . ensuite tu lance ton nas et tu va dans l'interface : tu vas dans centre de paquets puis parametre et source de paquets et la tu faits ajoutter et tu rentres le nom :spk.unzureichende.info et l'adresse http://spk.unzureichende.info ensuite tu cliques sur actualiser et en bas dans communauté / tu cherches pyload et tu l'installes ça devrai bien se passer . p.s. cette methode marche sur mes ds114 et 214 pour le 213 si tu as un probleme tu dois aller identifier ton processeur : a cette adresse : http://forum.synology.com/wiki/index.php/What_kind_of_CPU_does_my_NAS_have tu telecharges le pyload approprié pour ds213 ici : http://spk.unzureichende.info/
    1 point
Ce classement est défini par rapport à Bruxelles/GMT+01:00
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.