guardianproject / haven

Haven is for people who need a way to protect their personal spaces and possessions without compromising their own privacy, through an Android app and on-device sensors
https://guardianproject.github.io/haven/
GNU General Public License v3.0
6.58k stars 728 forks source link

difficulties if "notifications" and "heartbeat" are enabled simultaneously #345

Closed deviantollam closed 5 years ago

deviantollam commented 5 years ago

I'm encountering a variety of difficulties with receiving SMS/Signal notifications of trigger events if heartbeat is also enabled. It seems (I can't be 100% sure, but I think) that enabling one and then the other knocks out the first setting somehow. Maybe it's the order in which you enable them? Like... I enabled heartbeat, then enabled event trigger notifications... I received the heartbeat messages but not the event trigger messages.

Then I disabled them both... re-enabled event notifications, then re-enabled heartbeat. And everything worked.

There's another difficulty I've found, however: if you set the "rate limiting" function (i.e. "only send me one message every 5 minutes") and a heartbeat takes place during that time window... it appears that for the next (in this case) 5 minutes any trigger events will not be sent to you as a notification. is this correct?

That would mean that if someone sets a particularly fast heartbeat interval and also a message rate-limit, they run the risk of never seeing important sensor trigger messages. I'd support if heartbeats were not considered when the app is calculating how long it's been since sending it's previous notification to a user.

lukeswitz commented 5 years ago

No, that’s not how the feature works and alerts work alongside the ping. Messages are sent to whichever remote number is configured, be it signal or sms. if you have none set then no HB notificTions are coming. Thanks

deviantollam commented 5 years ago

i get heart beat notifications perfectly, 100% of the time. zero errors, no problems.

when heartbeat is enabled, i do not receive sensor alert notifications (even though I have them enabled)

if i deactivate monitoring, go into settings, disable heartbeat (and leave all other notifications still enabled) and re-activate monitoring, typical "event detected" alerts immediately start working via Signal or SMS.

if i turn heartbeat back on, detected events immediately stop being sent as notifications to me.

lukeswitz commented 5 years ago

That’s a huge problem. I see part of my code was commented out by someone. This could cause the behavior you’re talking about. It’s concerning if it was removed, unlikely I'd continue contributing.

deviantollam commented 5 years ago

i'm very sorry to hear that you just learned about it this way. i have never modified the code or done a PR, i'm only use testing and offering feedback... but for whatever little my comments might mean to you, let me extend my thanks that you have contributed and offer my hope that you can find a way to still contribute again in future.

the fact that you were able to so immediately identify what happened demonstrates the immense value you have to the project. would you consider sticking around, at least to get to the bottom of this mystery as to why things were commented out? maybe it was unintentional or done simply as a test momentarily but then someone forgot to change it back?

deviantollam commented 5 years ago

I don't know if this is related to the same issue or something separate, but now I am finding that video monitoring will not work.

Motion is detected by the device. It captures a photo, but does not record any video. Despite video monitoring being enabled. This is incredibly frustrating.

lukeswitz commented 5 years ago

I forgot to mention that video recording is documented as breaking the whole app. Agreed is very frustrating #295 #342

Can also cause you to not get any messages, heartbeat setting or not. Cheers

deviantollam commented 5 years ago

In my world, and maybe this is just me... Videos are far more valuable and useful than still photos. If I want still photos, I can always extract them from a video file.

My utter fantasy would be:

  1. User configures only the "duration of recording" and that's it.
  2. Upon any device detection event, the device begins immediately video and audio recording (separate files are fine if you like) in segments that are the duration specified (so that audio can be easily edited in to the videos later)
  3. This would be the behavior no matter the trigger. Even if only audio was detected, the device will record video. Likewise, even if it was only a camera event detection, audio would be documented.

This would result in considerably cleaner log files and archived files on the device. No still images. Only video and audio files each with matching timestamps and each of the same duration.

That's my over-the-moon fantasy configuration.

n8fr8 commented 5 years ago

I think I caused a regression in the video support by trying to add support for storage locations on external USB, SD Cards.

@deviantollam are you using the f-droid nightly build or 0.2 Alpha 3 July 15th?

n8fr8 commented 5 years ago

Also regarding duration, my thought has been to just continue to record as long as some threshold has been met within the configured duration window. If there continues to be motion, sound, etc, we should continue to record.

deviantollam commented 5 years ago

i'm still on 0.2.0-alpha3

is it possible to download the nightly builds without using F-Droid?

EDIT: hmm... i simply opted to install F-Droid on this device but there are no search results for "Haven" or "Keep Watch" or "Guardian"

deviantollam commented 5 years ago

ok... so maybe this is related to when the screen is off. although i have successfully gotten Haven to detect camera events with the screen off (and capture video, send video to me, etc) and send me Signal notifications in the past... something has happened now and it won't work anymore.

i'm going to uninstall 0.2.0-beta4, remove all settings, and try re-installing again. i'm going to troubleshoot the hell out of this today in an attempt to isolate what is preventing the app from doing any real monitoring and detection.

deviantollam commented 5 years ago

i'm doing a lot of testing and putting all my notes into #347

lukeswitz commented 5 years ago

Let me know if there is a conflict with the hb & regular alerts. Thanks for your help on this

deviantollam commented 5 years ago

none at all, as far as i can tell. enabling/disabling heartbeat changed nothing.

it was disabling "video monitoring" that suddenly made everything work perfectly again. (all notes about this write-up in #347)

lukeswitz commented 5 years ago

Issue is not a bug as labeled and exists in video, not hb alerts:

“...it was disabling "video monitoring" that suddenly made everything work”

The issue/bug is documented in three separate places already (//295 //342 //347). Suggest close. Testing fallback methods for API < 21 & camera/video with some success, will update soon. Thanks

n8fr8 commented 5 years ago

Closing, new public beta posted: https://github.com/guardianproject/haven/releases/tag/0.2.0-beta-3

Will be overhauling video recording as well in the 0.3.0 work.