Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'net/http'
- @cameraDelay = 1 # Needed for image sync.
- @fetchNewImageEvery = '3s'
- @camera1Host = "192.168.0.20" ## CHANGE
- @camera1Port = "80" ## CHANGE
- @camera1Username = 'admin' ## CHANGE
- @camera1Password ='*****'
- @camera1URL = "/dms?nowprofileid=1&"
- @newFile1 = "assets/images/cameras/snapshot1_new.jpg"
- @oldFile1 = "assets/images/cameras/snapshot1_old.jpg"
- def fetch_image(host,old_file,new_file, cam_user, cam_pass, cam_url)
- `rm #{old_file}`
- `mv #{new_file} #{old_file}`
- Net::HTTP.start(host) do |http|
- req = Net::HTTP::Get.new(cam_url)
- if cam_user != "None" ## if username for any particular camera is set to 'None' then assume auth not required.
- req.basic_auth cam_user, cam_pass
- end
- response = http.request(req)
- open(new_file, "wb") do |file|
- file.write(response.body)
- end
- end
- new_file
- end
- def make_web_friendly(file)
- "/" + File.basename(File.dirname(file)) + "/" + File.basename(file)
- end
- SCHEDULER.every @fetchNewImageEvery do
- STDOUT.flush
- new_file1 = fetch_image(@camera1Host,@oldFile1,@newFile1,@camera1Username,@camera1Password,@camera1URL)
- if not File.exists?(@newFile1)
- warn "Failed to Get Camera Image"
- end
- send_event('camera1', image: make_web_friendly(@oldFile1))
- sleep(@cameraDelay)
- send_event('camera1', image: make_web_friendly(new_file1))
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement