ich habe wie ihr in der Überschrift schon lesen könnt ein kleine Problem bei meinem Python Skript, welches auf mein Raspberry Pi laufen soll. Dies ist im finalen Stadium dazu gedacht, ein Relay über die GPIO Pins anzusteuern. Mein Problem liegt jetzt darin, dass mir von jinja2 gesagt wird, dass es das Template main.html, welches im gleichen Ordner liegt, angeblich nicht finden kann.
Meine Fehlermeldung in Putty:
* Running on http://192.168.2.109:80/
* Restarting with reloader
192.168.2.103 - - [27/Dec/2013 11:23:04] "GET /11/0 HTTP/1.1" 500 -
Traceback (most recent call last):
[...hier stand mal was, was vermutlich überflüssig für dieses Thema ist...]
TemplateNotFound: main.html
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=source.png HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -
Mein Skript habe ich schon mit dem aus dem Buch Raspberry Pi für Einsteiger (http://www.amazon.de/Raspberry-f%C3%BCr ... ry+pi+buch) verglichen (man darf es auch abschreiben und an persönliche Bedürfnisse anpassen nennen).
Code: Alles auswählen
import RPi.GPIO as GPIO
from flask import Flask, render_template, request
app = Flask(__name__)
GPIO.setmode(GPIO.BOARD)
pins = {
11:{'name':'LED1','state':GPIO.HIGH},
13:{'name':'Lampe','state':GPIO.HIGH},
15:{'name':'Leuchtmittel','state':GPIO.HIGH}
}
for pin in pins:
GPIO.setup(pin,GPIO.OUT)
GPIO.output(pin,GPIO.HIGH)
@app.route("/")
def main():
for pin in pins:
pins[pin]['state'] = GPIO.input(pin)
templateData = {
'pins':pins
}
return render_template('main.html',**templateData)
@app.route("/<changePin>/<action>")
def action(changePin, action):
changePin = int(changePin)
deviceName = pins[changePin]['name']
if action == "1":
GPIO.output(changePin, GPIO.LOW)
message = deviceName + "eingeschaltet."
if action == "0":
GPIO.output(changePin,GPIO.HIGH)
message = deviceName + "ausgeschaltet."
for pin in pins:
pins[pin]['state'] = GPIO.input(pin)
templateData = {
'message':message,
'pins':pins
}
return render_template('main.html', **templateData)
if __name__ == "__main__":
app.run(host='192.168.2.109', port=80, debug=True)