+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 25
  1. #1
    Registriert seit
    Apr 2019
    Ort
    Blumberg
    Beiträge
    100

    Standard Programm auf dem Rasp Pi per exec ausführen

    Hallo lb. Forum,
    auf dem Raspberry liefert mir der Befehl im Ordner home/pi/ordner1
    .sudo ./can_scan can0 123 123.0112 eine Antwort-String.
    Nun möchte ich diesen Befehl aus ip-symcon aufrufen.
    Leider liefert dieser Befehl:
    $ergebnis=exec("\\192.xxx.yyy.zz\home\pi\ordner1/can_scan can0 123 123.0112");
    mir keine Daten in der Variablen $ergebnis.
    Die IP-Adresse ist natürlich die richtige eingetragen.
    Meine Frage: was mache ich falsch bei dem Befehl?
    Danke für die Hilfe
    Grüße von
    Ekkehard

  2. #2
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,031

    Ich brauchte das auch mal, habe es aber derzeit nicht im einsatz (daher ohne Gewähr):

    PHP-Code:
    // richtiges Komando eintragen
    $cmd 'sudo xyz';

    $ret exec("$cmd"$out$rc); 
    //var_dump($ret); // last output line
    //var_dump($rc); // int(0)
    foreach ($out as $line) { 
        echo 
    $line.PHP_EOL;

    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  3. #3
    Registriert seit
    Apr 2019
    Ort
    Blumberg
    Beiträge
    100

    Hallo pitti,

    habe Deine Vorgaben wie folgt ergänzt:

    $cmd ='sudo .\\192.xxx.yyy.zz\home\pi\ordner1/can_scan';


    $out = "can0";
    $rc = "123 123.0112";


    $ergebnis=exec("$cmd", $out, $rc);

    Leider erhalte ich in der Variable $ergebnis keinen Wert.

    Sicherlich mache ich noch im Aufruf falsch?
    Gruß
    Ekkehard

  4. #4
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,031

    Hi Ekkehard,

    hier die Definition von exec:

    [CODE]
    exec ( string $command [, array &$output [, int &$return_var ]] ) : string
    [/CODE

    in $cmd packst Du das komplette Kommando rein mit Parameter usw.

    EXEC liefert die einen String zurück ($ergebnis) welches die letzte Zeile des Outputs entspricht.

    Willst Du alles haben was EXEC ausgibt musst Du mit der Schleife zeilenweise durch $out iterieren!

    Gruß Heiko
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  5. #5
    Registriert seit
    Apr 2019
    Ort
    Blumberg
    Beiträge
    100

    Hallo Heiko,
    danke für Deine Rückantwort gestern Abend.
    Habe aber immer noch Probleme eine Rückantwort vom pi zu bekommen.
    Das Script sieht wie folgt nun aus:

    $cmd ='sudo .\\\192.168.xxx.yyy\home\pi\ordner1/can_scan can0 123 123.0112';
    echo "pi command " . $cmd . "\n";


    $ergebnis=exec($cmd, $out);


    echo "ergebnis " . $ergebnis . "\n";
    var_dump ($ergebnis);
    var_dump ($out);

    die Echo Befehle sehen dann so aus:

    pi command sudo .\\192.168.xxx.yyy\home\pi\ordner1/can_scan can0 123 123.0112
    ergebnis
    string(0) ""
    array(0) {
    }

    Sicherlich habe ich noch ein Problem mit der Syntax, damit der Befehl auch auf dem Pi ausgeführt wird.
    Danke für Deine Hilfe.
    Grüße von
    Ekkehard

  6. #6
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,031

    Jetzt muss ich nochmal ganz doof fragen, was möchtest Du eigentlich machen?

    Führst Du den Befehl von einem anderen Rechner aus aus, also Pi A führt Befehl auf Pi B aus? Ich verstehe das Kommando nicht so ganz

    Gruß Heiko

    PS: Du schreibst ja auch in #1 den Befehl auf dem Rechner ohne '.\\ip...'?!?
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  7. #7
    Registriert seit
    Apr 2019
    Ort
    Blumberg
    Beiträge
    100

    Hallo Heiko,
    Ziel soll es sein, dass ich vom ip-symcon-Rechner einen Befehl absetze, der auf dem rasp pi ausgeführt wird und als return-Wert mir einen String zurückgibt.
    Ip-symcon läuft auf einem Windows-Rechner und hat z.B. die IP Adresse: 192.168.100.010
    der Raspberry hat in meinem Netz die Ip-Adresse 192.168.100.020
    Deshalb muss ich doch sicherlich irgendwie die IP-Adresse in die $cmd Variable mit einbauen, auf welchem Rechner
    der Befehl ausgeführt werden soll:
    z.B.

    <?


    //Start writing your scripts between the brackets


    $cmd ='sudo .\\\192.168.100.020\home\pi\ordner1/can_scan can0 123 123.0112';
    echo "pi command " . $cmd . "\n";

    $ergebnis=exec($cmd, $out);

    ?>

    PS:die IP Adressen sind nicht die Orignal-IP-Adressen, aber so ist das besser verständlich was ich will.

    Danke für Deine Hilfe.

    Grüße von
    Ekkehard

  8. #8
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,031

    Wenn ich Dich richtig verstehe wird der Befehl ja auf einem Windows-Rechner ausgeführt!!! Wie soll das funktionieren? Windows kennt kein "sudo" usw. ... selbst wenn ... welcher User sollte verwendet werden???

    Windows zu Linux habe ich selber nicht im Betrieb, hatte mal Linux zu iOS. Da musste ich mich auch erst mal via ssh mit dem iPad verbinden und dann den Befehl ausführen. Dazu habe ich damals "sshpass" genutzt.

    Das sah dann so aus:

    PHP-Code:
    echo exec('sshpass -p alpine ssh root@192.168.0.xx "activator send libactivator.lockscreen.show"'); 
    Da wird dann eine SSH-Verbindung mit user&pw aufgebaut und der Befehl "activator send libactivator.lockscreen.show" ausgeführt.

    Sowas musst Du halt auch von Windows aus schaffen

    Ciao Heiko
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  9. #9
    Registriert seit
    Nov 2015
    Beiträge
    1,240

    Moin Ekkehard,

    ich war immer der Ansicht, dass man sich zunächst mit ssh auf dem Pi anmelden muss. Vielleicht liege ich da ja falsch

    Schau mal hier CPU Temperatur im WF anzeigen - Seite 14 vielleicht hilft dir Post 134 weiter.

    Gruß
    Hans
    Entwicklung: Win 10 Pro x64 | Produktiv: Win 10 Pro x64 auf Intel NUC 5PPYH | IPS 5.3 Ninja | piVCCU auf Pi 3 + div. HM Geräte | Harmony Hub | IPSStudio 4.1 Beta | Clients: Windows mit Iiyama T2735MSC-B2 | div. iPad | Moto Z

  10. #10
    Registriert seit
    Apr 2019
    Ort
    Blumberg
    Beiträge
    100

    Hallo Hans,
    danke für den Link.
    Habe mir die Zip Datei runtergeladen und als neuen Ordner net_php in den script ordner eingefügt.
    nun will ich ssh2 aufrufen:

    //SSH Login
    include('net_php/net/SSH2.php');
    $ssh = new Net_SSH2('192.168.100.20');

    Aber ich bekommen die Fehlermeldung
    Warning: include_once(Math/BigInteger.php): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\net_php\Net\SSH2.php on line 943

    Den Ordner Math gibt es, aber unter net_php/math.

    Muss irgendwo noch die Pfade einstellen, oder beim Start einen Befehl absetzen, damit ip-symcon auch die anderen Ordner kennt?

    Gruß
    Ekkehard

Ähnliche Themen

  1. Wo ist IPS auf dem Rasp default installiert?
    Von wolfgangb im Forum Mikrocontroller
    Antworten: 5
    Letzter Beitrag: 29.09.18, 13:18
  2. Programm auf Pi ausführen per Symcon ???
    Von Mastershort im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 23.11.17, 22:56
  3. Java Programm auf Server ausführen ???
    Von mr_cg im Forum WebFront
    Antworten: 1
    Letzter Beitrag: 10.11.11, 23:09
  4. Schmutziger Trick: Programm auf einem entfernten Rechner ausführen / Remote-Hibernate
    Von sokkederheld im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 12
    Letzter Beitrag: 25.11.08, 16:32
  5. Programm ausführen im Designer?
    Von TK6 im Forum Dashboard
    Antworten: 1
    Letzter Beitrag: 09.02.06, 18:28