Показание загрузки CPU сервера в приложении Blynk

Есть локальный сервер, так как помимо сервера Blynk установлено еще несколько серверов нужно знать загруженность CPU в реальном времени, подскажите пожалуйста как можно вывести значение загруженности CPU в приложении на телефоне?

Ставите джс библиотеку - https://github.com/vshymanskyy/blynk-library-js. Пишите немного кода вроде

var Blynk = require('blynk-library');
var AUTH = 'YOUR_AUTH_TOKEN';
var blynk = new Blynk.Blynk(AUTH);
var v1 = new blynk.VirtualPin(1);

var os = require('os');
v1.write(os.cpus());
2 Likes

Прошу прощения. Случайно наткнулся на ветку ища ответы на свои вопросы. Вот такой код с Вашим примером не работает:

var Blynk = require('blynk-library');
var AUTH = '5SKk7B0sB0kbpockLE6-I2Y2NvF0UQTu';
var blynk = new Blynk.Blynk(AUTH, options = {
  connector : new Blynk.TcpClient( options = { addr:"192.168.1.75", port:8080 } )
});

var exec = require('child_process').exec, child;
var v1 = new blynk.VirtualPin(1);
var v2 = new blynk.VirtualPin(2);
var v3 = new blynk.VirtualPin(3);
var v4 = new blynk.VirtualPin(4);
var v5 = new blynk.VirtualPin(5);
var v6 = new blynk.VirtualPin(6);
var v7 = new blynk.VirtualPin(7);
var v8 = new blynk.VirtualPin(8);
var z = 0;

var os = require('os');
v5.write(os.homedir());

Виджет Value Display дает NaN
Пришел я к этому примеру потому, что пробовал вот такой метод:

    var Blynk = require('blynk-library');
    var AUTH = '5SKk7B0sB0kbpockLE6-I2Y2NvF0UQTu';
    var blynk = new Blynk.Blynk(AUTH, options = {
      connector : new Blynk.TcpClient( options = { addr:"127.0.0.1", port:8080 } )
    });

    var exec = require('child_process').exec, child;
    var v1 = new blynk.VirtualPin(1);
    var v2 = new blynk.VirtualPin(2);
    var term = new blynk.WidgetTerminal(3);
    var v4 = new blynk.VirtualPin(4);
    var v5 = new blynk.VirtualPin(5);
    var v6 = new blynk.VirtualPin(6);
    var v7 = new blynk.VirtualPin(7);
    var v8 = new blynk.VirtualPin(8);
    var z = 0;

Это работает и выводит температуру в Виджет

v4.on('read', function(param) {
        child = exec('vcgencmd measure_temp',
    	function (error, stdout, stderr) {
            var str = stdout;
    	var num = parseInt(str.match(/\d+/));
    	v4.write(num);
        }); 
    });

А это уже не работает так же дает NaN хотя в командной строке
выводит скорость процессора

v5.on('read', function(param) {
        child = exec('inxi -F | grep "Speed:" | awk "{print $2;}"',
	function (error, stdout, stderr) {
        var str = stdout;
	v5.write(str);
	var os = require('os');
	term.write(os.cpus());
   });
});

Понимаю Вашу загруженность. Но может выскажете экспертное мнение. Я просто убился с Linux, поэтому решил написать.

@alfed please edit your post (using the pencil icon at the bottom) and add triple backticks at the beginning and end of your code so that it displays correctly,
Triple backticks look like this:
```

Pete.

Thanks. I will try

I think that’s right now

No, because you didn’t use triple backticks.
If you can’t find the character on your keyboard then copy/paste the ones I provided for you.

Pete.

Now is everything also bad?

It won’t be correct until you remove the indents and block quotes and use triple backticks.

Pete.

Maybe I’m doing stupid things. Right now?

Perfect!

Pete.

Dear Pete, thank you for your support. My letter made me pack up. Here’s the working code:
Уважаемый Pete благодарю за поддержку. Мое письмо заставило меня собраться. Здесь рабочий код:

var Blynk = require('blynk-library');
var AUTH = '5SKk7B0sB0kbpockLE6-I2Y2NvF0UQTu';
var blynk = new Blynk.Blynk(AUTH, options = {
  connector : new Blynk.TcpClient( options = { addr:"192.168.1.75", port:8080 } )
});

var exec = require('child_process').exec, child;
var v1 = new blynk.VirtualPin(1);
var v2 = new blynk.VirtualPin(2);
var v3 = new blynk.VirtualPin(3);
var v4 = new blynk.VirtualPin(4);
var v5 = new blynk.VirtualPin(5);
var v6 = new blynk.VirtualPin(6);
var v7 = new blynk.VirtualPin(7);
var v8 = new blynk.VirtualPin(8);
var z = 0;

var os = require('os');
cpu = os.cpus();
console.log(cpu[1].speed);
console.log(os.homedir());
var hd = os.homedir();

v5.on('read', function(param) {
    var hd = os.homedir();
    v5.write(hd);
    });
v6.on('read', function(param) {
    var cpu = os.cpus();
    v6.write(cpu[1].speed);
    });

I decided to lay out a simple example. It answers the topic of the title. And even a little more. I think that someone will need it. The only thing. The Terminal widget does not work correctly. I don’t know how to do it on JS. Only simple commands like ls, pwd work. Maybe someone will write about it.
Решил выложить простой пример. Он отвечает теме заголовка. И даже немного больше. Думаю что кому нибудь понадобится. Единственное. Некорректно работает виджет Терминал. Не знаю как это сделать на JS . Работают только простые команды типа ls , pwd . Возможно кто нибудь напишет об этом.

var Blynk = require('blynk-library');
var AUTH = '5SKk7B0sB0kbpockLE6-I2Y2NvF0UQTu';
var blynk = new Blynk.Blynk(AUTH, options = {
  connector : new Blynk.TcpClient( options = { addr:"127.0.0.1", port:8080 } )
});

var exec = require('child_process').exec, child;
var v1 = new blynk.VirtualPin(1);
var v2 = new blynk.VirtualPin(2);
var v3 = new blynk.VirtualPin(3);
var v4 = new blynk.VirtualPin(4);
var v5 = new blynk.VirtualPin(5);
var v6 = new blynk.VirtualPin(6);
var v7 = new blynk.VirtualPin(7);
var v8 = new blynk.VirtualPin(8);
var v9 = new blynk.VirtualPin(9);
var z = 0;

var os = require('os');

//Значение слайдера. Виджет Value Display
//The value of the slider. Value Display Widget
v1.on('write', function(param) {
     z = param[0];
});

//Слайдер. Виджет Slider
//Slider widget
v2.on('read', function(param) {
    v2.write(z);
});

//Виджет Terminal
//Terminal Widget
v3.on('write', function(cmd) {
      child = exec(cmd[0], function (error, stdout, stderr) {
      //var str = stdout; 
      v3.write('->' + stdout + '\n');
   }); 
   
});


//Температура CPU. Виджет Gauge
//CPU temperature Gauge Widget
v4.on('read', function(param) {
    child = exec('vcgencmd measure_temp',
	function (error, stdout, stderr) {
        var str = stdout;
	var num = parseInt(str.match(/\d+/));
	v4.write(num);
    }); 
});


//Модель процессора. Виджет Value Display.
//Processor model. Value Display widget.
v5.on('read', function(param) {
    	var cpu = os.cpus();
	var str = cpu[0].model;
	v5.write(str);
});

//Частота CPU. Виджет Gauge
// CPU frequency. Gauge Widget
v6.on('read', function(param) {
    	var cpu = os.cpus();
	v6.write(cpu[1].speed);
});

Hope the theme continues.
Надеюсь тема продолжиться.

2 Likes