PERL Script auf dem Handy mit Tasker ausführen

zwantE

zwantE

Dauergast
204
Moin,
kann ich irgendwie ein Perl Script mit Tasker ausführen?

Ich würde gerne per Fritzbox & WOL mein NAS starten und dabei dieses Script verwenden. Ja ich weiß das es auch WOL Apps gibt, diese funktionieren für mein NAS aber nicht zuverlässig :(

viele Grüße
 
Zuletzt bearbeitet:
versuchs mal mit SL4A
 
zwantE schrieb:
Ich würde gerne per Fritzbox & WOL mein NAS starten und dabei dieses Script verwenden. Ja ich weiß das es auch WOL Apps gibt, diese funktionieren für mein NAS aber nicht zuverlässig :(

ist das Skript über die Fritzbox abrufbar? bzw kannst du das Skript mit einem Browserabruf starten? ich weiß jetzt nicht, wo es auf der Fritzbox liegt, aber wenn du das Skript per https://fritzbox/wakeup.pl starten kannst, sollte das mit Tasker auch klappen.


bei Tasker wäre das dann zB so ein ähnlicher Aufruf
Code:
A4: HTTP Post [ Server:Port:username:password@home.ipzuhause.de Pfad:dateninput.php?token=%Token&ort=%Standort
 
@m505: danke für den Link, ich guck mir das mal an.

@oggy: das Script will auch aufs Handy packen um von unterwegs aus das WOL via Fritzbox-Webinterface ausführen zu können ohne mich selbst ins webinterface einloggen zu müssen.

Der ursprüngliche Beitrag von 11:08 Uhr wurde um 12:03 Uhr ergänzt:

@m505:
So ich hab nun SL4A und Python inkl Perl Interpreters installiert und das Script in den Ordner sdcard/SL4A/scripts gespeichert. Es erscheint die Meldung das das Script ausgeführt wurde, aber es passiert nichts. auch das Logfile ist leer :/
 
mal eines der Beispiele getestet?

Edit: Auszug aus der FAQ:

Can I install other Python modules?

Yes. Many pure Python modules will work if you simply add them to /sdcard/com.googlecode.pythonforandroid/extras/python as long as they don't depend on any C Python modules that aren't included with SL4A.
 
Zuletzt bearbeitet:
ja hab ich, die gehen...
aber selbst wenn ich das Script ohne Tasker mit SL4A ausführe steht im Terminalfenster rein gar nichts :/
 
Warum schreibste es nicht einfach nach bash um?
 
weil ichs nicht kann :/
wenn das jemand beherrscht, dann würde ich mich über Unterstützung freuen :)

hier das Script oder alternativ auf GitHub
Code:
#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;
use Encode;
use Digest::MD5 qw(md5_hex);

my $ua = LWP::UserAgent->new;

### start of config section

# if you don't want to store your credentials within this script just
# keep the next three dummy values and set $ask_auth = 1

# the following credentials are needed for remote login, e.g. from WAN/Internet
my $remote_user = "myusername";
my $remote_pass = "myPassword!";

# local admin password required for some fritzboxes 
my $local_admin_pass = "myAdminPassword!";

# enable interactive authentication to avoid storing credentials in this script
my $ask_auth = 0;

# fritzbox host to connect to
my $host = "my.hostname.net";

# fritzbox port, usually 443
my $port = 443;

# MAC of the computer to send the wakeup packet to,
# use mac format 01:23:45:67:89:AB
my $mac = "00:CO:1D:CO:FF:EE";

# uncomment the following line if you get ssl certificate warnings
#$ua->ssl_opts(verify_hostname => 0);

### end of config section
### do not change anything below!

sub err_exit($) {
    my $msg = shift;
    print "[error] $msg\n";
    exit 1;
}

sub readcreds() {
    use Term::ReadKey;
    print "remote login username: "; chomp($remote_user = ReadLine(0));
    ReadMode('noecho');
    print "remote login password: "; chomp($remote_pass = ReadLine(0));
    print "\nlocal admin password: "; chomp($local_admin_pass = ReadLine(0));
    ReadMode('restore');
    print "\n\n";
}

readcreds if ($ask_auth);

$ua->timeout(30);
push @{$ua->requests_redirectable}, 'POST';
$ua->credentials($host.":".$port, "HTTPS Access", $remote_user, $remote_pass);

my $url_base = "https://".$host;
my $url_login = $url_base."/login.lua";
my $url_wakeup = $url_base."/cgi-bin/webcm";

my $r = $ua->get($url_login);
if ($r->is_success) {
    my $c = $r->decoded_content;
    if ($c =~ m#(?:g_challenge|var challenge|\["security:status/challenge"\]) = "([a-f0-9]+)"#) {
        my $challenge = $1;
        my $pass = ($c =~ m#Benutzername#) ? $remote_pass : $local_admin_pass;
        my %data = (
            username => $remote_user,
            response => sprintf "%s-%s", $challenge, md5_hex(encode("UTF16-LE", sprintf "%s-%s", $challenge, $pass))
        );
        $r = $ua->post($url_login, \%data);
        $c = $r->decoded_content;
        err_exit "login failed" if ($c =~ m#(?:error_text|ErrorMsg)#i);
        if ($c =~ m#(?:home|logout)\.lua\?sid=([a-f0-9]+)#) {
            my $sid = $1;
            %data = (sid => $sid, "wakeup:settings/mac" => $mac);
            $r = $ua->post($url_wakeup, \%data);
            if ($r->is_success) {
                print "[success] wakeup done\n";
            } else {
                err_exit $r->status_line;
            }
        } else {
            err_exit "could not find a session id";
        }
    } else {
        err_exit "could not find a challenge";
    }
} else {
    err_exit "could not load login page: " . $r->status_line;
}

exit 0;
 
Ok grad das ich es richtig verstanden habe - du möchtest dein Fritzbox anweißen son Magick- Paket zu deinem NAS zu schicken?!?
 
ja genau :)
aber ich möchte nicht die Funktion (Diesen Computer automatisch starten, sobald aus dem Internet darauf zugegriffen wird.) der Fritzbox nutzen, weil diese dann auch ausgeführt wird wenn jemand auf den Webserver der DS zugreifen möchte.
 
PCs mit der Fritz Box fernsteuern - computerwoche.de

Ich selber habe keine Fritzbox sonst würde ichs mal testen. Aber wie wäre es aus einer kombination aus ssh wie da oben beschrieben. Dann könntest du dich übers netz auf der fb einloggen und daraufhin dieses Paket losschicken.
 
boah ist das viel Input und klingt kompliziert :/
deshalb hab ich mich über das fertige Script gefreut
 
Ok du könntest doch auch einfach ne portweiterleitung in der FB anmachen ( kann die das auch mac basiert? also das sie es wegschickt obwohl der PC nicht angeschalten ist? ) Dann müsstest du einmal so ein magick Paket erstellen ( ist glaub ich die mac mit 3 nullen angehängt ) das dann aufs handy kopieren und ohne über die FB Software zu gehn direkt zum nas hinschicken.

Richtig "billig" könntest du es auch realisieren indem man das ganze optisch automatisiert... also webinterface der fb freigeben. Dann aufm Handy mit dem Browser drauf zugreifen und alle eingaben emuliert eingeben lassen ( ja geht braucht aber root und du siehst den Vorgang derweil auf deinem Handydisplay)
 
leider leitet die Fritzbox keine Magic Pakete via Broadcast weiter die aus dem Internet kommen, weshalb die fertigen WOL Geschichten alle nicht funktionieren.

deine "richtig billige Lösung" kommt auch nicht in Frage... hab zwar root, aber ich will das nicht sehen... ich möchte am liebsten nur eine Homescreenverknüpfung drücken :(
 
Ich hatte ein ähnliches Problem - allerding kein WOL - und habe es mit einem VPN gelöst: Du kannst ein VPN-Profil in der Fritz!Box einrichten und dann mit Tasker die VPN-Verbindung aufbauen, das Magic-Paket verschicken und dann wieder die VPN-Verbindung trennen.
Die folgenden Apps sind durch Tasker über Intents steuerbar und können die notwendigen Schritte durchführen:

https://play.google.com/store/apps/details?id=com.benfinnigan.wol (für WOL)
https://play.google.com/store/apps/details?id=com.gmail.mjm4456.vpncilla (für die VPN-Verbindung, kostet aber 4 EUR, eine 10-Tage-Trial gibts kostenlos)

Vielleicht gibt es noch andere (kostenlose) Apps mit Tasker-Anbindung, da ich aber VpnCilla eh schon gekauft hatte, habe ich mich nicht danach umgeschaut. Diese Methode hat auch den Vorteil, dass man auch gleich noch auf das ganze Heimnetzwerk von unterwegs aus zugreifen kann, ohne irgendwelche zusätzlichen Ports (außer den VPN-Ports) für jedermann im Internet zu öffnen.
 
die app für wol funktioniert nicht für mein NAS, da die Fritzbox kein Magic Paket per Broadcast ins Netzwerk durchlässt. und mein NAS braucht ein echtes Magic Paket und nicht nur irgend ein anderes adressiertes Paket. daran ändert auch VPN nichts, wofür man übrigens keine zusätzliche App benötigt. (jedenfalls kann mein HTC das von Haus aus)
aus diesem Grund Suche ich nach einer Lösung wie im 1.Post beschrieben
 

Ähnliche Themen

P
Antworten
25
Aufrufe
1.195
Pentatulim
P
T
Antworten
3
Aufrufe
258
torty85
T
M
Antworten
23
Aufrufe
627
senior-ipaq
S
Zurück
Oben Unten