NEWS
Программа управления компьютером GetAdmin
-
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку
А драйвер SimpleAPI запущен?
Вроде работает!
{ /opt/iobroker$ iobroker l i ! system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin system.adapter.web.0 : web - enabled, port: 8082, bind: 0.0.0.0, run as: admin system.adapter.simple-api.0 : simple-api - enabled, port: 8087, bind: 0.0.0.0, run as: admin
`
Ошибка появилась когда прописал в настройках getadmin ip для Simpleapi? А ты скрипт добавил? он же должен переменные создать сначала.Пропиши пока руками в скрипте настройки, попробую отловить ошибку потом.
305_heizungsscript_220_b17_temp.txt -
Ошибка появилась когда прописал в настройках getadmin ip для Simpleapi? А ты скрипт добавил? он же должен переменные создать сначала.
Пропиши пока руками в скрипте настройки, попробую отловить ошибку потом. `
Да скрипт добавил, переменные создались -
Не запускается программа, в диспетчере висят три процесса GetAdmin.exe *32, на попытки закрыть принудительно не отвечают.
Запускал от администратора.
Windows 7 64
!
-
Не запускается программа, в диспетчере висят три процесса GetAdmin.exe *32, на попытки закрыть принудительно не отвечают.
Запускал от администратора.
Windows 7 64
! filename="1212.jpg" index="0">~~ `
У меня тоже вин7 64 запускается норм и без администратора. С момента написания стоит в автозагрузке и глюков вообще не было.В итоге получилось запустить?
-
На моем нет, а на другом компе да, хотя там тоже стоит win 7 64.
Может что то нужно дополнительно поставить типа NET Framework или с чем-то конфликтует?
-
Выкладываю свой скрипт, может кому пригодится.
! ```
`createState('GetAdmin.cmd', '');
createState('GetAdmin.Key', '');
createState('GetAdmin.Check', '');
createState('GetAdmin.CheckRes', '');
createState('GetAdmin.Host', '');
createState('GetAdmin.Port', '');
createState('GetAdmin.WOL', '');
createState('GetAdmin.Power', '');
createState('GetAdmin.Process', '');
createState('GetAdmin.MonitorSwitch', '');
createState('GetAdmin.AudioSwitch', '');
var request = require('request');
var wol = require('wake_on_lan');
var ping = require('ping');
var flag_foobar = false;
var flag_chrome = false;
var flag_utorrent = false;
! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
ping.sys.probe('192.168.1.15', function(isAlive){
var pingPC = isAlive ? true : false;
if (!pingPC && (obj.newState.val =='foobar' || obj.newState.val =='torrent' || obj.newState.val =='chrome' || obj.newState.val =='vlc')){
log('Включаем комп и отправляем команду через 3 минуты: '+ obj.newState.val);
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC');
setTimeout(function() {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}, 180000);
} else {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}
});} else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Key', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendKeyGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Key: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Check', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendCheckGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Check: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Power', change: 'any'}, function (obj) {
var pingPC = getState('ping.1.Server-PC.192_168_1_10').val;
if((obj.newState.val == 'true' || obj.newState.val === true) && (pingPC == 'false' || pingPC === false)){
log('Включаем PC - on');
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC'); //
}
if(obj.newState.val == 'false' || obj.newState.val === false){
log('Выключаем PC - off');
setState('javascript.0.GetAdmin.cmd', 'shutdown');
}
});
! on({id: 'javascript.0.GetAdmin.WOL', change: 'any'}, function (obj) {
if(obj.newState.val !== ''){
wol.wake(obj.newState.val);
log(obj.newState.val); //00:1B:FC:9A:8B:05
//var magic_packet = wol.createMagicPacket('00:1B:FC:9A:8B:10');
}
});
! on({id: 'javascript.0.GetAdmin.MonitorSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'monitor1', true/ack/);
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitor2', true/ack/);
}
if(obj.newState.val == '2' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorextend', true/ack/);
}
if(obj.newState.val == '3' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorclone', true/ack/);
}
});
on({id: 'javascript.0.GetAdmin.AudioSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'audio1', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+S');
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'audio2', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+A');
}
});
/***************************************************************************************/
function sendCmdGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?cmd='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);
}
});
}
! function sendKeyGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?key='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);} });
}
! function sendCheckGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?chk='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var resp = body.match(/
! (.*)</p>/g);
resp[0] = resp[0].replace("!
", "").replace("</p>", "");
log(resp[0]);
setState('javascript.0.GetAdmin.CheckRes', resp[0], true/ack/);} });
}
schedule("*/10 * * * *", function () {
check_programm();
});! function check_programm() {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
var strproc = '';
flag_foobar = false;
flag_chrome = false;
flag_utorrent = false;
! ping.sys.probe('192.168.1.15', function(isAlive){
pingPC = isAlive ? true : false;
if (pingPC){
var options = {
url: 'http://'+host+':'+port+'/?cmd=process'
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var proc = body.match(/(.*)</html>/g);
proc[0] = proc[0].toLowerCase();
proc[0] = proc[0].replace(//g, "").replace(/;</html>/g, "").replace(/.exe/g, "");
//log(proc[0]);
var parsebody = [];
parsebody = proc[0].split(';');
var j = parsebody.length;
parsebody.sort();
while (j--) {
if (parsebody[j] == parsebody[j-1]) {
parsebody.splice(j, 1);
}
if (j === 1){
log(parsebody);
! for (var i = 0; i < parsebody.length-1; i++) {
strproc += parsebody[i]+',';
}
setState('javascript.0.GetAdmin.Process', strproc);
if (~strproc.indexOf("foobar2000")) {
setState('javascript.0.GetAdmin.Process.foobar2000', 'true');
} else {setState('javascript.0.GetAdmin.Process.foobar2000', 'false');}if (~strproc.indexOf("utorrent")){ setState('javascript.0.GetAdmin.Process.uTorrent', 'true'); } else {setState('javascript.0.GetAdmin.Process.uTorrent', 'false');} if (~strproc.indexOf("chrome")){ setState('javascript.0.GetAdmin.Process.chrome', 'true'); } else {setState('javascript.0.GetAdmin.Process.chrome', 'false');} } } } else { setState('javascript.0.GetAdmin.Process', ''); } }); } else { setState('javascript.0.GetAdmin.Process', ''); } });
}`[/i]
! ```
-
Выкладываю свой скрипт, может кому пригодится.
! ```
`createState('GetAdmin.cmd', '');
createState('GetAdmin.Key', '');
createState('GetAdmin.Check', '');
createState('GetAdmin.CheckRes', '');
createState('GetAdmin.Host', '');
createState('GetAdmin.Port', '');
createState('GetAdmin.WOL', '');
createState('GetAdmin.Power', '');
createState('GetAdmin.Process', '');
createState('GetAdmin.MonitorSwitch', '');
createState('GetAdmin.AudioSwitch', '');
var request = require('request');
var wol = require('wake_on_lan');
var ping = require('ping');
var flag_foobar = false;
var flag_chrome = false;
var flag_utorrent = false;
! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
ping.sys.probe('192.168.1.15', function(isAlive){
var pingPC = isAlive ? true : false;
if (!pingPC && (obj.newState.val =='foobar' || obj.newState.val =='torrent' || obj.newState.val =='chrome' || obj.newState.val =='vlc')){
log('Включаем комп и отправляем команду через 3 минуты: '+ obj.newState.val);
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC');
setTimeout(function() {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}, 180000);
} else {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}
});} else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Key', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendKeyGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Key: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Check', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendCheckGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Check: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Power', change: 'any'}, function (obj) {
var pingPC = getState('ping.1.Server-PC.192_168_1_10').val;
if((obj.newState.val == 'true' || obj.newState.val === true) && (pingPC == 'false' || pingPC === false)){
log('Включаем PC - on');
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC'); //
}
if(obj.newState.val == 'false' || obj.newState.val === false){
log('Выключаем PC - off');
setState('javascript.0.GetAdmin.cmd', 'shutdown');
}
});
! on({id: 'javascript.0.GetAdmin.WOL', change: 'any'}, function (obj) {
if(obj.newState.val !== ''){
wol.wake(obj.newState.val);
log(obj.newState.val); //00:1B:FC:9A:8B:05
//var magic_packet = wol.createMagicPacket('00:1B:FC:9A:8B:10');
}
});
! on({id: 'javascript.0.GetAdmin.MonitorSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'monitor1', true/ack/);
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitor2', true/ack/);
}
if(obj.newState.val == '2' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorextend', true/ack/);
}
if(obj.newState.val == '3' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorclone', true/ack/);
}
});
on({id: 'javascript.0.GetAdmin.AudioSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'audio1', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+S');
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'audio2', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+A');
}
});
/***************************************************************************************/
function sendCmdGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?cmd='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);
}
});
}
! function sendKeyGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?key='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);} });
}
! function sendCheckGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?chk='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var resp = body.match(/
! (.*)</p>/g);
resp[0] = resp[0].replace("!
", "").replace("</p>", "");
log(resp[0]);
setState('javascript.0.GetAdmin.CheckRes', resp[0], true/ack/);} });
}
schedule("*/10 * * * *", function () {
check_programm();
});! function check_programm() {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
var strproc = '';
flag_foobar = false;
flag_chrome = false;
flag_utorrent = false;
! ping.sys.probe('192.168.1.15', function(isAlive){
pingPC = isAlive ? true : false;
if (pingPC){
var options = {
url: 'http://'+host+':'+port+'/?cmd=process'
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var proc = body.match(/(.*)</html>/g);
proc[0] = proc[0].toLowerCase();
proc[0] = proc[0].replace(//g, "").replace(/;</html>/g, "").replace(/.exe/g, "");
//log(proc[0]);
var parsebody = [];
parsebody = proc[0].split(';');
var j = parsebody.length;
parsebody.sort();
while (j--) {
if (parsebody[j] == parsebody[j-1]) {
parsebody.splice(j, 1);
}
if (j === 1){
log(parsebody);
! for (var i = 0; i < parsebody.length-1; i++) {
strproc += parsebody[i]+',';
}
setState('javascript.0.GetAdmin.Process', strproc);
if (~strproc.indexOf("foobar2000")) {
setState('javascript.0.GetAdmin.Process.foobar2000', 'true');
} else {setState('javascript.0.GetAdmin.Process.foobar2000', 'false');}if (~strproc.indexOf("utorrent")){ setState('javascript.0.GetAdmin.Process.uTorrent', 'true'); } else {setState('javascript.0.GetAdmin.Process.uTorrent', 'false');} if (~strproc.indexOf("chrome")){ setState('javascript.0.GetAdmin.Process.chrome', 'true'); } else {setState('javascript.0.GetAdmin.Process.chrome', 'false');} } } } else { setState('javascript.0.GetAdmin.Process', ''); } }); } else { setState('javascript.0.GetAdmin.Process', ''); } });
}`
Спасибо, очень пригодился[/i]! ``` `
-
instalator, комп чтоль сдох ?
я тоже попадался на эту ловушку :x , до кучи раздел был криптован
-
instalator, комп чтоль сдох ?
я тоже попадался на эту ловушку :x , до кучи раздел был криптован `
Бекап битый получился, откатился на декабрь. -
Хочу ребенку нарисовать страничку, чтобы он видел какое время он уже сидит за компом (обратный отсчет). Ну и по прошествии этого времени комп выключать.
Подскажите, куда копать?
256_io_getadmin1.jpg -
Нужен скрипт который попингу отследить время включения компа, какой нить таймер, с переменной таймера брать значение и отображать в виз, по окончании отсчета вырубить комп
Пишу с пульта….
-
Нужен скрипт который попингу отследить время включения компа, какой нить таймер, с переменной таймера брать значение и отображать в виз, по окончании отсчета вырубить комп
Пишу с пульта…. `
Да все верно, можно еще в виз вывести виджет для ввода времени таймера и по нажатию кнопки старт побежит обратный отсчет. -
В догонку- может есть какие-то параметры запуска, чтобы картинка не висела в трее и/или убрать описание самой программы (about)?
-
В догонку- может есть какие-то параметры запуска, чтобы картинка не висела в трее и/или убрать описание самой программы (about)? `
Ну это если переписать ее что бы как служба запускалась или запаролить настройки, опять же процесс убить можно будет. У меня пока нету времени переписывать программу под единичный случай. На будущее возможно добавлю данный функционал. Пиши пожелания и хотелки. -
Скопипастил ваш скрипт, ругается на отсутствие модуля:
! 12:49:59.342 [info] javascript.0 Stop script script.js.Getadmin2
! 12:50:34.009 [info] javascript.0 Start javascript script.js.Getadmin2
! 12:50:34.012 [error] javascript.0 script.js.Getadmin2: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/ping' at script.js.Getadmin2:14:12
! 12:50:34.012 [info] javascript.0 script.js.Getadmin2: registered 7 subscriptions and 1 schedule
Драйвера установлены
256_io_adapters.jpg -
Нужен скрипт который попингу отследить время включения компа, какой нить таймер, с переменной таймера брать значение и отображать в виз, по окончании отсчета вырубить комп
Пишу с пульта…. `
Эхх… вот скриптописец из меня просто писец ))) -
Скопипастил ваш скрипт, ругается на отсутствие модуля:
! 12:49:59.342 [info] javascript.0 Stop script script.js.Getadmin2
! 12:50:34.009 [info] javascript.0 Start javascript script.js.Getadmin2
! 12:50:34.012 [error] javascript.0 script.js.Getadmin2: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/ping' at script.js.Getadmin2:14:12
! 12:50:34.012 [info] javascript.0 script.js.Getadmin2: registered 7 subscriptions and 1 schedule
Драйвера установлены `
Добавь модуль в настройки драйвера js
266_23424234.png -
Нужен скрипт который попингу отследить время включения компа, какой нить таймер, с переменной таймера брать значение и отображать в виз, по окончании отсчета вырубить комп
Пишу с пульта….
Эхх… вот скриптописец из меня просто писец )))
Тут вариантов много, например так, но это не точный таймер получится.createState('timer', 0); var timer; on({id: 'javascript.0.timer', change: 'any'}, function (obj) { if (obj.newState.val > 0){ timer = setTimeout(function() { setState('javascript.0.timer', obj.newState.val - 1); log('Прошла секунда'); }, 1000); } else { clearTimeout (timer); log('ТУТ ВЫКЛЮЧАЕМ КОМП'); } });
Можно через schedule сделать. По крону проверяем каждую минуту например переменную и если она больше нуля то отнимаем и записывае новое значение в переменную. Как нибудь так:
createState('timer', 0); schedule("* * * * *", function () { var timer = getState('javascript.0.timer').val; if (timer > 0){ setState('javascript.0.timer', timer - 1); } else if (timer === 0){ setState('javascript.0.timer', 'Время вышло'); log('ТУТ ВЫКЛЮЧАЕМ КОМП'); } });
-
Hello!
Unfortunately I have found no info about this in English. First of thanks instalator for the great tool, so far shutting down my PC using iobroker is working perfectly. However, is there a way I can let my PC press a specific key (such as Space, Delete, or any other) without opening the browser on the host computer?
This is not my field so maybe I missed the way if its available or I misunderstood something.
Thanks a lot!
-
Hello!
Unfortunately I have found no info about this in English. First of thanks instalator for the great tool, so far shutting down my PC using iobroker is working perfectly. However, is there a way I can let my PC press a specific key (such as Space, Delete, or any other) without opening the browser on the host computer?
This is not my field so maybe I missed the way if its available or I misunderstood something.
Thanks a lot! `
https://blog.instalator.ru/archives/47there under the spoiler list of supported keys