NEWS
[gelöst] wget funktioniert innerhalb Blockly-Skript nicht
-
@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
-
@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?
-
@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.
-
@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?
-
@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
- ein
-
@fastfoot Merci für die Tipps.
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:
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?
-
@chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:
@fastfoot Merci für die Tipps.
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:
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?
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
-
@chrisprefect noch eine Möglichkeit als iobroker zu agieren wäre die Installation des Terminaladapters
-
@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?
-
@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
-
@fastfoot Da kommt leider nichts raus. Oder mache ich das falsch?
.
.Ich habe mir das Blockly-Skript mal als Code angeschaut. Kann es sein, dass das irgendwie falsch escapet ist?
-
@chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:
@fastfoot Da kommt leider nichts raus. Oder mache ich das falsch?
so passt es. probiere mal noch mit -vd, sollte irgendwas bringen. Ansonsten sehen warum su nicht funktioniert
-
@chrisprefect Unsinn gelöscht
-
@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!
-
@fastfoot Danke für die Hilfe!
Bitte noch das Bild im Zitat löschen in deiner vorletzen Antwort, da sind noch Logins sichtbar. Merci!
-
@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 !
-
das mit dem "root" ,war wegen seiner root Putty Sitzung
.... nicht wegen seinem Blockly -
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!
-
@glasfaser sagte in wget funktioniert innerhalb Blockly-Skript nicht:
@chrisprefectNimm 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"
@chrisprefect sagte in wget funktioniert innerhalb Blockly-Skript nicht:
Ähm, ne, eben leider nicht
Sorry halt auf die schnelle falsch ausgedrückt ,
deshalb habe ich es dir als Code aber richtig dargestellt, inkl. deinem Dokumenten Pfad so das du Copy&Past machen kannst .Aber Egal .... hauptsache es funktioniert jetzt bei dir.
Dann setzte das Thema auf [gelöst]
-
@glasfaser Ah, ja, ich hatte nur den Pfad und nicht die URL angeschaut. Ich bin gar nicht auf die Idee gekommen, dass Blockly die einfachen Anführungszeichen nicht richtig escapet. Das ist doch ein Bug? Blockly sollte doch eigentlich so Fehlertolerant sein, dass sowas eben genau nicht passiert. Und es sollte irgendwelche Debuggin-Tools für den Fall geben. Ich habe auf keine Weise eine Fehlermeldung generieren können.