NEWS
Программа управления компьютером GetAdmin
-
Пока редактировал, уже ответили )
Кстати пришла мысль запускать программы с параметрами (пример хром с конкретной страничкой, плеер с плейлистом и тд) `
Попробуй указать файл для запуска плейлист. И просто ссылку на сайт -
Переписал программу, выложил версию 2.0. Количество записей макс 100.
-
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]
! ```
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login