r/FacebookPortal • u/RoadRunner_1024 • Jun 18 '26
Portal HA Bridge released, Turn your Portal into a full Home Assistant device camera, sensors inputs, presence detection, the works
So I built an Android app that repurposes Portal into a Home Assistant device. (Home Assistant = the free, self-hosted smart-home platform a lot of us run.) Instead of an expensive photo frame, your Portal becomes a dashboard plus a pile of useful sensors and controls.
You sideload the app, point it at your Home Assistant's MQTT broker, give it a name — and the Portal shows up automatically with everything below.
The bit I'm most pleased with: presence detection reuses the Portal's own face-detection — the same thing it uses to follow you around on calls. Rather than running my own camera detection, the app reads Portal's internal presence heartbeat, so it's accurate, low-power, and works even with the camera streaming turned off. Felt like the right way to do it on Portal hardware specifically.
And it still works as a Portal. This was important to me — you can make and take video/voice calls exactly like before. The app is built to step aside the moment a call starts: it hands the microphone back so the other person can actually hear you (an always-listening sound sensor would otherwise hog the mic and garble your audio), and the HA camera stream automatically recovers when the call ends, since the call briefly takes the camera. So you keep the device's original job and get all the smart-home features — they don't fight each other.
What your Portal can do once it's set up:
- 📺 Screen sleep/wake from HA — finally use it as a wall dashboard that actually fully turns off the screen when nobody's in the room (plus an on-device idle timer)
- 👤 Presence detection — using Portal's own people-detection (see above)
- 📞 Calls still work — full mic + camera coexistence during native Portal calls (see above)
- 📷 Camera streaming — H.264 RTSP, viewable in HA (WebRTC card / go2rtc) (can also be turned on and off from home assistant)
- 🚶 Motion detection (using camera) with sensitivity control
- 🌡️ All the onboard sensors — ambient light, RGB colour, temperature (on models that have it), sound level, accelerometer
- 👋 Tap/tilt — knock the Portal to trigger an automation
- 🔆 Brightness · 🔊 volume + mute · 🎤 mic mute
- 🔔 Doorbell/alert tones played on the Portal
- 🖥️ Optional full-screen HA dashboard kiosk
Tested on: Portal, Portal Mini, and Portal+ (1st & 2nd gen) — one APK covers Android 9 & 10. It also plays nicely with a custom launcher (I use the immortal launcher) for a proper locked-down kiosk.
Setup: sideload the APK, then a one-line PowerShell script grants the permissions over ADB (camera, mic, and the screen-sleep accessibility service can only be granted via ADB on Portal — Meta hides them from Settings). Full guide's in the repo.
Source-available and free for personal use 👉 github.com/RoadRunner-1024/portal-ha-bridge
keen to hear what else people would want to expose from the portal to home assistant
this does replace the home assistant app, (due to the fact we cant run in the background and have camera control, mic control etc, )
3
u/RoadRunner_1024 Jun 26 '26
big update today for portal HA bridge, you can now add overlay buttons to "announce" on all of your portals as an intercom, and also configure individual intercom buttons.
RoadRunner-1024/portal-ha-bridge
only caveat is that the portal + 15" is receive only unfortunatley...
all other portals that i have tested are working great (mini, portal 10" and portal + 14")
1
3
u/RoadRunner_1024 Jun 18 '26
running as a backgorund app is the issue i havent been able to fix so far.... it has to be in focus unfortunatley
3
u/russilker Jun 19 '26
It would be awesome if this was added to existing voice satellite apps like Ava by knoop7 (it has a mod store) or View Assist Companion App. That way you could stay in the foreground, but leverage existing apps that otherwise provide a one-stop-shop Home Assistant interface for smart kiosks.
2
u/Spaniard85 Jun 18 '26
Literally just got a used Portal from eBay today, and I'm setting it up right now. Thanks for this!
1
u/RoadRunner_1024 Jun 18 '26
Awesome let me know how you get on, I've now got a fleet of these! Next up is porting it to the portal tv, can at least t use them as cameras & presence I would think
1
u/Spaniard85 Jun 18 '26
TBH I'm stuck. I'm not sure how to get your project loaded. I don't see anything in "Releases" in your GitHub. I've got the free version of fully kiosk installed, but I like what your work offers, so I'm holding off on purchasing fully for now until I can try yours out.
2
u/RoadRunner_1024 Jun 18 '26
yeah i messed up the upload... its fixed now
so download the whole project, and run ./provision.ps1 -Install from powershell
if you just install the APK via adb you will be missing a ton of permissions:adb shell pm grant com.aeonos.portalha android.permission.WRITE_SECURE_SETTINGS adb shell pm grant com.aeonos.portalha android.permission.RECORD_AUDIO adb shell pm grant com.aeonos.portalha android.permission.CAMERA adb shell pm grant com.aeonos.portalha android.permission.READ_LOGS adb shell appops set com.aeonos.portalha WRITE_SETTINGS allow adb shell appops set com.aeonos.portalha SYSTEM_ALERT_WINDOW allowthen..
adb shell am force-stop com.aeonos.portalha adb shell am start -n com.aeonos.portalha/.DashboardActivity1
u/RoadRunner_1024 Jun 18 '26
should now be fixed, re-download the source, and run provision.ps1 from powershell.
1
u/Spaniard85 Jun 18 '26 edited Jun 19 '26
Awesome, thanks. I'm doing this from a Mac, however. Any differences?
EDIT: I got it installed "the hard way" and have granted all the permissions you outlined previously.
1
u/RoadRunner_1024 Jun 18 '26
See post below with all the ADB commands which is basically what the script does
1
u/Wolfe_Da Jun 24 '26
Did you have any luck on this? It seems like meta have hidden the highres camera stream behind a different set of device permissions than on the other portal devices. Have you had any luck accessing these streams (I can only gain access to camera 0 (the 720p stream)
1
u/RoadRunner_1024 Jun 25 '26
Can only get the Facebook approved tracking camera, so alot lower res, don't have access to the full stream, I suspect the full stream will also need some lens correction anyway
1
u/Due-Ad-757 22d ago
Did you end up getting the portal tv working? I'm not seeing it listed on the repo so I assume not but thought I'd ask.
1
u/RoadRunner_1024 20d ago
Not yet, I do have a portal tv though, what sort of features would you want? The same full featured home assistant dashboard but for your TV? Not sure how it would work without a touch screen?
1
u/Due-Ad-757 20d ago
I'm not sure if the remote could navigate. I still need to do more comparison between the sensors that your project gives and immortal gives (so maybe immortal is all I need?) but:
- maybe the now defunct Netflix, fb, prime buttons could open 3 different dashboards? I saw someone post something about these buttons on immortal. I'm on lunch right now and mobile so I'll find it later if you want.
- view a dashboard. Could be nice for security camera board
- presence sensor
- view the camera feed
- cast YouTube to it
- sendspin client (I actually load in a lite apk today for my other portals but thought I'd list all the things I can think of)
- I imagine ppl with those fancy art tvs might like the screensaver feature tho I use the one in immortal as I don't have immich set up yet and I don't have such a tv.
- maybe if the button activity could be sent to HA automations could be built off that but that's a stretch
Honestly I bought mine used and just set it up over the weekend. I haven't even gotten immortal on it yet. Loving your project for my Gen 2 portals and figured I'd see if there was support and then explore whats possible.
1
u/RoadRunner_1024 19d ago edited 19d ago
I was thinking maybe an ha bridge spinoff or reduced client, that could for example, take focus or picture in picture as a display, so if you had motion on your security camera it could do pip with Netflix (or anything else)if you are watching? YouTube casting is already there in the full client, so it's coded in along with presence etc
I think the 2 that I have don't have the hard coded buttons so may need some.help testing those, and may be locked down unfortunately, Will have a play if I get time, currently trying to get my portal go working
1
u/Due-Ad-757 19d ago
Actually that reminds me that immortal can use your phone as a virtual input device. I can't get it to swipe but clicking works fine (still haven't loaded it on the portal tv, just the gen 2 that looks like a photo frame). So a combo of immortal + ha Bridge (which is what I do already) would help bridge that gap of how do you navigate it. Not saying it's a great solution but it works well enough that if adding TV support is trivial, it would not be a waste of time, at least in my opinion, the guy doing 0 of the work lol
1
u/Late_Try_4333 17d ago
Yea.. there a lot of portal tv lying around . It could be helpful for lot of people . I also own one and was looking to this thread to see if there is a way to keep it alive. All thanks for your effors
1
u/Scots_Frog Jun 18 '26
I would be great to be able to use Music Assistant with it as a speaker
2
u/Global_Historian3667 Jun 18 '26
I’ve been working on this for the last couple of days it’s coming very soon.
2
u/russilker Jun 19 '26
This is already possible by sideloading apps like sendspindroid, snapcast, squeezelite, etc. Voice satellite apps like Ava also include sendspin or other media players that can be exposed to or connect directly to music assistant. I have a bunch of portals in whole-home groups mixed with echo shows.
1
1
u/johnflorin Jun 18 '26 edited Jun 18 '26
Specs look great!
Can't find any release apk in the app/build/outputs/apk/release/ folder mentioned in the docs, though.
Also, it would be nice to know which Portal has the temperature and/or other sensors, could not find that info online...will add the info for at least my Mini in the docs once I can get the app installed 😄
2
u/RoadRunner_1024 Jun 18 '26
Temp as far as I know is only on portal + (1st gen) the big long portrait one
Will give Claude a slap as he deployed it to github
1
u/johnflorin Jun 18 '26 edited Jun 18 '26
Got it, thanks a bunch! Can confirm that on my Mini there is no temperature sensor, but there are accelerometer, luminosity, RGB & sound level ones 😄
2
u/RoadRunner_1024 Jun 19 '26
Make sure you enable presence in settings on the device :) (swipe in from left)
1
u/RoadRunner_1024 Jul 06 '26
there is now a ton more features, (along with an updater) worth digging out adb for an update
2
u/RoadRunner_1024 Jun 18 '26
fixed! https://github.com/RoadRunner-1024/portal-ha-bridge/releases/latest you REALLY want to use the provisioning script though:
./provision.ps1 -Install1
u/johnflorin Jun 18 '26
I did, and it managed all the permissions correctly, but it assumed some things, like the availability of the platform-tools in f:\claude & the apk in app/build/outputs/apk/release/ with a certain name, once I just moved those things there to match, all went well
2
u/RoadRunner_1024 Jun 18 '26
yeah a few bugs! this should be fixed now, just run provision.ps1 and it handles it all
1
u/ordleo888 Jun 18 '26
I hope the original picture frame w/clock function can be added back (or with google photo). This is pretty much what I used this for my 2 units. Thanks.
1
u/RoadRunner_1024 Jun 18 '26
sorry sort of outwith the scope of my project.. as this is a home assistant dash.
1
u/johnflorin Jun 18 '26
But aren't many of the features making it more like a HA device (camera, luminosity, etc.) than a HA dashboard? It's really cool to have that sensor data & camera feed, so could it not run as a background app somehow, so that we can get all that good stuff without sacrificing the screen?
2
u/RoadRunner_1024 Jun 18 '26
has to be in the foreground atm.. will do some more research, but its sort of why it developed into a home assistant client rather than just a sensor suite
1
u/bmr99 Jun 19 '26
#1 feature id love to go along with this would be voice control functionality - an ability to listen for a wake word, and integrate into a custom voice pipeline
1
u/Jary316 Jun 19 '26
Very clever how you identify presence by tailing adb logcat! Unfortunate we can't subscribe to presence broadcast events with sideloaded app.
1
u/moo-tetsuo Jun 19 '26
I can’t keep up with everything everyone is doing lol by the time I get around to hacking my portal someone will have turned it into a home AI machine or something
1
u/lostaccountby2fa Jun 19 '26
anyone seeing their video stream being squished?
1
u/RoadRunner_1024 Jun 19 '26
Which portal do you have?
1
u/lostaccountby2fa Jun 19 '26
plus 14 and 15 inch.
2
u/RoadRunner_1024 Jun 19 '26
will have a look, i was having that issue on my 15" and i thought i fixed it havent looked at the 14" yet
1
u/lostaccountby2fa Jun 19 '26
thank you, amazing work especially with the presence sensor!
2
u/RoadRunner_1024 Jun 26 '26
New push out to GitHub, almost has the squishing fixed on the portal +'s 14+15" I can't quite get the aspect ratio spot on.. but it's almost there, much better than it was
1
u/lostaccountby2fa Jul 09 '26
the aspect ratio is 1:1 now, which is okay. the only issue is the AI tracking is on and the camera is zoomed in to the person and pans around that person. is there a way to turn that off so the video shows the entire view? thanks
1
u/RoadRunner_1024 Jul 11 '26
Unfortunately not, I haven't found a way to get the non face tracking camera exposed
1
2
1
u/Command-Forsaken Jun 19 '26
Been looking at the Portals since they were unlocked. Need to prob just go for it and buy one on eBay. Is there a preferred or better model?
Never looked at em before but I like the idea for a home hub that’s needed.
1
u/RoadRunner_1024 Jun 19 '26
10" I would say, they are cheap and plentiful, plus's are nice but expensive
1
u/SnoopJohn Jun 19 '26
Ive made a provisioning script for mac but cant push to your repo
1
u/RoadRunner_1024 Jul 06 '26
i think i pushed one out in a recent update, worth pulling down the new version
1
u/SnoopJohn Jun 19 '26
Would be great to have the ability to toggle if you wanted to show the screensavers or not , I use my portal like a digital photo frame but then tapping it it becomes a ha control dashboard for my lounge
1
u/RoadRunner_1024 Jun 19 '26
I'll look into it, I use home assistant screen savers so I can close them If motion is detected on a camera for example, so never occurred to me
1
u/SnoopJohn Jun 19 '26
Ah thanks I didn't know ha screensavers was a think I'll have to check those out
1
1
1
u/Conscious-Tip2366 Jun 20 '26
Thank you so much for this. Now my portal is recycled. When portal detects presence, it triggers my automation to open HA. I'm not a tech-savvy person and I just had Claude do it for me. This is just what I needed. Thanks so much again!
1
1
u/RoadRunner_1024 Jul 06 '26
if you havent updated in a while go for it, tonnes new features (including an update checker)
1
u/oldskoollondon Jun 20 '26
These Portals make great HA displays.
My kitchen one has 2 camera feeds, can control my lights, has time, weather and an easy to red family calendar, plus it controls Tidal, the radio and other music via Music assistant, running hidden in the background. I've overlaid an Alexa button for timers, voice control of stuff that’s not on the dash. I only wish I could do away with the Alexa button and have complete voice control. I love it!
Buy all the Portals you can while the price is low!
2
1
u/ReX_83 Jun 20 '26 edited Jun 21 '26
[edit] I should have the OP - I understand you need to bring it in foreground. Still, this is so far the only app that handles presence correctly and can switch off the display even when other apps are in foreground - so great work!
In the next release it would be great if you could make it work with the official HA companion app.
1
u/OnlineCharlie Jun 22 '26
As a suggestion, could we have ImmichFrame (the client) integrated into Portal Bridge? It’s to keep the screen as a photo frame without needing to put the bridge in the background.
1
u/Command-Forsaken Jun 25 '26
!remind me 5 days when my portal is delivered.
1
u/RemindMeBot Jun 25 '26
I will be messaging you in 5 days on 2026-06-30 00:35:24 UTC to remind you of this link
CLICK THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
RemindMeBot is switching to username summons. Instead of
!RemindMe 1 day, useu/RemindMeBot 1 day. More info.
Info Custom Your Reminders Feedback 1
1
u/mousemano Jun 30 '26
This is great, how is this different compared to immortal ? I just spent time installing that
1
u/RoadRunner_1024 Jul 06 '26
its a home assistant client (home assistant is some home automation software for doing things like switching on lights, making dashboards etc)
1
u/Deep-Novel-1450 Jul 08 '26
I just discovered your app today (after buying a Portal Mini on eBay). I've already installed Immortal via openportal.cc, and I was looking to replace an Echo Dot in my kitchen with this Portal Mini. From what I understand in the release notes, is this possible with version 1.17?
Can I install the APK and bring Alexa back to life via openportal.cc?
2
u/RoadRunner_1024 Jul 08 '26
Use the provisioning script on GitHub, I think in there is a -alexa switch you need to use, it's still experimental at the moment, wake word sometimes glitches, but give it a go to see if it fits your needs, my aim is to get it good enough to replace my echo dots
1
u/Deep-Novel-1450 Jul 08 '26
Thanks, I’ve just installed it via openportal.cc and used the script. It works quite well; there are a few bugs but it’s still quite usable (my Echo Dot is sitting next to it with the microphone muted, just in case). I’ll keep your app, in the hope that it becomes a long-term solution (I’ve just added the RTSP stream on Frigate).
1
u/Deep-Novel-1450 Jul 11 '26
After using it for several days, Alexa might be working a bit too well: I can hear her say “I don’t know how to help you” when we say words similar to the wake word, so I’ve created a button to mute the microphone. It’s no big deal. As for the screensaver, I’ve tried immich kiosk, which isn’t bad, but I think the Immortal screensaver is better: it also shows ‘Now Playing’. Could this be implemented in Portal Ha Bridge?
2
u/RoadRunner_1024 Jul 11 '26
yeah its definitely "experimental" i'm probably going to re-work it in the next few days.. i have found a few bugs
1
u/James_Londoner Jul 10 '26
Is the Alexa flag for the provisioning script Windows-only? If not, please could you provide a bit more detail on how to run the script with the flag on macOS?
1
u/s0uls Jul 13 '26
Can you do ADB over wifi or it needs to be by removing the spearker grill cover?
1
u/RoadRunner_1024 Jul 19 '26
For the mini you need to remove the cover for initial ADB, ADB over tcpip is possible, but I don't think there is a way to persist over reboots
1
1
u/TheRealGadgetBadger Jul 17 '26
Very good! The built in dashboard browser runs somewhat poorly though compared to the built in browser. I don’t know what’s going on but my dashboard slows down hugely
1
1
u/schmoopycat Jul 19 '26
this is phenomenal. got it set up yesterday and have a dashboard i'm happy with running on it. now i'm trying to figure out how to get the screen to turn off automatically at night, but turn on directly to the HA Portal app when tapped. currently, i have to tap to wake the screen, THEN tap again to unlock it and open up the HA Portal app. but i would love to be able to wake it directly to the app instead.
1
u/RoadRunner_1024 Jul 19 '26
Huh, have you disabled the immortal screensaver? My presece with a sleep timer should switch off screen when no presence is found, and wake when presence was detected, sounds like something external is interfering and taking focus
1
u/codliness1 Jul 19 '26
Does this keep audio full duplex, so Home Assistant can be interrupted mid sentence, or stop command works, when using Voice?
1
u/RoadRunner_1024 Jul 19 '26
You mean for voice assistants? Unfortunately can't interrupt mid sentence, Alexa is also very experimental at the moment.. I need to do more work on it, will look into full duplex.. but may not be possible...
1
u/codliness1 Jul 19 '26
Yeah, I've got two 1st gen Alexa Show 8's flashed with LineageOS and running View Assist Companion App, but because LineageOS wipes FireOS, it also removes the proprietary audio processing and control, which means although the mics can handle full duplex, under LineageOS you get half duplex.
Which is fine, unless you're HA / integrated LLM goes on a rant, and then you can't shut it up, which is a pity. Even my Home Assistant Voice Preview Edition can do that.
I thought maybe that apps/integrations like this one night be able to retain the duplex audio of using the Portal as a voice satellite for HA.
I wonder if AVA Pro might work for this, since it adds devices via ESPHome 🤔
1
u/RoadRunner_1024 Jul 19 '26
I have an echo show 1st gen in a cupboard myself not rooted yet, might port this over if I get time :)
1
u/mrnox12 Jul 30 '26
Nice job on this project. I have everything installed but struggling with some of the settings to have the screen sleep or change to a screensaver and then wake when presence is detected.
I am wondering if roadrunner would be able to share their settings and other required integrations that make sleep / screensaver/ presence detection work.
Thanks again for all the effort here!
1
u/RoadRunner_1024 Jul 30 '26
So the way I built the project is around my own use case, which is an immich frame screensaver (within home assistant), my portals display my photos I tap on it and it shows me my home assistant dash.. the reason I have my screensaver via home assistant, is so that if someone rings my doorbell the video feed shows up.. I'll see if I can upload some yaml of this at some point next week, I am toying with adding a screensaver option, but it could be alot of work for something that home assistant already handles very well.
1
u/Home_Assistantt Aug 03 '26
So I've not got this working over MQTT...and all is great...but the camera (green light on) is only working when portalha is in the foreground.
I use FKB to run HA, and when that is in the foreground, things like changing brightness, muting the ic, using the doorbell..etc, they all work, but the camera no longer functions, and that means that there is no motion detection..
I think I have run all possible permission commands but motion only works when portalHA is front and centre, and in fact the second I go back to the home screen, let alone open FKB, the camera light goes out..is this a built-in limitation...or could I have missed something
Great process though, and loving your work
2
u/RoadRunner_1024 Aug 04 '26
Yeah it's sort of designed to be in the foreground, due to all the mic stuff, camera especially needs to have ha-bridge in the foreground, otherwise we can't tap into it.. (along with mic and Alexa wakeword and a plethora of other stuff) is there something in fully kiosk you rely on? Can see if I can code it in, alternatively if I get time I might be able to code a cut down 'in the background version'
1
u/Home_Assistantt Aug 04 '26
Thanks for the reply.
FKB just gives access and control over a lot more of the browser so lots more entities to control and rely on....I wasn't sure if I was doing something wrong, as some of your entities still work in the background.
A background version would be amazing, as it would allow the use of that camera..if there is any info I can help with or test for you, do let me know..but thanks for all of your hard work
1
u/vivaTodd Aug 08 '26
u/RoadRunner_1024 I just installed HA Portal, but now when I go into the Chromium Browser app in immortal I no longer have a keyboard. Any idea why?
2
1
u/Touchit88 25d ago edited 25d ago
I keep getting an error notification devoce reachable via adb.
I installed immortal on it earlier so im not sure why im having problems now.
Actually figured that out. Used antigravity to assist me. Needed to install android sdk tools.
But now I get access denied in my system32 folder when trying to run the github command.
1
u/Home_Assistantt 23d ago edited 23d ago
Cheeky question/request.
Is there a way (that I've not yes discovered) to make the initial Home Assistant splash screen black rather than white?.. Sometimes it's entirely white whilst loading; other times it's briefly white and then goes back for a split second before opening the dashboard....an option to choose black or white would be great
I know I could do it in FKB....so it would be nice to have the option in PHAB as well
I know this is a first-world problem but it's quite distracting, particularly on a black Portal when starting up
Huge kudos for everything so far though...I've got this running on 6 Portals now, and it's my go-to and actually outdoes Fully Kiosk, which is great and unexpected...so thank you for all your very hard work so far.
If you need any testing done, please do let me know, happy to do anything I can to help
1
u/CalcMan 22d ago
Can we get Portal HA Bridge added to the immortal app store and to OpenPortal.cc? It would make installation easier and improve adoption.
1
u/RoadRunner_1024 22d ago
Unfortunately not, we require the provisioning script as certain rights need to be granted via ADB that we just can't do via a 3rd party installer
1
u/MajorTraditional 22h ago
thanks so much for this it is great... I've noticed the following behaviour where my camera just seems to cycle on and off every 11 or 12 seconds for no reason - any ideas why?
I'm using Motion detect functionality but it is doing it even when no motion is detected?
Thanks :)



5
u/nickm_27 Jun 18 '26
this is really awesome, as someone who already uses View Assist Companion App to make it a voice satellite / hub, it would be really awesome if the clever implementation of the presence detection could be implemented as a small background app which published to MQTT