NEWS
[gelöst] Blockly - Exec Output immer leer
-
@liv-in-sky also wo könnte der Fehler liegen?
-
@denzel1994 kommt was zurück, wenn du das loglevel mal einschaltest im exec.block
das setze result auf hast du deaktiviert ?
-
@denzel1994 wenn du nur mal den ls befehl eingibst - kommt da ein result zurück ?
-
@liv-in-sky Jep, dann kriege ich einen Output.
javascript.0 (9514) script.js.Automationen.Büro.Skript_2: bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
EDIT:
Hab jetzt mal noch die error Variable mit ins Spiel gebracht. (Siehe Screenshot). Die result Variable bleibt leer und error meldet keine Fehler zurück "null". -
@denzel1994 dann liegt es evtl an der art, wie der befehl ausgibt
kannst du auf der console eine pipe verwenden und zb. den awk befehl ausführen und darin in einer zeile suchen
z.b
ps5-wake -vP .... | awk ' NR == 3 {print "$1"}'
-
@liv-in-sky Wie müsste der Output da aussehen?
In der Konsole als Pi bekomme ich den selben Output wie vorher auch:
pi@ioBroker:~ $ /home/pi/ps5-wake/ps5-wake -vP -H 192.168.10.8 | awk ' NR == 3 {print "$1"}' Device found: PS5-Lars [PS5/78C881D5C5AD]: Home Screen
Im Terminal-Adapter in ioBroker bekomme ich:
/opt/iobroker$ /home/pi/ps5-wake/ps5-wake -vP -H 192.168.10.8 | awk ' NR == 3 {print "$1"}' Scanning awk: cannot open == (No such file or directory) Device found: PS5-Lars [PS5/78C881D5C5AD]: Home Screen
Und in Blockly bleibt der Output weiterhin leer:
-
ich denke das problem ist, dass scanning ... etwas macht und das exec blockly meint, es sei fertig
gib mal - in der console - zum test
dein befehl | grep "Device" | awk '{print $1}'
ein
-
@denzel1994 sagte in Blockly - Exec Output immer leer:
ps5-wake -vP
du könntest auch mal -j testen - da soll ein json rauskommen als result - vielleicht funktioniert das
ps5-wake -vPj
-
@liv-in-sky sagte in Blockly - Exec Output immer leer:
und das exec blockly meint, es sei fertig
wieso?
wenn der user iobroker (der ja auch beim test über die ioB-Konsole der user ist) kein Zugriffsrecht hat, kommt: Datei nicht vorhanden
eben auch im Exec, und daher result = null -
@homoran ja- aber im terminal läuft der befehl - ps5-wake ist halt ein spezielles c-script. evtl ist das ein thema
evtl könnte man ein batch script machen und mal sehen, was da dabei ruskommt, wenn man das batch script dann über blockly ausführt
-
@liv-in-sky sagte in Blockly - Exec Output immer leer:
aber im terminal läuft der befehl
aber unter dem user pi!
-
@homoran nee - das ist ein iobroker terminal adapter - da wird auch der user iobroker genutzt - also nicht die console über putty oder so
-
Da steht doch
@denzel1994 sagte in Blockly - Exec Output immer leer:cannot open == (No such file or directory)
so sieht es auch bei fehlenden Rechten aus
btw: ist exec freigegeben im js-Adapter?
-
das könnte aber der awk befehl sein - vielleicht mnag er den auf diese art nicht - der output des ps5-wake kommt aber unter dieser fehler zeile
-
@liv-in-sky sagte in Blockly - Exec Output immer leer:
das könnte aber der awk befehl sein
klar, aber es könnten auch fehlende Rechte sein.
Das war alles, worauf ich hinweisen wollte -
@homoran sagte in Blockly - Exec Output immer leer:
ist exec freigegeben im js-Adapter?
ich denke schon, den angeblich funktioniert der befehl - der output zur weiterverarbeitung ist das problem - der kommt nicht zurück (result)
-
ich denke - weiß es aber nicht sicher - es scheint dieses c-programm zu sein - das organisiert den output - das ganze reagiert dann anders als normale linux befehle
-
@denzel1994 evtl würde es funktionieren, wenn man den output in ein file schreibt und dann etwas später das file ausliest und an iobroker über curl und den simple-api adapterl sendet
-
ps5-wake -vPj
klappt leider nicht.
dein befehl | grep "Device" | awk '{print $1}'
klappt auch nicht. Bleibt weiterhin leer.
In eine Datei schreiben könnte tatsächlich funktionieren. Könntest du mir da etwas Hilfestellung mit den entsprechenden Befehlen geben? Am besten wäre es ja die im selben Verzeichnis, wie das Programm abzuspeichern. In der Regel sucht er nicht länger als 5 Sekunden und gibt dann ggf. ein "No device found" aus. Also wäre das auslesen der Datei nach 6 Sekunden sicher möglich.
Wie würde ich das jetzt am besten über Blockly realisieren?
-
@denzel1994 du musst natürlich deinen ganzen befehl mit "j" angeben - mit ip usw
der output würde mich interessiern bevor wir was mit file machen