NEWS
Программа управления компьютером GetAdmin
-
2.1
Исправлены некоторые ошибки.
Добавил команду chk, проверка в процессах запущено ли приложение.
-
2.1
Исправлены некоторые ошибки.
Добавил команду chk, проверка в процессах запущено ли приложение. `
Последнее время очень много говорится про защищённость. Твоё API висит открытым всем ветрам :)Хоть basicAuth+SSL добавить бы.. :)
-
2.1
Исправлены некоторые ошибки.
Добавил команду chk, проверка в процессах запущено ли приложение. `
Последнее время очень много говорится про защищённость. Твоё API висит открытым всем ветрам :)Хоть basicAuth+SSL добавить бы.. :) `
Ну из вне то не будет работать, у меня сеть за NATом, из внешки только по VPN доступ.
как функционал допилю погляжу по безопасности.
-
Обновил шапку версия 2.2.
Добавил поддержку эмуляции горячих клавиш. Если не работают, те которыми пользуетесь, пишите.
-
Очередное обновление. 2.5
Немного причесал, скорее всего в таком варианте она и останется.
-
Обалдеть, глобальный подход однако.
-
Может сделать прогу хотя бы двуязычной? Полезная штука :) `
Исполнено! -
Отлично. Перевел на немецкий: http://forum.iobroker.net/viewtopic.php?f=23&t=1848
-
update
-
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку
51_get.png -
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку `
А драйвер SimpleAPI запущен? -
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 -
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 , до кучи раздел был криптован
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden