Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
Ich möchte um Rat fragen, damit ich meinen Loxberry nicht kompromittiere.
Ich habe ein Skript, das meinen Router nach Statistiken durchsuchen sollte. Ich glaube, es sollte eine Textdatei in das Installationsverzeichnis zurückgeben.
Ich habe die benötigten Bibliotheken installiert. Das Skript läuft erfolgreich auf dem Loxberry vom Terminal aus. Es gibt die erforderlichen Statistiken über die Internet-Upload-Geschwindigkeit, Download-Geschwindigkeit usw. zurück. Bild angehängt.
Ich habe auch 'HTTP-Antwort speichern' als -
/user/common/answer.txt
Ich kann die virtuelle Ausgabe auslösen und answer.txt in einem Browser öffnen.
Der angezeigte Text ist der Inhalt des Python-Skripts.
Ist das absichtlich so? Habe ich eine falsche Annahme getroffen, was 'HTTP-Antwort speichern' macht?
Ich bemerke aus Zeile 80 des Skripts, es lautet -
# Save and open in default text editor if you are on windows
if sys.platform.startswith("win"):
outfile = os.path.join(os.environ['TEMP'], 'modemstats.txt')
out = open(outfile, 'w+')
out.write(str(data))
out.close()
os.startfile(outfile)
Ja, das ist in sofern normal, dass Du von der console aus ja mit vorgesetztem python <filename> das Programm angibst mit welchem die Datei xxx.py verarbeitet wird. Wenn Du im Browser einfach ein python Script vom Webserver abrufst und der Webserver gar nicht weiß was er damit machen soll, liefert er halt das Script als solches aus. Du müsstest dem Apache (Webserver auf dem Loxberry) erst einmal beibringen, dass er xxx.py Dateien mit python ausführen und das Ergebnis dann streamen soll. Am Apache auf dem Loxberry herumzuschrauben ist vllt keine gute Idee. Als workarround vllt aus einer php Datei aus das python über die shell ausführen und so das Ergebnis zurückliefern.
Ich würde das Ergebnis auch nicht speichern, sondern den virtuellen HTTP-Eingang nutzen und die Werte dann direkt verarbeiten.
Das Python Script kommt ohne shebang auch in legacy. Dann legst Du im MiniServer einen virtuellen http Eingang an mit der URL zur php-Datei. Im http Eingang legst Du die Befehlserkennungen so an wie im UDP und schon gehts.
Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)
Ich habe mir nun mal Eure Lösung genauer angeschaut. Das Problem ist nicht, dass python über den Apache nicht funktioniert. Das Problem ist die Ausgabe des Python-Scripts. Über den Webserver muss zwingend der Content-Type angegeben werden, was das Python-Script nicht tut. Eine Möglichkeit ohne PHP und Bashscript wäre ...
Das Python Script in .cgi umbenennen, shebang hinzufügen, Rechte korrekt setzen und nach der shebang print("Content-type: text/html\n\n") einfügen.
Dann sollte das Script auch direkt aufrufbar sein.
Oder per Bash script mit senden an UDP ... Möglichkeiten gibt es genug
Gruß Sven
Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)
Danke Svethi für deine Hilfe, aber ich konnte es immer noch nicht zum Laufen bringen.
Ich habe so viel Zeit damit verbracht, dass ich jetzt eine Pause einlegen muss. Ich werde in ein paar Wochen mit "frischen Augen" darauf zurückkommen und erneut angreifen.
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar