import tinyweb
from machine import Pin
from machine import reset
from time import sleep
import json
settings=json.loads(''.join(open('settings.json').readlines()))
# Create web server application
app = tinyweb.webserver()
# Hardware Setup, e.g. Garage Door Remote
Button={}
for name in settings["buttons"].keys():
Button[name]=Pin(settings["buttons"][name]["pin"],Pin.OUT)
Button[name].off()
# Index page
@app.route('/')
async def index(request, response):
# Start HTTP response with content-type text/html
await response.start_html()
# Send actual HTML page, in this example with three buttons
await response.send('''
Button number %s pushed for %s seconds. Go back.\n'%(nr,settings['buttons'][str(nr)]['delay']))
def Write_Settings():
File=open('settings.json','w')
File.write(json.dumps(settings))
File.close()
#@app.route('/config',save_headers=[])
class config():
def get(self,data):
SanitizedSettings=settings.copy()
if 'password' in SanitizedSettings:
SanitizedSettings['password']='*not displayed*'
if 'AP-password' in SanitizedSettings:
SanitizedSettings['AP-password']='*not displayed*'
return SanitizedSettings
def post(self, data):
print (data)
for Setting in data.keys():
settings[Setting]=data[Setting]
print("Setting %s to %s"%(Setting,data[Setting]))
Write_Settings()
return data
def delete(self,data):
for Setting in data.keys():
settings.pop(Setting)
Write_Settings()
return data
def run():
print ("running app")
app.add_resource(config,"/config")
app.run(host='0.0.0.0', port=80)