Yakk - A simple motion detector and wake screen app for wall mounted tablets (Android)

I’ve created this little app for my wall-mounted tablets to wake the screen on motion detect.

How is this different from other apps you might ask? First, it is only a background app and does not display the actual content. In my case I simply use the HomeAssistant companion app to display my dashboards. The HA mobile app is doing a way better job at displaying the dashboards than trying to embed home assistant into a foreign app. Also, this way it has the added benefit of having out of the box sensor support for everything that’s exposed by the HA mobile app without any extra setup. Yakk is simply running in the background and it takes care of turning the screen on when motion is detected. It is extremely lightweight, only consumes about 50-80MB RAM and very little CPU.

The main reason I’ve created this app is that I wanted a simple and lightweight way to wake the screen on motion detect without all the compromises. I looked at available solutions and while FullyKIOSK is a really nice app it is an overkill in a home environment. At least for my use case it was and it’s significantly slower than the HA mobile app. Unfortunately, I had very little luck with open source and free alternatives as they were often unstable and bloated with many non functional features and bugs while draining the battery very fast.

Instead, Yakk is letting Android turn off the screen and also letting the device enter a lower power state. Obviously it can not go all the way down to deep sleep mode as it is constantly watching the camera but during testing my battery lasts on average 2-3 times longer compared to the alternatives.

If your use case is similar to mine; and you just want to wake your device while you’re approaching it you might want to give Yakk a try. It is extremely simple to set up, just give it the necessary permissions and you’re good to go.

Features:

  • Turn on the display when detecting motion
  • MJPEG Camera support (up to 10 concurrent streams)
  • Automatically start Yakk and a companion app after device boot

Motion Detection Setup:

  • Enable Motion Detect in Yakk and make sure to exclude it from battery optimizations on newer Android versions.
  • Make sure your device has no pattern or PIN lock enabled.
  • Give permissions to your camera and to send notifications on Android 13+
  • Adjust your screen timeout to your liking under Settings → Display → Screen Timeout (e.g. 15seconds)
  • If needed; adjust sensitivity and latch time settings.
    Sensitivity dictates how sensitive the motion detection algorithm is while
    latch time will activate motion detection after a continuous length of motion.
    You can test your settings interactively in “Camera Preview” mode.

Yakk will show you a warning if it detects incorrect configurations or missing permissions.

Google Play Link

APK Direct Download Link

It’s completely free, no strings (or ads) attached. There’s also a website with more detailed installation and configuration instructions (see APK Direct Download Link, forum only allows 2 links per post)

If you encounter issues or need help or just have an idea how to make it better, send me an email to info[at]bkappz[dot]com

14 Likes

Great job! I would be really interested to try - what are the chances of getting this app on the Amazon App store? (for my Fire HD tablet)

Hey, I am using Yakk primarily on a set of FireHD8 2020 editions so the app itself is compatible with FireHD tablets.
Unfortunately I do not have access to Amazon’s App store at the moment. If you navigate to the Direct Download link using your tablet and click on the “Download Yakk” button you can download and install the APK directly to your device though. One downside though is that auto update will not work unfortunately.

2 Likes

Installed via the direct link. Works nicely on initial tries! Thank you.

@Balint133 - I waited longer, Fire tablet went into sleep, now it wakes up, but shows lock screen, which I need to swipe up. Is there a way to skip the lock screen and open HA right away?

Hey, could you drop me an email so I can help you troubleshoot this better? Swipe screen should be dismissed but I’d need to gather some more info about your device and your settings.
Make sure you have a green checkmark next to “Background Access”, not excluding the app from battery optimizations could cause the lock screen to get stuck.

The behaviour changed several times - I am sure I haven’t changed any settings meanwhile - the tablet has been lying on the table. Not sure what causes it.

  1. Tablet started to wake on motion, not showing the lock screen anymore - showing HA app - just as expected. But - the issue is that the tablet went into a state where Android navigation does not work: e.g. I cannot go back to the Home screen - swiping up does not bring out android “back / home / applications” buttons. Swiping down does not bring Android options. HA app is shown permanently without an obvious way to close it.

  2. I restart the tablet via Power button.

  3. After that it seems to work alright - just what I had right after the installation: display goes into sleep, motion wakes it up and HA App is displayed.

So I am not sure what triggered the behaviour I witnessed:

  • lock screen is shown after wake-up, which requires swiping up,
  • Android controls go missing, the only remedy is to restart via power button.

Sometimes a restart is the best remedy for everything :slight_smile:
I have had issues with the Amazon OTA updater that caused similar symptoms for me in the past (e.g. swipe or navigation not working, apps can not be opened until restarted). Unfortunately unless you completely airgap these devices (a.k.a. remove internet access altogether) the Amazon updater will do its own thing anytime it wants to.
Anyway, I’m glad that everything is working once again. If not feel free to reach out and I’m happy to assist.

1 Like

Hello @Balint133 and many thanks for your app, it’s working just fine!
I was wondering whether it could expose some entities in HA in order for example to record the video when nobody is at home but the tablet webcam spots a motion, just like a sort of “alarm” system with recording capabilities and then send a notification or trigger an action.
Do you think is doable??

EDIT: after 5 days I had to uninstall the app as the battery drained very fast. Without the app: standy time around 3-4 days
With tha app installed (no camera stream enabled): less than 1 day.

I have a quick question, does this enable me to use the camera in frigate somehow?
That would allow me to get rid of the android ip webcam app that is so nosey that it even asks for a stool sample

I am playing with it right now and dont get past:

2024-08-24 19:34:03.763153555  15:34:03.762 WRN [rtsp] error="streams: codecs not matched: MP4V-ES => H264, H265, AAC" stream=mjpeg_table_cam
2024-08-24 19:34:03.766628304  [2024-08-24 15:34:03] frigate.video                  ERROR   : table_cam: Unable to read frames from ffmpeg process.
2024-08-24 19:34:03.767262750  [2024-08-24 15:34:03] frigate.video                  ERROR   : table_cam: ffmpeg process is not running. exiting capture thread...```
The yaml go2rtc part looks like this
mjpeg_table_cam:
  - ffmpeg:"http://192.168.178.85:2112/stream#video=h264"

and the camera section like this

    ffmpeg:
      inputs:
# #      # High Resolution Stream
       - path: rtsp://127.0.0.1:8554/mjpeg_table_cam
         roles:
            - record
   #      # Low Resolution Stream
       - path: rtsp://127.0.0.1:8554/mjpeg_table_cam
         roles:
           - detect
    detect:
      width: 1080
      height: 720
      fps: 5

    objects:
       track:
         - person
       filters:
         person:
           min_area: 5000
           max_area: 100000
           threshold: 0.7

Nice work
But I tried on Android 7 but there don’t really wanna connect to the camera unfortunately
But the streaming is working
Thanks

Excellent app. works well on a 2021 FireHD10

Thank you for a really great app.
I installed it on my FireHD 2019, direct download. Some gymnastics was needed, because Silk browser didn’t want to open the .apk. Then I clicked ‘open in new tab.’ and it asked me if I want to download from untrusted yada yada.
The video stream works great.
The screen is turning on as expected.
The only thing I can not resolve is the FireHD lock screen. Whe the screen turns on, I have to slide up to get rid of the lock screen.
So I can’t get rid of FKB yet.
Or, do any of FireHD users have an idea how to get rid of the lock screen? I have already tried everything (fire tools etc.).

I got it working with friagte:

  table_cam:
    ffmpeg:
      input_args: -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -use_wallclock_as_timestamps 1
      output_args:
        record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v libx264 -an
#        rtmp: -c:v libx264 -an -f flv
      inputs:
        - path: http://192.168.178.85:2112/stream
          roles:
            - detect
            - record
1 Like

Hi Balint133,
Thank you very much for your application, it works perfectly on my Samsung tablet! I’ve also tried FullyKiosk, and yakk suits my needs better.
Can I suggest setting up a password or access key for the camera feed? It seems that the stream is open to everyone and that there is no privacy protection in this case (maybe I’m wrong?).

Thanks again for your very good app!

THANK YOU! I’ve tried Wallpanel and Fully Kiosk, and this is much closer to what I was looking for, this is awesome! :heart_eyes:

Another thx a lot for this awesome tool…
Runs great on my Lenovo Meeting screen…
But is there any way to rotate the picture?
The screen on the Lenovo shows it correct, but the stream is 90 degrees tilted…funny wise, it is following the tilt of the screen…so if i flip it to landscape (the device), it will also change the picture on the screen so that it is again 90 degrees off…

This app looks amazing and perfect for my use case as well – simple, and no fuss.

But I’d love for a way to get the Motion Detection status into HA. Right now I can only get the camera feed. And I’m trying Motioneye/Frigate to see if I can make it detect motion from there.

Having the app simply send the Motion Detection status to HA would be so much simpler and make this feature-complete I think. Thanks!

This is great, thanks!

This method solved the problem for me! Fire HD 10 11th Gen, Fire OS 7.3.2.6.

https://xdaforums.com/t/manual-method-to-disable-lock-screen.4368609/post-86027601

Summary in case the original gets lost:

Install “Activity Launcher” and use it to launch com.android.settings.password.ScreenLockSuggestionActivity. There, you can fully disable the screen lock. It’s persistent across reboots.

I prefer this over wallpanel, fully kiosk etc. - now if we could remove the battery, it would be perfect :wink:

1 Like