Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Python Script wird wird nur teilweise ausgeführt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Python Script wird wird nur teilweise ausgeführt

    This topic has been deleted. Only users with topic management privileges can see it.
    • Christof.Kac
      Christof.Kac last edited by Christof.Kac

      Hi,
      ich nutze ioBroker erfolgreich in einem Dockercontainer und wollte jetzt ein Pythonskript laufen lassen, um mich auf meiner DynDns Seite afraid.org regelmäßg einzuloggen (da sonst der Account gesperrt wird).
      Skript dafür habe hier gefunden: Github Link
      In der shell von ioBroker funktioniert das super.
      Gekapselt habe ich das alles in einem Skript autologin.sh:

      python /opt/iobroker/autologin/afraid-autologin/autologin.py --browser phantomjs > /tmp/output_afraid_autologin
      

      Output bei Aufruf des Scriptes in der Shell:

      2019-11-17 12:34:17,430 >>> DEBUG: afraid-autologin startup
      2019-11-17 12:34:17,433 >>> DEBUG: init browser
      2019-11-17 12:34:20,668 >>> DEBUG: navigating to login page
      2019-11-17 12:34:24,459 >>> DEBUG: submit login form
      2019-11-17 12:34:29,646 >>> DEBUG: extending account if dormant
      2019-11-17 12:34:30,481 >>> DEBUG: [<selenium.webdriver.remote.webelement.WebElement (session="311bea00-092e-11ea-9e1f-b5ec6b3fdb3e", element=":wdc:1573990470479")>]
      Trace
      2019-11-17 12:34:34,407 >>> INFO: login sucessful
      

      Output, wenn ich es mit dem exec-Befehl über ein Skript laufen lasse (exec('/opt/iobroker/autologin/afraid-autologin/autologin.sh');):

      2019-11-17 12:48:00,217 >>> DEBUG: afraid-autologin startup
      2019-11-17 12:48:00,220 >>> DEBUG: init browser
      

      Warum auch immer scheint das Skript relativ flott abgebrochen zu werden.

      Hat jemand eine Idee, was ich falsch mache?
      Danke
      Christof

      foxriver76 AlCalzone 2 Replies Last reply Reply Quote 0
      • foxriver76
        foxriver76 Developer @Christof.Kac last edited by foxriver76

        @Christof-Kac Warum unterscheidet sich dein Aufruf über exec und CLI. z. B. hast du auf der CLI phantomjs als Browser spezifiziert.
        Entsprechend wird hier ein anderer Zweig gewählt (https://github.com/inderpreet99/afraid-autologin/blob/master/autologin.py#L64) als über dein Exec Aufruf, und das Logging danach kommt auch nicht mehr, da was net geklappt hat. Er versucht wohl ansonsten Firefox zu nehmen. Phatnomjs ist ein Headless Browser, während FF dies nur ist, wenn er explizit in diesen Modus versetzt wird. Villt ist auch gar kein FF installiert. However, spezifiziere wieder Phantomjs und es sollte klappen.

        Edit: habe es etwas missverstanden. Warum der Umweg über das Shell Skript? Du kannst doch exec('python /opt/iobroker/autologin/afraid-autologin/autologin.py --browser phantomjs > /tmp/output_afraid_autologin') direkt aus ioBroker abfeuern. Wenn das noch unterschiedliche Ergebnisse liefert als der direkte Aufruf via CLI, werden es wohl Rechte-Geschichten sein.

        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer @Christof.Kac last edited by

          @Christof-Kac sagte in Python Script wird wird nur teilweise ausgeführt:

          Warum auch immer scheint das Skript relativ flott abgebrochen zu werden.

          Sofern die Befehlszeile richtig ist, nutze den Callback von exec. exec ist asynchron, d.h. der restliche Code danach wird sofort ausgeführt. Nur im Callback kannst du sicher sein, dass der Befehl ausgeführt wurde (mit oder ohne Fehler).

          foxriver76 1 Reply Last reply Reply Quote 0
          • foxriver76
            foxriver76 Developer @AlCalzone last edited by foxriver76

            @AlCalzone Er lässt es sich ja in eine Datei loggen. Btw. @Christof-Kac leite doch mal stderr mit in die Datei, wird hilfreich sein. Also exec('python /opt/iobroker/autologin/afraid-autologin/autologin.py --browser phantomjs &> /tmp/output_afraid_autologin')

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            695
            Online

            31.8k
            Users

            79.9k
            Topics

            1.3m
            Posts

            javascript
            3
            4
            360
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo