Hey folks,
Does anyone know of an app (FOSS or otherwise) that has a built-in REST-server to get current device info?
I’d like to be able to hit the API from within my local network to get info including:
- Free space vs used space
- Battery percentage
Why?
I have an old Android device that sits in the closet as a Syncthing node. It does some other random stuff too. I don’t really want to have to get up and look at it to find out certain information. I already have a VNC server running on it. I even have a (sketchy) SSH server on it that I currently call df -h
on to programmatically get free space info. The SSH server has some weirdness where it seems to stop working after some time, among other oddities. Also it can’t get battery level afaict.
I imagine this is possible using ADB, but I don’t really want to have to always leave the device in wireless ADB mode or manually put it in that mode each time; unless that is easier than I think.
Thanks!
You can enable permanent adb in the developer options. I forget what it’s called. And you need to check the remember box when allowing the connection.
I’m giving this a try. If it can remember the server that talks to it and does not need a re-pair each time, this might be ok.
At first I tried adb_shell with Python and found it didn’t seem to be able to pair or connect over wifi. So I fell back to creatively shelling out to the adb cli. So far so good.
Thanks for the suggestion!
Unfortunately this doesn’t work well. You can enable wireless debugging, but it’ll get disabled if the wifi disconnects/reconnects… ever more annoying is that it’ll come back up with a new port making automation basically impossible here.
Still on the hunt for something better.
I looked into this, and it turned out to be a lot harder to do than I expected. I thought it should be pretty easy to stand up a simple web server and reply with that info, but … No.
I think if this were my project, I would instead make an app that always runs in the background and updates an MQTT server periodically, and I’d have my other system check that server instead. Alternatively, that app could just hit a web endpoint somewhere and POST the data to it, and that server could do whatever you want.
But as far as existing apps, I don’t see anything that does what you want.
Maybe tasker can do something like this. In theory I could tell tasker to POST every 5 minutes or so, then use that data… hmm I guess this is the next thing to try. Thanks!
Edit. Just found this gem: https://www.reddit.com/r/tasker/comments/13i9p3l/dev_tasker_62_beta_were_back_in_business_i_can/
I think this would do exactly what I want! Will give it a whirl in the coming days.