lib/arlo/devices.rb in arlo-0.0.4 vs lib/arlo/devices.rb in arlo-0.0.5
- old
+ new
@@ -10,26 +10,80 @@
def get_device_info(device_name)
raise 'Missing device_name' unless device_name
@devices['data'].select {|device| device['deviceName'] == device_name }[0]
end
- def arm_device(base_station, armed)
- station_id = base_station['deviceId']
+ def arm_device(device, armed)
+ device_id = device['deviceId']
payload = {
'from': 'arlogem',
- 'to': station_id,
+ 'to': device_id,
'action': 'set',
'resource': 'modes',
'transId': SecureRandom.uuid,
'publishResponse': true,
'properties': {
'active': armed ? 'mode1' : 'mode0'
}
}
- ret_val = post("https://arlo.netgear.com/hmsweb/users/devices/notify/#{station_id}",
- payload,
- 'xcloudId': base_station['xCloudId'])
+ ret_val = post("https://arlo.netgear.com/hmsweb/users/devices/notify/#{device_id}",
+ payload, 'xcloudId': device['xCloudId'])
+
JSON.parse(ret_val.body)
+ end
+
+ def take_snapshot(camera)
+ camera_id = camera['deviceId']
+
+ payload = {
+ 'to': camera_id,
+ 'from': 'ArloGem',
+ 'resource': "cameras/#{camera_id}",
+ 'action': 'set',
+ 'publishResponse': true,
+ 'transId': SecureRandom.uuid,
+ 'properties': {
+ 'activityState': 'startUserStream',
+ 'cameraId': camera_id
+ }
+ }
+
+ ret_val = post('https://arlo.netgear.com/hmsweb/users/devices/startStream',
+ payload, 'xcloudId': camera['xCloudId'])
+
+ ret_val = JSON.parse(ret_val.body)
+ return ret_val unless ret_val['success']
+
+ payload = {
+ 'cameraId': camera_id,
+ 'parentId': camera_id,
+ 'deviceId': camera_id,
+ 'olsonTimeZone': 'Americal/New York'
+ }
+
+ ret_val = post('https://arlo.netgear.com/hmsweb/users/devices/takeSnapshot',
+ payload, 'xcloudId': camera['xCloudId'])
+
+ snapshot_ret_val = JSON.parse(ret_val.body)
+
+ payload = {
+ 'to': camera_id,
+ 'from': 'ArloGem',
+ 'resource': "cameras/#{camera_id}",
+ 'action': 'set',
+ 'publishResponse': true,
+ 'transId': SecureRandom.uuid,
+ 'properties': {
+ 'activityState': 'stopUserStream',
+ 'cameraId': camera_id
+ }
+ }
+
+ ret_val = post('https://arlo.netgear.com/hmsweb/users/devices/stopStream',
+ payload, 'xcloudId': camera['xCloudId'])
+
+ JSON.parse(ret_val.body)
+ snapshot_ret_val
end
end
end