MD500_Pilot

Untitled

Apr 21st, 2020
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.28 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. import sys
  4. sys.path.append('/var/www/gardenpi_control/gardenpi/utilities')
  5. sys.path.append('/var/www/gardenpi_control/gardenpi')
  6. import neptune
  7. from flask import render_template, redirect, url_for, request
  8. from gardenpi import app
  9. from gardenpi.forms import JobForm
  10. import time
  11. from datetime import datetime
  12.  
  13.  
  14.  
  15. @app.route('/')
  16. def gardenpi():
  17.     any_zones_running = neptune.any_zones_running()
  18.     return render_template('gardenpi_index.html',
  19.                            any_zones_running = any_zones_running)
  20.  
  21.  
  22. @app.route('/zone_control')
  23. def zone_control():
  24.     current_zones = ['zone1', 'zone2', 'zone3', 'zone4', 'zone5', 'zone6']
  25.     zone_running_data = {}
  26.     for zone in current_zones:
  27.         zone_running_data[zone] = neptune.is_this_zone_running(zone)
  28.  
  29.     return render_template('zone_control.html',
  30.                            **zone_running_data)
  31.  
  32. @app.route('/zone1')
  33. def zone1():
  34.     any_zones_running = neptune.any_zones_running()
  35.     is_zone_enabled = neptune.zone_enabled('zone1')
  36.     is_zone1_running = neptune.is_this_zone_running('zone1')
  37.     return render_template('zone_one.html',
  38.                            zone_enabled = is_zone_enabled,
  39.                            is_zone_running = is_zone1_running,
  40.                            any_zones_running = any_zones_running)
  41.  
  42. @app.route('/zone2')
  43. def zone2():
  44.     any_zones_running = neptune.any_zones_running()
  45.     is_zone_enabled = neptune.zone_enabled('zone2')
  46.     is_zone2_running = neptune.is_this_zone_running('zone2')
  47.     return render_template('zone_two.html',
  48.                            zone_enabled = is_zone_enabled,
  49.                            is_zone_running = is_zone2_running,
  50.                            any_zones_running = any_zones_running)
  51.  
  52. @app.route('/zone3')
  53. def zone3():
  54.     any_zones_running = neptune.any_zones_running()
  55.     is_zone_enabled = neptune.zone_enabled('zone3')
  56.     is_zone3_running = neptune.is_this_zone_running('zone3')
  57.     return render_template('zone_three.html',
  58.                            zone_enabled = is_zone_enabled,
  59.                            is_zone_running = is_zone3_running,
  60.                            any_zones_running = any_zones_running)
  61. @app.route('/zone4')
  62. def zone4():
  63.     any_zones_running = neptune.any_zones_running()
  64.     is_zone_enabled = neptune.zone_enabled('zone4')
  65.     is_zone4_running = neptune.is_this_zone_running('zone4')
  66.     return render_template('zone_four.html',
  67.                            zone_enabled = is_zone_enabled,
  68.                            is_zone_running = is_zone4_running,
  69.                            any_zones_running = any_zones_running)
  70. @app.route('/zone5')
  71. def zone5():
  72.     any_zones_running = neptune.any_zones_running()
  73.     is_zone_enabled = neptune.zone_enabled('zone5')
  74.     is_zone5_running = neptune.is_this_zone_running('zone5')
  75.     return render_template('zone_five.html',
  76.                            zone_enabled = is_zone_enabled,
  77.                            is_zone_running = is_zone5_running,
  78.                            any_zones_running = any_zones_running)
  79. @app.route('/zone6')
  80. def zone6():
  81.     any_zones_running = neptune.any_zones_running()
  82.     is_zone_enabled = neptune.zone_enabled('zone6')
  83.     is_zone6_running = neptune.is_this_zone_running('zone6')
  84.     return render_template('zone_six.html',
  85.                            zone_enabled = is_zone_enabled,
  86.                            is_zone_running = is_zone6_running,
  87.                            any_zones_running = any_zones_running)
  88.  
  89. @app.route('/toggle_zone/<zone>')
  90. def toggle_zone(zone):
  91.     is_zone_enabled = neptune.zone_enabled(zone)
  92.     if is_zone_enabled:
  93.         neptune.disable_zone(zone)
  94.         return redirect(url_for(zone))
  95.     else:
  96.         neptune.enable_zone(zone)
  97.         return redirect(url_for(zone))
  98.  
  99.  
  100. @app.route('/toggle_job/<zone>/<job>')
  101. def toggle_job(zone, job):
  102.     neptune.toggle_job(zone, job)
  103.     return redirect(url_for('schedule', zone = zone))
  104.  
  105.  
  106. @app.route('/manual_run/<zone>')
  107. def manual_run(zone):
  108.     neptune.run_zone(zone)
  109.     return redirect(url_for(zone))
  110.  
  111. @app.route('/stop_zone/<zone>')
  112. def stop_zone(zone):
  113.     neptune.stop_zone(zone)
  114.     return redirect(url_for(zone))
  115.  
  116.  
  117.  
  118. @app.route('/schedule/<zone>',methods=['GET','POST'])
  119. def schedule(zone):
  120.     form = JobForm()
  121.     job1_enabled = (neptune.get_schedule_by_zone_job(zone, '1')[0][3])
  122.     job1_start_time = (neptune.get_schedule_by_zone_job(zone, '1')[0][4])
  123.     job1_duration = (neptune.get_schedule_by_zone_job(zone, '1')[0][6])
  124.     job1_monday = (neptune.get_schedule_by_zone_job(zone, '1')[0][8])
  125.     job1_tuesday = (neptune.get_schedule_by_zone_job(zone, '1')[0][9])
  126.     job1_wednesday = (neptune.get_schedule_by_zone_job(zone, '1')[0][10])
  127.     job1_thursday = (neptune.get_schedule_by_zone_job(zone, '1')[0][11])
  128.     job1_friday = (neptune.get_schedule_by_zone_job(zone, '1')[0][12])
  129.     job1_saturday = (neptune.get_schedule_by_zone_job(zone, '1')[0][13])
  130.     job1_sunday = (neptune.get_schedule_by_zone_job(zone, '1')[0][14])
  131.     form.start_hour_job1.data = str(job1_start_time.hour)
  132.     form.start_minute_job1.data = str(job1_start_time.minute)
  133.     form.duration_job1.data = str(job1_duration)
  134.     form.monday_job1.data = job1_monday
  135.     form.tuesday_job1.data = job1_tuesday
  136.     form.wednesday_job1.data = job1_wednesday
  137.     form.thursday_job1.data = job1_thursday
  138.     form.friday_job1.data = job1_friday
  139.     form.saturday_job1.data = job1_saturday
  140.     form.sunday_job1.data = job1_sunday
  141.  
  142.     job2_enabled = (neptune.get_schedule_by_zone_job(zone, '2')[0][3])
  143.     job2_start_time = (neptune.get_schedule_by_zone_job(zone, '2')[0][4])
  144.     job2_duration = (neptune.get_schedule_by_zone_job(zone, '2')[0][6])
  145.     job2_monday = (neptune.get_schedule_by_zone_job(zone, '2')[0][8])
  146.     job2_tuesday = (neptune.get_schedule_by_zone_job(zone, '2')[0][9])
  147.     job2_wednesday = (neptune.get_schedule_by_zone_job(zone, '2')[0][10])
  148.     job2_thursday = (neptune.get_schedule_by_zone_job(zone, '2')[0][11])
  149.     job2_friday = (neptune.get_schedule_by_zone_job(zone, '2')[0][12])
  150.     job2_saturday = (neptune.get_schedule_by_zone_job(zone, '2')[0][13])
  151.     job2_sunday = (neptune.get_schedule_by_zone_job(zone, '2')[0][14])
  152.     form.start_hour_job2.data = str(job2_start_time.hour)
  153.     form.start_minute_job2.data = str(job2_start_time.minute)
  154.     form.duration_job2.data = str(job2_duration)
  155.     form.monday_job2.data = job2_monday
  156.     form.tuesday_job2.data = job2_tuesday
  157.     form.wednesday_job2.data = job2_wednesday
  158.     form.thursday_job2.data = job2_thursday
  159.     form.friday_job2.data = job2_friday
  160.     form.saturday_job2.data = job2_saturday
  161.     form.sunday_job2.data = job2_sunday
  162.  
  163.     if form.validate_on_submit():
  164.         print(form.data)
  165.         job1_start_time = datetime.strptime(form.start_hour_job1.data + ':' + form.start_minute_job1.data + ':00', '%H:%M:%S').time()
  166.         job2_start_time = datetime.strptime(form.start_hour_job2.data + ':' + form.start_minute_job2.data + ':00', '%H:%M:%S').time()
  167.         print(start_time)
  168.         return render_template("success_test.html", data=form.data, start_time = start_time)
  169.     else:
  170.         print("Validation Failed")
  171.         print(form.errors)
  172.     return render_template('schedule.html',form = form, job1_enabled = job1_enabled,
  173.                            job2_enabled = job2_enabled)
Advertisement
Add Comment
Please, Sign In to add comment