Compare commits
3 Commits
1.1
...
8fb1eac749
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fb1eac749 | ||
|
|
b338230b37 | ||
|
|
f5e8e4bdf0
|
61
homesfr.py
61
homesfr.py
@@ -21,7 +21,7 @@ authors = (
|
||||
'Gilles "Almtesh" Émilien MOREL',
|
||||
)
|
||||
name = 'homesfr for Python 3'
|
||||
version = '1.1'
|
||||
version = '1.2'
|
||||
|
||||
# Settable modes
|
||||
MODE_OFF = 0
|
||||
@@ -51,12 +51,12 @@ class Common ():
|
||||
|
||||
# path to login test
|
||||
self.auth_path = '/mysensors'
|
||||
self.auth_ok = '/accueil' # if logged
|
||||
self.auth_post_url = 'https://cas.home.sfr.fr/authentification'
|
||||
self.auth_referer = 'https://cas.home.sfr.fr/authentification'
|
||||
self.auth_user_field = 'username'
|
||||
self.auth_pass_field = 'password'
|
||||
self.auth_extra_fields = {}
|
||||
self.auth_ok_url = 'https://home.sfr.fr/logged' # if logged
|
||||
self.auth_post_url = 'https://boutique.home.sfr.fr/authentification'
|
||||
self.auth_referer = 'https://boutique.home.sfr.fr/authentification?back=service'
|
||||
self.auth_user_field = 'email'
|
||||
self.auth_pass_field = 'passwd'
|
||||
self.auth_extra_fields = {'back': 'service', 'token_sso': '', 'error_sso': '', 'SubmitLogin': 'OK'}
|
||||
self.auth_logout_path = '/deconnexion'
|
||||
|
||||
# Path to sensors and mode
|
||||
@@ -89,14 +89,15 @@ class Common ():
|
||||
self.camera_get_config_mac = 'mac'
|
||||
self.camera_get_config_flip = 'FLIP'
|
||||
self.camera_get_config_leds = 'LEDMODE' # set to 0 to turn the leds on
|
||||
self.camera_get_config_detectionsensibility = 'DP' # from 1 to 4
|
||||
self.camera_get_config_recording = 'REC24'
|
||||
self.camera_get_config_petmode = 'pet_mode'
|
||||
self.camera_get_config_recording = 'rec24'
|
||||
self.camera_get_config_privacy = 'privacy'
|
||||
self.camera_get_config_name = 'NAME'
|
||||
self.camera_set_config_path = '/homescope/camsettings'
|
||||
self.camera_set_config_mac = 'mac'
|
||||
self.camera_set_config_flip = 'flip'
|
||||
self.camera_set_config_leds = 'led_mode' # set to 0 to turn the leds on
|
||||
self.camera_set_config_detectionsensibility = 'dp' # from 1 to 4
|
||||
self.camera_set_config_petmode = 'pet_mode'
|
||||
self.camera_set_config_recording = 'rec24'
|
||||
self.camera_set_config_name = 'name'
|
||||
|
||||
@@ -251,7 +252,7 @@ class HomeSFR (Common):
|
||||
a = self.opener.open (self.auth_post_url, data = data)
|
||||
if self.DEBUG:
|
||||
print ('Auth redirected to ' + a.geturl ())
|
||||
return (a.geturl () == self.base_url + self.auth_ok)
|
||||
return (a.geturl () == self.auth_ok_url)
|
||||
else:
|
||||
return (False)
|
||||
|
||||
@@ -259,7 +260,7 @@ class HomeSFR (Common):
|
||||
'''
|
||||
Trigger the autologin
|
||||
'''
|
||||
if (self.autologin and not self.test_login ()):
|
||||
while (self.autologin and not self.test_login ()):
|
||||
self.login ()
|
||||
|
||||
def logout (self):
|
||||
@@ -364,8 +365,6 @@ class HomeSFR (Common):
|
||||
Get a Camera object from the sensor's id
|
||||
'''
|
||||
self.do_autologin ()
|
||||
if (self.autologin and not self.test_login ()):
|
||||
self.login ()
|
||||
r = Camera (id, self.opener)
|
||||
r.refresh ()
|
||||
return (r)
|
||||
@@ -483,23 +482,31 @@ class Sensor (Common):
|
||||
Returns True is the sensor is OK, False either
|
||||
'''
|
||||
return (self.sensor_dict [self.sensors_status_field] == self.sensors_status_value_ok)
|
||||
|
||||
|
||||
class Camera (Sensor):
|
||||
'''
|
||||
Class used to manipulate easily cameras
|
||||
'''
|
||||
def __init__ (self, sensor_dict, opener):
|
||||
'''
|
||||
Initialize the class with the dict producted by HomeSFR.get_camera ()
|
||||
'''
|
||||
Sensor.__init__ (self, sensor_dict, opener)
|
||||
|
||||
def get_snapshot (self):
|
||||
def get_camera_snapshot (self):
|
||||
'''
|
||||
Get a snapshot from the camera
|
||||
Return a PIL.Image object
|
||||
'''
|
||||
r = self.base_url + self.camera_snapshot + '?' + self.camera_snapshot_mac + '=' + self.get_mac ()
|
||||
a = self.bytes2image (self.opener.open (r).read ())
|
||||
return (a)
|
||||
return (a)
|
||||
|
||||
def get_camera_petmode (self):
|
||||
'''
|
||||
Gets the pet mode value
|
||||
Pet mode is a setting on movement sensibility, to avoid trigger on pet movements
|
||||
'''
|
||||
return (self.sensor_dict [self.camera_get_config_petmode] == '1')
|
||||
|
||||
def get_camera_recording (self):
|
||||
'''
|
||||
Gets if the camera records or not
|
||||
'''
|
||||
return (self.sensor_dict [self.camera_get_config_recording] == '1')
|
||||
|
||||
def get_camera_privacy (self):
|
||||
'''
|
||||
Gets if the camera records or not
|
||||
'''
|
||||
return (self.sensor_dict [self.camera_get_config_privacy] == '1')
|
||||
Reference in New Issue
Block a user