Skip to content

simple app to repurpose old android device as internal system monitors, and display a nice background or video

License

Notifications You must be signed in to change notification settings

eamanola/systemmonitor

Repository files navigation

System monitor

This is an app to repurpose old android/ios devices as internal system monitor.

Features:

  • selecting an image, or video background

  • setting server (your pc) address

  • setting poll interval

  • displaying cpu, and gpu

    • temperture

    • usage

    • name

    • and fan speed

  • displaying gpu:

    • memory usage
  • displaying other fans

    • speed

road map

  • websocket connection / remote settings control

  • theme support

backend

  • general linux backend (fan mapping & naming)

  • sample implementation for ati gpu

  • general windows backend

help wanted

  • general dev fun

  • testing / dev on ios

  • testing / dev on windows

  • testing / dev ati gpu on linux

  • UI / UX elements

  • creating themes

backend

In addition a data-provider is required to run on the pc.

A sample implementation and starting point, for a linux machine, with nvidia gpu, can be found here:

https://github.com/eamanola/sensors-server

backend-reqs

/health

  • status: 200
  • Content-type: "text/plain"
  • body: "OK"

/sensors

  • status: 200
  • Content-type, "application/json"
  • body:
{
    cpu: {
        name: string,
        fanspeed: { value: number, unit: string },
        temperture: { value: number, unit: string },
        utilization: { value: number(in percent 0-100), unit: '%' },
    },
    gpu: {
        name: string,
        fanspeed: { value: number, unit: string },
        temperture: { value: number, unit: string },
        utilization: { value: number(in percent 0-100), unit: '%' },
        memory: { value: number(in percent 0-100), unit: '%' },
    },
    fans: [
        { name: string, speed: { value: number, unit: string } },
        ...
    ]
}

adb

As the device will be behind a glass, no touch available, it is recommended to use adb for interaction (ios equialent?).

sensors-server/adb contains some useful commands for interacting with the phone, eg sleep / wakeup / and unlock, over usb.

Development & building

This is a vanilla react-native, with all ts stripped out. please see below, and refer to react-native sources for more info on howtos.

React-native

This is a new React Native project, bootstrapped using @react-native-community/cli.

Getting Started

Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.

Step 1: Start the Metro Server

First, you will need to start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

# using npm
npm start

# OR using Yarn
yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

# using npm
npm run android

# OR using Yarn
yarn android

For iOS

# using npm
npm run ios

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Step 3: Modifying your App

Now that you have successfully run the app, let's modify it.

  1. Open App.tsx in your text editor of choice and edit some lines.

  2. For Android: Press the R key twice or select "Reload" from the Developer Menu (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes!

    For iOS: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes!

Congratulations! 🎉

You've successfully run and modified your React Native App. 🥳

Now what?

Troubleshooting

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources:

About

simple app to repurpose old android device as internal system monitors, and display a nice background or video

Resources

License

Stars

Watchers

Forks

Packages

No packages published