NEWS
exec Rückgabewerte aus Python Script nutzen
-
Hallo Zusammen,
ich versuche über ein einfaches Script den Rückgabewert aus einem Python Script zu nutzen.
Das Blocky Script sieht wie folgt aus:
Das Python Script:
#!/usr/bin/python3 # import packages import cv2 from pyzbar import pyzbar # define path path = "free-qr-code-scanner-20340-3.jpg" # load image image = cv2.imread(path) # find QR and barcodes within the image barcodes = pyzbar.decode(image) for barcode in barcodes: bc = barcode.data.decode('utf8') print (bc)In der Konsolte bekomme ich meine Ausgabe:
pi@raspberrypi:/home/iobroker/qr $ sudo python3 /home/iobroker/qr/qr.py MiauDie Rechte für Python etc. sind richtig gesetzt. Denn wenn ich den Code im Script bspw. auf eine einfach Print-Ausgabe anpasse:
print ("Test123")bekomme ich den Rückgabewert.
Hier die Ausgaben in der Konsole:
01:42:04.025 info javascript.0 (8965) Stop script script.js.standard.Barcode.Test1 01:42:26.987 info javascript.0 (8965) Start javascript script.js.standard.Barcode.Test1 01:42:26.995 info javascript.0 (8965) script.js.standard.Barcode.Test1: exec: python3 /home/iobroker/qr/qr.py 01:42:27.019 info javascript.0 (8965) script.js.standard.Barcode.Test1: registered 0 subscriptions and 0 schedules 01:42:30.098 info javascript.0 (8965) script.js.standard.Barcode.Test1: setForeignState(id=owndata.test.qr, state="") 01:42:37.431 info javascript.0 (8965) Stop script script.js.standard.Barcode.Test1Für den einfachen print():
01:57:20.997 info javascript.0 (8965) Start javascript script.js.standard.Barcode.Test1 01:57:21.000 info javascript.0 (8965) script.js.standard.Barcode.Test1: exec: python3 /home/iobroker/qr/qr2.py 01:57:21.012 info javascript.0 (8965) script.js.standard.Barcode.Test1: registered 0 subscriptions and 0 schedules 01:57:21.075 info javascript.0 (8965) script.js.standard.Barcode.Test1: setForeignState(id=owndata.test.qr, state="Test123\n")Habe nun versucht alle möglichen Kodierungen etc. anzupassen. Leider komme ich nicht auf die Lösung.
Das Script scannt einen Barcode - die Rückgabe in der Konsole dauert ca. 3-4 Sekunden.
Hat jemand eine Idee wie ich das Python Script und die Ausgabe anpassen muss um die Ergebnisse einlesen zu können?
-
Hallo Zusammen,
ich versuche über ein einfaches Script den Rückgabewert aus einem Python Script zu nutzen.
Das Blocky Script sieht wie folgt aus:
Das Python Script:
#!/usr/bin/python3 # import packages import cv2 from pyzbar import pyzbar # define path path = "free-qr-code-scanner-20340-3.jpg" # load image image = cv2.imread(path) # find QR and barcodes within the image barcodes = pyzbar.decode(image) for barcode in barcodes: bc = barcode.data.decode('utf8') print (bc)In der Konsolte bekomme ich meine Ausgabe:
pi@raspberrypi:/home/iobroker/qr $ sudo python3 /home/iobroker/qr/qr.py MiauDie Rechte für Python etc. sind richtig gesetzt. Denn wenn ich den Code im Script bspw. auf eine einfach Print-Ausgabe anpasse:
print ("Test123")bekomme ich den Rückgabewert.
Hier die Ausgaben in der Konsole:
01:42:04.025 info javascript.0 (8965) Stop script script.js.standard.Barcode.Test1 01:42:26.987 info javascript.0 (8965) Start javascript script.js.standard.Barcode.Test1 01:42:26.995 info javascript.0 (8965) script.js.standard.Barcode.Test1: exec: python3 /home/iobroker/qr/qr.py 01:42:27.019 info javascript.0 (8965) script.js.standard.Barcode.Test1: registered 0 subscriptions and 0 schedules 01:42:30.098 info javascript.0 (8965) script.js.standard.Barcode.Test1: setForeignState(id=owndata.test.qr, state="") 01:42:37.431 info javascript.0 (8965) Stop script script.js.standard.Barcode.Test1Für den einfachen print():
01:57:20.997 info javascript.0 (8965) Start javascript script.js.standard.Barcode.Test1 01:57:21.000 info javascript.0 (8965) script.js.standard.Barcode.Test1: exec: python3 /home/iobroker/qr/qr2.py 01:57:21.012 info javascript.0 (8965) script.js.standard.Barcode.Test1: registered 0 subscriptions and 0 schedules 01:57:21.075 info javascript.0 (8965) script.js.standard.Barcode.Test1: setForeignState(id=owndata.test.qr, state="Test123\n")Habe nun versucht alle möglichen Kodierungen etc. anzupassen. Leider komme ich nicht auf die Lösung.
Das Script scannt einen Barcode - die Rückgabe in der Konsole dauert ca. 3-4 Sekunden.
Hat jemand eine Idee wie ich das Python Script und die Ausgabe anpassen muss um die Ergebnisse einlesen zu können?
Folgende Error-Meldung habe ich:
javascript.0 (8965) script.js.standard.Barcode.Test1: Error: Command failed: python3 /home/iobroker/qr/qr.py Traceback (most recent call last): File "/home/iobroker/qr/qr.py", line 12, in <module> barcodes = pyzbar.decode(image) File "/usr/local/lib/python3.7/dist-packages/pyzbar/pyzbar.py", line 181, in decode pixels, width, height = _pixel_data(image) File "/usr/local/lib/python3.7/dist-packages/pyzbar/pyzbar.py", line 147, in _pixel_data pixels, width, height = image TypeError: cannot unpack non-iterable NoneType objectObwohl das Script in der Konsole funktioniert.
Jemand eine Idee?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden