Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] wget funktioniert innerhalb Blockly-Skript nicht

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] wget funktioniert innerhalb Blockly-Skript nicht

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

      Weiss jemand, wieso der wget-Befehl im Blockly nicht ausgeführt wird?

      Auf der Kommandozeile geht es und das Bild wird geladen, wenn ich als root eingeloggt bin. Wenn ich es mal als root geladen habe, wird es auch per Telegram verschickt. Aber eben kein neues runtergeladen.

      Ich habe es mit und ohne sudo im exec() probiert.
      Exec() ist aktiviert im Javascript-Adapter.
      Debug ist wieder ausgeschaltet.

      Ich habe den Ordner kamerabilder auf 777 und iobroker:iobroker gesetzt.
      Ich habe den Ordner auch mal nach /home/iobroker/kamerabilder verschoben. Aber von da her kann Telegram das Bild nicht mal laden. Es wird dann einfach gar keine Nachricht verschickt, nicht mal nur der Link, wie sonst, wenn der Pfad falsch ist.

      143582473_10224757958916972_1610552077674599362_o.jpg

      Glasfaser 1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @ChrisPrefect last edited by

        @chrisprefect

        Nur mal so , du bist root , also Experte 😉 und dann mit sudo Befehlen rumspielen !?

        Nimm mal das ,
        den Pfad in " "

        wget --output-document opt/iobroker/kamerabilder/vorplatz.jpg "http://192.168.178.78:80/tmpfs/auto.jpg?usr=admin&pwd=XXXX"
        
        F ChrisPrefect Glasfaser 3 Replies Last reply Reply Quote 0
        • F
          fastfoot @Glasfaser last edited by

          @glasfaser sagte in wget funktioniert innerhalb Blockly-Skript nicht:

          Nur mal so , du bist root , also Experte und dann mit sudo Befehlen rumspielen !?

          im iobroker/Blockly ist der user immer iobroker, jedoch werden user und passwort ja in der url angegeben, und iobroker darf wget ausführen, sudo also unnötig

          ich sehe das Problem in der asynchronen Ausführung von exec, so könnte es laufen
          exec1.PNG

          ChrisPrefect Glasfaser 3 Replies Last reply Reply Quote 1
          • ChrisPrefect
            ChrisPrefect @Glasfaser last edited by

            @glasfaser Ähm, nein ich bin eben genau NICHT root im Blockly-Kontext. Deshalb geht's ja anscheinend nicht. Wenn ich den exec-Befehl 1:1 in die root SSH Sitzung kopiere geht es. Auch ohne "" um den Pfad.

            Der Befehlt geht also. Es muss irgendwie an den Rechten vom iobroker-User liegen. Aber wie kann ich das beheben?

            1 Reply Last reply Reply Quote 0
            • ChrisPrefect
              ChrisPrefect @fastfoot last edited by ChrisPrefect

              @fastfoot Das ist es leider auch nicht. Ich habe bereits ein 2 Sekunden Timeout bevor ich die Nachricht mit dem Bild abschicke. Aber selbst eine Stunde Timeout würde nichts bringen, denn es wird gar kein neues Bild heruntergeladen und gespeichert. Der wget-Befehl wird gar nicht ausgeführt. Egal ob mit oder ohne sudo.

              Aber gut zu wissen dass ich es auch ohne Timeout machen kann und direkt synchron nach dem Ausführen des Befehls weitermachen kann. Das stelle ich noch um.

              1 Reply Last reply Reply Quote 0
              • ChrisPrefect
                ChrisPrefect @fastfoot last edited by

                @fastfoot wo darf der user iobroker denn überall hinspeichern? Ev. liegt da das Problem?

                Wie kann ich mich als user iobroker einloggen um den Befehl zu testen?

                F 1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @ChrisPrefect last edited by

                  @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                  @fastfoot wo darf der user iobroker denn überall hinspeichern? Ev. liegt da das Problem?

                  Wie kann ich mich als user iobroker einloggen um den Befehl zu testen?

                  iobroker darf 'überall' unter /opt/iobroker, meist verwende ich diesen Ordner direkt zum Testen.

                  • ein iobroker fix könnte helfen Berechtigungen richtig zu setzen.
                  • im Blockly Veariable result definieren und nach dem exec anzeigen lassen, Falls Fehler müsste wget den eig. da reinschreiben
                  • mit su iobroker solltest du auch testen können
                  ChrisPrefect 1 Reply Last reply Reply Quote 1
                  • ChrisPrefect
                    ChrisPrefect @fastfoot last edited by

                    @fastfoot Merci für die Tipps.

                    e5e1de5f-8070-427f-8e0d-028d5d790e94-image.png

                    den fixer habe ich ausgeführt, hat leider nichts verändert.

                    Ich habe den Ordner wieder von /home/iobroker/kamerabilder nach /opt/iobroker/kamerabilder verschoben.

                    Das sehe ich im Logfile:

                    d96fda6c-875e-4135-910b-3c01b5bbb1c4-image.png

                    Jetzt wird leider noch nicht mal mehr das vorher manuell heruntergeladene Bild mit Telegram verschickt. Kann das an den falschen Rechten liegen? Vorher war das auf root:root, jetzt auf iobroker:iobroker. Unter welchem User läuft denn exec und Telegram?

                    77203f29-a689-4ae2-a669-bbacd55ca31f-image.png

                    F 2 Replies Last reply Reply Quote 0
                    • F
                      fastfoot @ChrisPrefect last edited by

                      @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                      @fastfoot Merci für die Tipps.

                      e5e1de5f-8070-427f-8e0d-028d5d790e94-image.png

                      den fixer habe ich ausgeführt, hat leider nichts verändert.

                      Ich habe den Ordner wieder von /home/iobroker/kamerabilder nach /opt/iobroker/kamerabilder verschoben.

                      Das sehe ich im Logfile:

                      d96fda6c-875e-4135-910b-3c01b5bbb1c4-image.png

                      Jetzt wird leider noch nicht mal mehr das vorher manuell heruntergeladene Bild mit Telegram verschickt. Kann das an den falschen Rechten liegen? Vorher war das auf root:root, jetzt auf iobroker:iobroker. Unter welchem User läuft denn exec und Telegram?

                      77203f29-a689-4ae2-a669-bbacd55ca31f-image.png

                      seltsam, im Docker container funktioniert su. mit chmod 777 /opt/iobroker/kamerabilder sollte das Herunterladen wieder funktionieren. Optional könntest du auch /home/kamerabilder so flaggen. im Blockly musst du natürlich auch mit Ergebnis anhaken und das Debug da dann rein

                      1 Reply Last reply Reply Quote 0
                      • F
                        fastfoot @ChrisPrefect last edited by

                        @chrisprefect noch eine Möglichkeit als iobroker zu agieren wäre die Installation des Terminaladapters

                        ChrisPrefect 1 Reply Last reply Reply Quote 1
                        • ChrisPrefect
                          ChrisPrefect @fastfoot last edited by

                          @fastfoot Es müsste doch auch so gehen? Ich bin ja nicht der Erste, der Bilder per Telegram verschickt? Wie kann ich rausfinden, was genau am exec-command nicht funktioniert?

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @ChrisPrefect last edited by

                            @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                            @fastfoot Es müsste doch auch so gehen? Ich bin ja nicht der Erste, der Bilder per Telegram verschickt? Wie kann ich rausfinden, was genau am exec-command nicht funktioniert?

                            indem du es als iobroker ausführst und dir die Ausgabe von wget anschaust. Aus Blockly bist du immer der user iobroker. Du hast ja noch das Debug vom exec, wget muss ja was melden, aber nicht dass -q die Ausgabe unterdrückt, weiss ich nicht

                            ChrisPrefect 1 Reply Last reply Reply Quote 0
                            • ChrisPrefect
                              ChrisPrefect @fastfoot last edited by ChrisPrefect

                              @fastfoot Da kommt leider nichts raus. Oder mache ich das falsch?

                              5000c31e-159a-4604-808d-90feee9b31fb-image.png

                              .
                              .

                              Ich habe mir das Blockly-Skript mal als Code angeschaut. Kann es sein, dass das irgendwie falsch escapet ist?

                              F 2 Replies Last reply Reply Quote 0
                              • F
                                fastfoot @ChrisPrefect last edited by fastfoot

                                @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                                @fastfoot Da kommt leider nichts raus. Oder mache ich das falsch?

                                5000c31e-159a-4604-808d-90feee9b31fb-image.png

                                so passt es. probiere mal noch mit -vd, sollte irgendwas bringen. Ansonsten sehen warum su nicht funktioniert

                                ChrisPrefect 1 Reply Last reply Reply Quote 1
                                • F
                                  fastfoot @ChrisPrefect last edited by fastfoot

                                  @chrisprefect Unsinn gelöscht

                                  ChrisPrefect 1 Reply Last reply Reply Quote 1
                                  • ChrisPrefect
                                    ChrisPrefect @fastfoot last edited by

                                    @fastfoot OMG !!! Ich musste statt einfacher Anführungszeichen doppelte nehmen für die URL! ARGH!!! Und das hat mich jetzt sicher 3 Stunden Arbeit gekostet... Jetzt geht es!

                                    Glasfaser 1 Reply Last reply Reply Quote 0
                                    • ChrisPrefect
                                      ChrisPrefect @fastfoot last edited by

                                      @fastfoot Danke für die Hilfe!

                                      Bitte noch das Bild im Zitat löschen in deiner vorletzen Antwort, da sind noch Logins sichtbar. Merci!

                                      1 Reply Last reply Reply Quote 0
                                      • Glasfaser
                                        Glasfaser @ChrisPrefect last edited by

                                        @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                                        OMG !!! Ich musste statt einfacher Anführungszeichen doppelte nehmen für die URL ...
                                        Und das hat mich jetzt sicher 3 Stunden Arbeit gekostet.

                                        Das habe ich dir ganz oben schon Mitgeteilt, inkl. einem Beispiel !!!!!

                                        @chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:

                                        @glasfaser Ähm, nein ich bin eben genau NICHT root im Blockly-Kontext.

                                        Es ging um deine Sitzung root in der VM per Putty , was du oben in deine Screenshots gezeigt hast !

                                        ChrisPrefect 1 Reply Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @fastfoot last edited by Glasfaser

                                          @fastfoot

                                          das mit dem "root" ,war wegen seiner root Putty Sitzung 😉
                                          .... nicht wegen seinem Blockly

                                          1 Reply Last reply Reply Quote 0
                                          • ChrisPrefect
                                            ChrisPrefect @Glasfaser last edited by

                                            @glasfaser

                                            Das habe ich dir ganz oben schon Mitgeteilt, inkl. einem Beispiel !!!!!

                                            Ähm, ne, eben leider nicht 😄 Du hast gesagt, ich soll den Pfad einfassen in Anführungszeichen. Das wars aber nicht. 😉
                                            Die URL musste in doppelte statt einfache Anführungszeichen eingefasst werden.

                                            Es ging um deine Sitzung root in der VM per Putty , was du oben in deine Screenshots gezeigt hast !

                                            In Putty hatte ich den Befehl auf dem Blockly-Skript 1:1 übernommen zum Testen. Deshalb ist dort das sudo schon korrekt 😉

                                            Aber auch merci für die Hilfe! 😄

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            863
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            3
                                            22
                                            1916
                                            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