QUESTION

Run ModBros on Pi (Ubuntu 18.04) and Win 10 completely headless without wifi

4 people are following

I have a setup that is currently using the PCHWRM_Client/Server combination; but modifying per SBC that runs the Win 10 system is painful (at best). ModBros looks great, but I want this to be completely headless.

Currently:

Both RPi and Win10 connect to each other

RPi has a crontab with 15 second startup delay to wait for network stack initialization and then runs PCHWRM_Server listening for connections

Win10 runs PCHWRM_Client statically configured to RPi IP after 20 second startup delay

Win10 primary GbE adapter goes to uplink port towards firewall with internet access

Win10 secondary GbE adapter configured with /30 directly to RPi (no conflicts)

WiFi disabled on both devices.

 

Can ModBros work in this scenario?

Replies 1 - 20 (21)

Hi @AeaRy 

If i understand your situation correctly, then yes it should work.
If you're using our custom Raspberry Pi image with your Pi connected by Ethernet the whole thing should pretty much just work out of the box with no configuration needed.

Just make sure that your PC has the MoBro application running and port 42100 on your PC is accessible via network from the Pi.

If you don't want to use our custom image you can also configure everything by yourself as described here.

No, the Pi4 runs Ubuntu Server ARM64-bit 18.04 so that RocketChat-Server can be run as well

Also, please note as since this is running on Server…there is no desktop environment or web-browser

Then I'm afraid i don't really get your current setup.

So you are running a headless Ubuntu Server ARM64-bit 18.04 on your Pi.
And now you want to use MoBro to display the stats of your Win 10 PC on this Pi, right?

But this requires a display connected to the Pi, as i don't get how you would otherwise display the stats.
Or how did you do this previously with PCHWRM?

PCHWRM runs a Java JAR file that utilizes the underlying architecture to present a GUI for its gauges (and only that). Once the Java process is killed, the display goes directly back to the terminal/command line prompt. So the Win10 server is headless and the Pi does have a display attached, but not a desktop environment

Ok, so let's say I connect a keyboard and use links2 compiled with X for initial setup. Would there be a way to automatically run ModBros on startup to establish the connection with no further user input?

Alright, I think i got it now.

But I think you won't be able to use our solution in this case.
You could get the Pi side to work by just installing a lightweight window manager such as matchbox. Then you could start a browser without having to install a complete desktop environment

But if your Win10 server you want to monitor is headless you won't be able to install the desktop application which you would need.

We didn't consider such setups at all when designing the whole application as our main focus is to monitor desktop PCs.

I can install anything on the Win10 Server via either Group Policy or RDP. Remote connectivity is there even though it is headless

Well, if you can do that, it might be possible.

First you would need to install the MoBro desktop app on your Win10 server.
(Note though that we have never tested the application on Win10 server, so it's not guaranteed to run)

As you don't want to use our custom image on the Pi you would need to manage the Pi side by yourself.
The easiest way I can think of right now would be to first install X, matchbox-window-manager and chromium.
Then you could adapt your existing crontab script to start x and open chromium in kiosk mode.

Just use the url as described here with your Win10 servers IP (which i presume is static).

So I have the basics working; but I cant get any info from HWInfo (even though HWInfo64 is installed)…it says that it needs to be downloaded. Will this only work with 32 bit? Also, not getting any information from the Intel Iris Graphics…

Also, I see no gauges…only the completely basic display…

On Win10Ent:

This image has been removed by an admin

On Pi:

This image has been removed by an admin

Ok, so I got basic gauges working but it's not showing good values even when modifying json for dubbadhar theme.

I have a basic render of what I am looking for, but my local current.json file values aren't recognized in any theme.

This link has been removed by an admin

This image has been removed by an admin

@AeaRy the links that you have posted have been reported as inappropriate and after checking have been removed because they did not work and the domain name was inappropriate. Please upload images to a trusted source like Imgur, Dropbox, ImgBB. For posting text you can use pastebin.

Basically, here is a render of what I am trying to do:

https://aeary.net/modbros/

Autostart is up and running but gauges aren't displaying any useful info using any theme including dubbadhar

@AeaRy 
Are you sure your server is reachable from public?

Because none of us is able to open the link you posted.

Thats extremely strange since that server is hosted in a datacenter and has wide open access. I also checked global DNS propagation, and the correct records are responding. Weird…anyway…

JSON: https://drive.google.com/open?id=14MrHFsAhjyFcA6JAakUEMIVwCZ8grI6Q

[
  {
    "default": true,
    "name": "general_processor_usage",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Processor",
      "sensortype": "Usage",
      "regex": {
        "match": ".*(CPU|Tot).*(CPU|Tot).*",
        "flag": "i"
      }
    },
    "_id": "456cae45fae54af185875a4276f3a017"
  },
  {
    "default": true,
    "name": "general_processor_temperature",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Processor",
      "sensortype": "Temperature",
      "regex": {
        "match": ".*(CPU Pack|CPU.*Tdie).*",
        "flag": "i"
      }
    },
    "_id": "1b0059e6fd1b40f39fec2f7932383c3d"
  },
  {
    "default": true,
    "name": "general_graphics_usage",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Graphics",
      "sensortype": "Usage",
      "regex": {
        "match": ".*(GPU|Core|GPU Utilization).*(GPU|Core).*",
        "flag": "i"
      }
    },
    "_id": "973b5e971c7c4deabaee9a5a06243a1c"
  },
  {
    "default": true,
    "name": "general_graphics_temperature",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Graphics",
      "sensortype": "Temperature",
      "regex": {
        "match": ".*(GPU|Core|Temperature).*(GPU|Core|Temperature|Diode).*",
        "flag": "i"
      }
    },
    "_id": "49d9e7f3c1344aa48b5e8528cc59d938"
  },
  {
    "default": true,
    "name": "general_memory_usage",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Memory",
      "sensortype": "Usage",
      "regex": {
        "match": "^(Memory|Phys.*Load)$",
        "flag": "i"
      }
    },
    "_id": "09752510a1334d279c9619f67bfc945d"
  },
  {
    "default": true,
    "name": "general_memory_used",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Memory",
      "sensortype": "Data",
      "regex": {
        "match": "^(Memory Used|Phys.*Used)$",
        "flag": "i"
      }
    },
    "_id": "ac1219cb2702495883690fed5e48d23b"
  },
  {
    "default": true,
    "name": "general_memory_available",
    "sources": "all",
    "extractor": "Regex",
    "extractorConfig": {
      "hardwaretype": "Memory",
      "sensortype": "Data",
      "regex": {
        "match": "^(Memory Available|Phys.*Available)$",
        "flag": "i"
      }
    },
    "_id": "0fd5daacf18d4c3ead569b5922a2233a"
  },
  {
    "default": false,
    "sources": [
      "openhardwaremonitor"
    ],
    "name": "custom_storage_usage_2myq92kokabmt2s9",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Storage",
      "sensortype": "Usage",
      "id": "/hdd/0/load/0"
    },
    "_id": "925b2dc783ec4ede92368d9e3a007a9f"
  },
  {
    "default": false,
    "sources": [
      "librehardwaremonitor"
    ],
    "name": "custom_network_usage_2myq92kokabmtzd2",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Network",
      "sensortype": "Usage",
      "id": "/nic/{74664B2C-E949-4C92-9F8E-8E02A72B6636}/load/1"
    },
    "_id": "28c604966da24871b58518e148bdc379"
  },
  {
    "default": false,
    "sources": [
      "librehardwaremonitor"
    ],
    "name": "custom_network_bitrate_2myq92kokabmuf07",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Network",
      "sensortype": "Bitrate",
      "id": "/nic/{74664B2C-E949-4C92-9F8E-8E02A72B6636}/throughput/7"
    },
    "_id": "1299646f1b0942e1b6c3010be5ece26e"
  },
  {
    "default": false,
    "sources": [
      "librehardwaremonitor"
    ],
    "name": "custom_network_bitrate_2myq92kokabmvr0o",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Network",
      "sensortype": "Bitrate",
      "id": "/nic/{74664B2C-E949-4C92-9F8E-8E02A72B6636}/throughput/8"
    },
    "_id": "99e7e79758dd49ad9784bd3dd93856ed"
  },
  {
    "default": false,
    "sources": [
      "openhardwaremonitor"
    ],
    "name": "custom_processor_usage_2myq95n8kabq44ip",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Processor",
      "sensortype": "Usage",
      "id": "/intelcpu/0/load/0"
    },
    "_id": "13ca2741a0494629af167952cbeaff32"
  },
  {
    "default": false,
    "sources": [
      "openhardwaremonitor"
    ],
    "name": "custom_processor_usage_2myq95n8kabq4am5",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Processor",
      "sensortype": "Usage",
      "id": "/intelcpu/0/load/0"
    },
    "_id": "4bfff5f5424a4dc1b9f0595dc9b9a536"
  },
  {
    "default": false,
    "sources": [
      "hwinfo"
    ],
    "name": "custom_misc_fan_2myq95n8kabq546y",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Misc",
      "sensortype": "Fan",
      "id": "11"
    },
    "_id": "a1381e0b476e4bd991580d3a3609c588"
  },
  {
    "default": false,
    "sources": [
      "hwinfo"
    ],
    "name": "custom_misc_fan_2myq95n8kabq5rzu",
    "extractor": "Id",
    "extractorConfig": {
      "hardwaretype": "Misc",
      "sensortype": "Fan",
      "id": "11"
    },
    "_id": "08a33451f7204ae7ab92da36340eff72"
  }
]

Render: https://drive.google.com/open?id=1GM4ZlbiHV4jpoU1LsOcWTklrPhE49wCE

a17a82ff-33e9-4755-b068-001bdbde8245.ee851716.png

Hey @AeaRy,

I think i got the gist of what you are trying to do. For certain things you might be able to get the data that you want on your RPi using the dubbadhar theme. You can use the theme-config.json file from the dubbadhar theme https://github.com/ModBros/mobro-theme-dubbadhar/blob/master/theme-config.json and adapt the channels by changing the includes values for the “byLabel” extractor to the labels of the data that you want to display.  

It will be necessary I think to even add new channels and listen for their values like here https://github.com/ModBros/mobro-theme-dubbadhar/blob/master/src/js/script.js#L149 and adapt the source code of the dubbadhar theme to get what you want.

For that you will have to install npm and node and compile the theme using webpack with the command “npm run build”.

If you want to find out which values you can extract check out our blog post here: https://www.mod-bros.com/en/blog/b/configure-themes~916

~ Dave

@Dave think you could shoot me an email?

@AeaRy you can always send a mail to info@mod-bros.com, but I would prefer to stick to the forum so other people might benefit from the communication here.

Well my question was how much of a donation would be needed to have a theme generator created or a custom theme made

I am more than willing to do the coding, but that would turn this project from done this week into back burner until time is made for diving in

Login to comment

Login
Like most websites, we also use cookies. But don't worry, we only use them for your login and statistics.