created Zone Manager Class

This commit is contained in:
schrom01
2022-08-15 23:58:07 +02:00
parent 62a17bc63d
commit f1d73676f5
7 changed files with 204 additions and 52 deletions
+3 -3
View File
@@ -66,18 +66,18 @@
<tr>
<td class="icon">
<span class="outer_dot">
<span class="inner_icon {{ 'dot_green' if(zone.actualValue >= zone.setValue) else 'dot_red' }}"></span>
<span class="inner_icon {{ 'dot_green' if(zone.actualHumidity >= zone.desiredHumidity) else 'dot_red' }}"></span>
</span>
</td>
<td class="property">{{ translater.getTranslation("actual humidity") }}:</td>
<td class="value">{{ zone.actualValue}}</td>
<td class="value">{{ zone.actualHumidity}}</td>
</tr>
<tr>
<td class="icon">
</td>
<td class="property">{{ translater.getTranslation("desired humidity") }}:</td>
<td class="value">{{ zone.setValue }}</td>
<td class="value">{{ zone.desiredHumidity }}</td>
</tr>
</tbody>
</table>
+42 -22
View File
@@ -1,15 +1,15 @@
from flask import Flask, render_template, request, redirect, url_for
from flask_navigation import Navigation
from FileIO import loadZones
from Translater import Translater, Language
from Zone import getZone
from Webserver.Translater import Translater, Language
from Zone import Zone
def startWebserver(port, zoneManager):
translater_EN = Translater(Language.ENGLISH)
translater_DE = Translater(Language.GERMAN)
translater = translater_EN
def startWebserver(port, translater, zones):
app = Flask("Bewässerungssystem")
app = Flask("Bewässerungssystem", template_folder="Webserver/templates", static_folder="Webserver/static")
nav = Navigation(app)
nav.Bar('top', [
@@ -17,31 +17,56 @@ def startWebserver(port, translater, zones):
nav.Item(translater.getTranslation('irrigation zones'), 'showZones'),
nav.Item(translater.getTranslation('blocking times'), 'showTimes'),
nav.Item(translater.getTranslation('system settings'), 'showSystem')
#nav.Item('Gfg', 'gfg', {'page': 5}), #(example with pages)
# nav.Item('Gfg', 'gfg', {'page': 5}), #(example with pages)
])
#Example Route with pages:
#@app.route('/gfg/<int:page>')
#def gfg(page):
# Example Route with pages:
# @app.route('/gfg/<int:page>')
# def gfg(page):
# return render_template('gfg.html', page=page)
@app.route('/')
def startPage():
return redirect(url_for('showDashboard'))
@app.route('/action/<command>/<index_str>/<value_str>')
def executeAction(command=False, index_str=False, value_str=False):
sucess = False
index = int(index_str)
value = int(value_str)
match command:
case "switch_zone_on":
if (index and value):
zoneManager.switchZoneIndexState(zoneIndex=index, state=True, duration=value)
case "switch_zone_off":
if (index and value):
zoneManager.switchZoneIndexState(zoneIndex=index, state=False, duration=value)
case "switch_zone_mode":
if (index and value):
zone = zoneManager.getZone(index)
match value:
case "automatic":
zone.switchMode(autoMode=True)
case "manual":
zone.switchMode(autoMode=False)
case "set_desired_humidity":
if (index and value):
zone = zoneManager.getZone(index)
zone.desiredHumidity = value
return render_template('action.html', translater=translater, zones=zoneManager.zones)
@app.route('/dashboard')
def showDashboard():
return render_template('dashboard.html', translater=translater, zones=zones)
return render_template('dashboard.html', translater=translater, zones=zoneManager.zones)
@app.route('/zones')
@app.route('/zones/<zoneNumber>')
def showZones(zoneNumber=False):
if(zoneNumber):
return render_template('zone.html', translater=translater, zone=getZone(zones, zoneNumber))
if (zoneNumber):
return render_template('zone.html', translater=translater, zone=zoneManager.getZone(zoneNumber))
else:
return render_template('zones.html', translater=translater, zones=zones)
return render_template('zones.html', translater=translater, zones=zoneManager.zones)
@app.route('/times')
def showTimes():
@@ -52,8 +77,3 @@ def startWebserver(port, translater, zones):
return render_template('system.html', translater=translater)
app.run(debug=True, port=port)
if __name__ == "__main__":
zones = loadZones()
translater = Translater(Language.ENGLISH)
startWebserver(80, translater, zones)