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!

  • SheeEttin@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    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.

    • csm10495OP
      link
      fedilink
      English
      arrow-up
      1
      ·
      11 months ago

      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!

      • csm10495OP
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 months ago

        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.

  • William@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    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.