NEWS
SOLVED [gelöst] Nach Umzug auf NUC funktioniert "wget --output-document" nicht mehr
-
ähm...
die HTTP Anfrage aus dem Screenshot sieht doch aber anders aus als die aus dem WGET Befehl!?
Welchen Befehl genau hast du denn jetzt abgesetzt?
-
Ich habe diesen Befehl eingegeben, der Link ist ein anderer weil es eine andere Kamera ist, über blockly geht aber auch dieser nicht.
wget --output-document /opt/xxx.jpeg http://root:xxx@192.168.178.xxx/cgi-bin/currentpic.cgi
Fakt ist dieser link geht in der Konsole und in blockly nicht.
wget --output-document /opt/Eingang.jpg http://1:xxx@192.168.178.60/tmpfs/snap.jpg
-
Dann kommen wir nur mit logs weiter.
Kannst du mal in das Blockly bei dem wget noch die option "-v" einbauen.
Bitte der einfachheitshalber erstmal bei einer Kamera bleiben, verwirrt sonst nur.
-
Sorry ich bleib jetzt bei der einen.
Ist es so mit dem -v richtig? In den Logs sehe ich dazu nicht viel. Macht hier nach dem exec Block ein debug Block Sinn?
Mit logs und debug kenne ich mich leider gar nicht aus, habe das bis jetzt noch nicht gebraucht...
-
Kannst direkt im Baustein das Loglevel auf Debug stellen. Sollte eigentlich reichen.
Probiere das mit dem "-v" mal direkt in der Konsole.... meine wget Zeiten sind etwas eingerostet... früher hieß das mal "verbose" und lieferte einige Infos, vielleicht mittlerweile anders.
-
Ok danke, werde ich nachher ausprobieren und berichten...
-
kannst auch mal "-d" versuchen. Ist Debug bei wget.
-
-v habe ich jetzt ausprobiert in der Konsole, der Befehl wird auch ausgeführt bringt aber nicht mehr Infos.
Dann habe ich im Skript debug aktiviert und unten in den Logs taucht nun eine Warnung auf sobald ich speichere. Kannst du mir sagen was genau die bedeutet?
-d kann ich erst nachher testen...
-
OK.
Musst wohl scheinbar doch einen Debug Baustein verwenden. Wenn du im Baustein auf Debug stellst scheint er die Befehle nicht auszuführen. Keine Ahnung ob das so gewollt ist.
-
Also ich hatte nicht den Block auf debug gestellt sondern oben rechts das ganze Skript.
Wenn ich im exec block bei loglevel debug eingebe passiert nichts. Muss ich jetzt in die klammer die jetzt gekommen ist noch einen debug block hinzufügen?
-
Wenn du das im Javascript Editor umgestellt hast ist es normal das nichts ausgeführt wird.
Im Exec block hätte ich eine Ausgabe im log erwartet. Kannst zur Sicherheit mal einen extra Debug block einfügen.
Welche Klammer die extra gekommen ist ?
-
Mittlerweile bin ich der Meinung dass es vielleicht etwas mit der Version von der Javascript Instanz zu tun hat.
Installiert auf dem alten raspberry pi Version 3.6.4
Installiert auf neuen NUC Version 4.1.8 (bei verfügbar steht aber nur 3.6.5)Jetzt bin ich am überlegen ob ich ein downgrade machen soll, oder nicht... Im Moment mache ich es so als Übergangslösung, dass die Bilder von den Kameras vom alten pi gespeichert und von dort aus per telegram verschickt werden.
Ist einer der beiden Varianten richtig? Mit der Klammer meinte ich wenn man den Debug Block wie auf dem unteren Beispiel in den exec Block einfügt.
-
ich habe den Fehler gefunden!!!!
Es war "eigentlich" ganz einfach. Und zwar hat die Javascript Instanz keine Berechtigung in dem Ordner /opt/ etwas zu schreiben. Wenn ich hingegen den Ordner /home/iobroker verwende, dann funktioniert der exec Befehl.
Es liegt wohl daran das die Instanz mit dem user iobroker läuft und nicht mit root. Aber egal bin auf jeden Fall happy das ich den Grund gefunden habe, trotzdem Danke an alle!
-
Danke für die Info, das ist gut zu wissen wenn ich mal neu installieren muss.
-
Hi,
ich habe genau das gleiche Problem.
Nach Umzug auf den NUC kann ich kein wget mehr ausführen.
Auch das Ändern des Verzeichnisses hilft nicht.Ich betreibe Win10 aber nativ auf dem NUC.
Eine Fehlermeldung bekomme ich im log nicht.Javascript Version ist 4.1.16
-
Auch ich habe meine Lösung selbst gefunden
wget war gar nicht installiert...Einfach nachinstallieren, wie hier.
-
Hallo zusammen,
jetzt muß ich doch mal fragen. Mir ist jetzt mal aufgefallen, dass mir kein Bild mehr gesendet wird, wenn es klingelt. Hat aber immer funktioniert. Da ich nicht wirklich drauf geachtet habe kann ich auch nicht 100% sagen was in der letzten Zeit passiert ist. Ich habe aber letztens auf Javascript 6.0.3 geupdatet, falls das was zu sagen hat.
Blockly:
wget --output-document /opt/iobroker/iobroker-data/files/vis.0/Viehstiege/img/IPCam/Klingel.jpg "http://xxx.xxx.x.xxx:uuuuu/picture/1/current/"
Sende ich den "wget" manuell über die Console funktioniert es so wie es soll. Scheint also als ob im Blockly da was nicht läuft, aber ich sehe einfach nicht was.
Zu dem oben geschriebenen:
- wget ist installiert und funktioniert
- Ordner /home/iobroker/ bringt selbes negatives Ergebnis
- doppelte Anführungszeichen habe ich ebenfalls drin .. aber auch nur weil ich das hier gelesen habe. Hatte vorher immer die einfachen drin und hat auch funktioniert.
Hoffe jemand hat hier eine Idde.
Danke -
@x-oli sagte in [gelöst] Nach Umzug auf NUC funktioniert "wget --output-document" nicht mehr:
/opt/iobroker/iobroker-data/files/vis.0/Viehstiege/img/IPCam/Klingel.jpg
Teste mal hiermit :
-
url_snapshot = 'http://xxx.xxx.x.xxx:uuuuu/picture/1/current/'; on({id: '0_userdata.0.Trigger.Klingel', val: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; await etwas_tun(); }); async function etwas_tun() { var fs = require('fs'); request.get({url: url_snapshot, encoding: 'binary'}, function (err, response, body) { fs.writeFile('/opt/iobroker/iobroker-data/files/vis.0/Viehstiege/img/IPCam/Klingel.jpg', body, 'binary', function(err) { if (err) { console.error(err); } else { console.log('Eingang sent'); sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/files/vis.0/Viehstiege/img/IPCam/Klingel.jpg', caption: 'Es hat geklingelt !'}); } }); }); }
Ändert leider nichts. Wie wird das Script denn ausgelöst ? Mein Trigger muß ja irgendwo auf "true" geschalten werden ? Für mich wäre es einfacher es im Blockly zu verstehen
Zumal das ja definitiv alles schon funktioniert hat.
-
@x-oli also, ein generelles Problem kann es sein wenn du den Befehl auf Console von Hand getestet hast.
Dann erstellst du die Zieldatei unter einem anderen Benutzer als dein Blockly Skript. Das nutzt nämlich den Benutzeriobroker
und kann die Datei dann ggf. nicht überschreiben. Also Datei einmal löschen.
Zudem würde ich solche Dateien immer eher nach/tmp/
schreiben, und nicht in einen der ioBroker / VIS Ordner (die ignorieren die Datei doch wenn die nicht "sauber" hochgeladen/eingebunden wird)Ich nutze übrigends in meinem Blockly mit ähnlichen Aufruf keine
"
sondern'