Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] Phyton über JavaScript starten

    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

    [Frage] Phyton über JavaScript starten

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

      @Blacki:

      Mit "python3 homescripts/light/MasterLightOn.py" kann ich die Dose dann auch aktivieren. `
      Dann muss das auch so in exec()

            exec("python3 /homescripts/light/MasterLightOn.py", function(err, stdout, stderr) {
                if(err) log('Exec-Fehler: '+ stderr, 'error'); 
      
      

      Ist das Verzeichnis "homescripts" ein root-Verzeichnis ?

      1 Reply Last reply Reply Quote 0
      • B
        Blacki last edited by

        Hallo Paul,

        hab den Code geändert.

        createState('startPython');
        
        on({id: 'startPython', change: 'any'}, function (obj) {
           if (obj.newState.val === 'true' || obj.newState.val === true) {
              exec("python3 /homescripts/light/MasterLightOn.py", function(err, stdout, stderr) {
        
              });
          }
        });
        
        

        Dann über Objekte Wert von StartPython auf "true" gesetzt. Keine Wirkung.

        Ja ist ein root Verzeichnis.

        Danke

        Blacki

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          Hättest Du auch die Zeile mit dem error log übernommen, würdest Du vielleicht im Log sehen, worin der Fehler liegt.

          1 Reply Last reply Reply Quote 0
          • B
            Blacki last edited by

            Asche auf mein Haupt. Vergessen. Klassicher Fail.

            Die Datei wird nicht gefunden…

            javascript.0 script.js.MasterLightOn: Exec-Fehler: python3: can't open file '/homescripts/light/MasterLightOn.py': [Errno 2] No such file or directory

            Der Pfad ist richtig. Muss ich die IP davorstellen, oder so?

            Danke

            Blacki

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @Blacki:

              Der Pfad ist richtig. `
              Sicher ? Oder glaubst Du, dass python lügt ?
              @Blacki:

              Muss ich die IP davorstellen, oder so? `
              Was soll da eine IP ? ioBroker läuft doch auf dem Rechner, auf dem Du das Kommando per Terminal erfolgreich ausführtst ?

              1 Reply Last reply Reply Quote 0
              • B
                Blacki last edited by

                Hallo Paul,

                Der komplette Pfad wie in Putty angezeigt:

                pi@ioBroker-RasPi:~ $ python3 homescripts/light/MasterLightOn.py

                Dieser Befehl funzt. Ich steh auf der Leitung bzw. bin zu blöd.

                Gruß

                Blacki
                2613_screen.jpg

                1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer last edited by

                  @Blacki:

                  exec("python3 /homescripts/light/MasterLightOn.py", function(err, stdout, stderr) `
                  Wenn das die Zeile ist wie du sie jetzt verwendest und das
                  @Blacki:

                  python3 homescripts/light/MasterLightOn.py `
                  der Pfad ist wie er sein sollte, dann ist da vielleicht einfach das "/" vor homescripts zu viel.

                  1 Reply Last reply Reply Quote 0
                  • B
                    Blacki last edited by

                    Hallo Jey Cee,

                    Das hatte ich auch schon probiert bzw.

                    Ich teste grad per try&error dieMöglichkeiten durch.

                    Irgendwas passt da nicht.

                    Gruß

                    Blacki

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      Vielleicht ein Zugriffsrechte-Problem ? Setze mal die Datei "MasterLightOn.py" für alle User auf lesbar und ausführbar.
                      493_py_rechte.jpg

                      1 Reply Last reply Reply Quote 0
                      • B
                        Blacki last edited by

                        Hallo Paul,

                        Erstmal Danke für den Tipp. Habe jetzt ein paar Stunden alles durchprobiert.

                        Das Js findet die Datei einfach nicht. Daher mal ein Grundsatzfrage.

                        Die Datei und iobroker laufen auf dem gleichen Pi. Kann der iobroker Zugriffsrechte vorausgesetzt

                        Auf das gesamt Filesystem zugreifen oder muss die Datei an speziellen Orten liegen (root,)

                        Danke

                        Blacki

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          @Blacki:

                          Kann der iobroker Zugriffsrechte vorausgesetzt

                          Auf das gesamt Filesystem zugreifen oder muss die Datei an speziellen Orten liegen (root,) `
                          Die Exec-Funktion des JS-Adapters kann auf alle Dateien zugreifen, wenn der angegebene Pfad stimmt und entsprechende Zugriffsrechte existieren. Laut Fehlerlog wird beim Aufruf über exec() python3 auch ausgeführt, python3 meckert allerdings, dass das Skript nicht gefunden wird.

                          javascript.0 script.js.MasterLightOn: Exec-Fehler: python3: can't open file '/homescripts/light/MasterLightOn.py': [Errno 2] No such file or directory 
                          
                          1 Reply Last reply Reply Quote 0
                          • arteck
                            arteck Developer Most Active last edited by

                            das ist nicht der komplette pfad

                            das ist bestimmt /home/pi/homescripts/light/MasterLightOn.py

                            wo landest du im Putty im welchen ordner auf dem PI???

                            mach cd ..

                            und dann ls

                            poste das screenshot

                            1 Reply Last reply Reply Quote 0
                            • D
                              derrapf last edited by

                              Hi

                              Ich weiss zwar nicht ob Du schon eine Lösung hast, aber Dein Problem wird sein dass python nicht gefunden wird. Du musst den Pfad zu python noch mit angeben. Findest Du leicht raus in dem Du auf der Console which python3 eingibst.

                              Angenommen phyton3 ist unter /usr/bin/python installiert dann musst Du schreiben:

                              ...
                              exec("/usr/bin/python3 /homescripts/light/MasterLightOn.py", function(err, stdout, stderr) {...
                              ...
                              
                              

                              Gruss Ralf

                              1 Reply Last reply Reply Quote 0
                              • Bluefox
                                Bluefox last edited by

                                @arteck:

                                das ist nicht der komplette pfad

                                das ist bestimmt /home/pi/homescripts/light/MasterLightOn.py

                                wo landest du im Putty im welchen ordner auf dem PI???

                                mach cd ..

                                und dann ls

                                poste das screenshot `
                                Das ist richtiger Tipp.

                                1 Reply Last reply Reply Quote 0
                                • C
                                  Chuckwallas last edited by

                                  Hallo,
                                  bevor ich einen neuen Thread eröffne, möchte ich hier anknüpfen.

                                  Auch ich habe ein Python Script auf meinem Raspberry und ich bekomme das mit dem oben aufgeführten JavaScript zum laufen. Mein Skript startet einen Motor, bzw. ein Relais, und schaltet es nach 10 Sekunden wieder ab. Wenn ich den State auf True setze, wird auch ordentlich das Skript gestartet. (Als das geklappt hat, hab ich vor Freude fast den Schreibtisch umgeworfen, da ich mit Java vorher eigentlich noch nie was zu tun hatte).

                                  Kann ich den State auch automatisch von True auf False zurück ändern lassen? Hintergrund ist nun der, dass ich das Objekt in Vis mit einem Button verknüpft habe, und wenn ich den toggle, ändert sich der Status korrekter Weise auf True, aber da bleibt er dann auch. Ich könnte über den Button auch erst wieder auf False umschalten, aber ich fände es schöner wenn ich am Button auch sehen kann, dass der Vorgang am Motor nach 10 Sekunden beendet wurde.

                                  Vielen Dank im Voraus
                                  vg

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  681
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  7
                                  18
                                  7098
                                  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