From 5d8ee49fb66aca05986b4584f0b62cd91746f304 Mon Sep 17 00:00:00 2001
From: Jesus Miguel Zubia <miquel44@uab.edu>
Date: Mon, 10 Apr 2023 18:00:42 -0500
Subject: [PATCH] Updated the CS_499_backend.py

---
 CS_499_backend.py | 608 ++++++++++++++++++++++++++--------------------
 1 file changed, 339 insertions(+), 269 deletions(-)

diff --git a/CS_499_backend.py b/CS_499_backend.py
index e322a46..e23b21e 100644
--- a/CS_499_backend.py
+++ b/CS_499_backend.py
@@ -1,270 +1,340 @@
-import psycopg2
-
-# import CS_499_backend
-from CS_499_backend import Door_Window, Appliance_1, Appliance_with_Water, Temperature_data, Door_Window_History, App1_History, App2_History, App3_History, time_stamp, time_stamp2, time_stamp3, time_stamp4, monthly_cost1_FEB, monthly_cost1_MAR, monthly_cost1_JAN, monthly_power1_JAN, monthly_power1_FEB, monthly_power1_MAR, monthly_cost2_FEB, monthly_cost2_JAN, monthly_cost2_MAR, monthly_water_usg_MAR, monthly_water_usg_JAN, monthly_water_usg_FEB, monthly_power2_FEB, monthly_power2_JAN, monthly_power2_MAR, monthly_temp_watts_JAN, monthly_temp_watts_FEB, monthly_temp_watts_MAR, monthly_temp_ct_JAN, monthly_temp_ct_FEB, monthly_temp_ct_MAR
-
-# create a new database
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-#cur.execute("CREATE DATABASE Team3 ")
-conn.close()
-
-# create a new table for Door_Window_History
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-cur.execute("""
-    DROP TABLE IF EXISTS Door_Window_History;
-    CREATE TABLE Door_Window_History (
-        id SERIAL PRIMARY KEY, 
-        day VARCHAR(255), 
-        door_status INTEGER, 
-        door_time FLOAT, 
-        window_status INTEGER, 
-        window_time FLOAT
-        );
-    """)
-
-conn.commit()
-
-#insert the data into the Door_Window_History table
+## Data base generation code by Group 3 CS 499 ##
+# Morning data,afternoon ,night data for temp
+import random
+import math
+import requests
+import json
+import numpy as np
+
+
+class Door_Window:
+
+    def __init__(self,day,Door_status,Door_time,Window_status,Window_time):
+        self.day=day
+        self.Door_status=Door_status
+        self.Door_time=Door_time
+        self.Window_status=Window_status
+        self.Window_time=Window_time
+    
+
+WORKWEEK=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
+NUM_WEEKS=11
+Door_Window_History=dict()
+
+time_stamp=0
+for i in range(0,NUM_WEEKS):
+    for j in range(0,7):
+        #door_opens = 0
+       #window_opens = 0
+        if j < 5:
+            door_opens = random.randint(14,22)
+            window_open= random.randint(1,5)
+        else:
+            door_opens = random.randint(26,36)
+            window_open= random.randint(7,12)
+        door_minutes = door_opens *30/60
+        window_minutes = window_open *45/60
+        Door_Window_History[time_stamp] = Door_Window(WORKWEEK[j], door_opens, door_minutes, window_open, window_minutes)
+        time_stamp += 1
+
 for i in Door_Window_History:
-    for time_stamp, data in Door_Window_History.items():
-        cur.execute("""
-            INSERT INTO Door_Window_History (
-                day, door_status, door_time, window_status, window_time) 
-            VALUES (%s, %s, %s, %s, %s);
-        """, (
-            data.day, data.Door_status, data.Door_time,
-            data.Window_status, data.Window_time
-        ))
-conn.commit()
-
-# create a new table for App1_History
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-cur.execute("""
-    DROP TABLE IF EXISTS Appliance_1_History;
-    CREATE TABLE Appliance_1_History (
-        id SERIAL PRIMARY KEY,
-        day VARCHAR(255), 
-        micro_pwr FLOAT, 
-        stove_pwr FLOAT, 
-        oven_pwr FLOAT, 
-        Lrtv_pwr FLOAT, 
-        Brtv_pwr FLOAT, 
-        fridge_pwr FLOAT, 
-        micro_ct FLOAT, 
-        stove_ct FLOAT, 
-        oven_ct FLOAT, 
-        Lrtv_ct FLOAT, 
-        Brtv_ct FLOAT, 
-        fridge_ct FLOAT,
-        lights_pwr FLOAT,
-        lights_ct FLOAT
-        );
-    """)
-
-for time_stamp2, data in App1_History.items():
-    cur.execute("""
-        INSERT INTO Appliance_1_History (
-            day, micro_pwr, stove_pwr, oven_pwr, Lrtv_pwr, Brtv_pwr, fridge_pwr,
-            micro_ct, stove_ct, oven_ct, Lrtv_ct, Brtv_ct, fridge_ct, lights_pwr, lights_ct) 
-        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
-        """, (
-            data.day, data.micro_pwr, data.stove_pwr, data.oven_pwr, data.Lrtv_pwr, data.Brtv_pwr,
-            data.fridge_pwr, data.micro_ct, data.stove_ct, data.oven_ct, data.Lrtv_ct, data.Brtv_ct,
-            data.fridge_ct, data.lights_pwr, data.lights_ct
-        ))
-conn.commit()
-
-
-
-# create a new table for appliance_with_water
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-cur.execute("""
-    DROP TABLE IF EXISTS appliance_with_water;
-    CREATE TABLE appliance_with_water (
-       id SERIAL PRIMARY KEY,
-       day TEXT,
-       water_heat_pwr FLOAT,
-       dishwasher_pwr FLOAT,
-       clothes_wash_pwr FLOAT,
-       clothes_dry_pwr FLOAT,
-       bath_fans_pwr FLOAT,
-       water_heat_ug FLOAT,
-       bath_water_ug FLOAT,
-        shower_water_ug FLOAT,
-        dishwasher_ug FLOAT,
-        clothes_wash_ug FLOAT,
-        water_heat_ct FLOAT,
-        dishwasher_ct FLOAT,
-        clothes_wash_ct FLOAT,
-        clothes_dry_ct FLOAT,
-        bath_fans_ct FLOAT,
-        water_ct FLOAT,
-        bath INT,
-        shower INT
-  );
-""")
-conn.commit()
-
-# insert data into the App2_History table
-for time_stamp3, data in App2_History.items():
-   cur = conn.cursor()
-   cur.execute("""
-        INSERT INTO appliance_with_water (
-           day, water_heat_pwr, dishwasher_pwr, clothes_wash_pwr,
-           clothes_dry_pwr, bath_fans_pwr, water_heat_ug, bath_water_ug,
-           shower_water_ug, dishwasher_ug, clothes_wash_ug, water_heat_ct,
-           dishwasher_ct, clothes_wash_ct, clothes_dry_ct, bath_fans_ct,
-           water_ct, bath, shower
-       )
-        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
-    """, (
-        data.day, data.Water_Heat_pwr, data.DishWasher_pwr, data.Clothes_Wash_pwr,
-        data.Clothes_dry_pwr, data.bath_fans_pwr, data.Water_Heat_ug, data.Bath_water_ug,
-        data.Shower_water_ug, data.DishWasher_ug, data.Clothes_Wash_ug, data.Water_Heat_ct,
-        data.DishWasher_ct, data.Clothes_Wash_ct, data.Clothes_dry_ct, data.bath_fans_ct,
-       data.Water_ct, data.bath, data.shower
-   ))
-   conn.commit()
-
-# create a new table for Temperature_data
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-cur.execute("""
-    DROP TABLE IF EXISTS Temperature_data;
-    CREATE TABLE Temperature_data (
-        id SERIAL PRIMARY KEY,
-        temp_power FLOAT,
-        temp_cost FLOAT
-    );
-""")
-conn.commit()
-
-# insert data into the App3_History Table
-for time_stamp4, data in App3_History.items():
-    cur = conn.cursor()
-    cur.execute("""
-        INSERT INTO temperature_data (
-           temp_power, temp_cost
-        )
-        VALUES (%s, %s);
-    """, (
-        data.temp_power, data.temp_cost
-    ))
-    conn.commit()
-
-
-#################### This is for 
-
-# # create a new table for app1_cost_power
-# conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-# cur = conn.cursor()
-# cur.execute("""
-#     DROP TABLE IF EXISTS app1_cost_power;
-#     CREATE TABLE app1_cost_power (
-#         month TEXT,
-#         watts FLOAT,
-#         cost FLOAT
-#     )
-# """)
-# conn.commit()
-
-# # Insert the monthly power and cost values into the table
-# cur.execute("""
-#     INSERT INTO app1_cost_power (month, watts, cost)
-#     VALUES ('January', %s, %s),
-#            ('February', %s, %s),
-#            ('March', %s, %s)
-# """, (monthly_power1_JAN, monthly_cost1_JAN,
-#       monthly_power1_FEB, monthly_cost1_FEB,
-#       monthly_power1_MAR, monthly_cost1_MAR))
-
-# # Commit the changes
-# conn.commit()
-
-# # create a new table for app2_cost_power
-# conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-# cur = conn.cursor()
-# cur.execute("""
-#     DROP TABLE IF EXISTS app2_cost_power;
-#     CREATE TABLE app2_cost_power (
-#         month TEXT,
-#         watts FLOAT,
-#         water FLOAT,
-#         cost FLOAT
-#     )
-# """)
-# conn.commit()
-
-# # Insert the monthly power and cost values into the table
-# cur.execute("""
-#     INSERT INTO app2_cost_power (month, watts, water, cost)
-#     VALUES ('January', %s, %s, %s),
-#            ('February', %s, %s, %s),
-#            ('March', %s, %s, %s)
-# """, (monthly_power2_JAN, monthly_water_usg_JAN, monthly_cost2_JAN,
-#       monthly_power2_FEB, monthly_water_usg_FEB, monthly_cost2_FEB,
-#       monthly_power2_MAR, monthly_water_usg_MAR, monthly_cost2_MAR))
-
-# # Commit the changes
-# conn.commit()
-
-# # create a new table for temp_cost_watts
-# conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-# cur = conn.cursor()
-# cur.execute("""
-#     DROP TABLE IF EXISTS temp_cost_watts;
-#     CREATE TABLE temp_cost_watts (
-#         month TEXT,
-#         watts FLOAT,
-#         cost FLOAT
-#     )
-# """)
-# conn.commit()
-
-# # Insert the monthly power and cost values into the table
-# cur.execute("""
-#     INSERT INTO temp_cost_watts (month, watts, cost)
-#     VALUES ('January', %s, %s),
-#            ('February', %s, %s),
-#            ('March', %s, %s)
-# """, (monthly_temp_watts_JAN, monthly_temp_ct_JAN,
-#       monthly_temp_watts_FEB, monthly_temp_ct_FEB,
-#       monthly_temp_watts_MAR, monthly_temp_ct_MAR))
-
-# # Commit the changes
-# conn.commit()
-
-# create a new table for total_cost_watts
-conn = psycopg2.connect(database="Team3DB", user="Team3", password="team3", host="138.26.48.83", port="5432")
-cur = conn.cursor()
-cur.execute("""
-    DROP TABLE IF EXISTS total_cost_watts;
-    CREATE TABLE total_cost_watts (
-        month TEXT,
-        watts FLOAT,
-        cost FLOAT
-    )
-""")
-conn.commit()
-
-# Insert the monthly power and cost values into the table
-cur.execute("""
-    INSERT INTO total_cost_watts (month, watts, cost)
-    VALUES ('January', %s, %s),
-           ('February', %s, %s),
-           ('March', %s, %s)
-""", (monthly_temp_watts_JAN+monthly_power2_JAN+monthly_power1_JAN, monthly_temp_ct_JAN+monthly_cost2_JAN+monthly_cost1_JAN,
-      monthly_temp_watts_FEB+monthly_power2_FEB+monthly_power1_FEB, monthly_temp_ct_FEB+monthly_cost2_FEB+monthly_cost1_FEB,
-      monthly_temp_watts_MAR+monthly_power2_MAR+monthly_power1_MAR, monthly_temp_ct_MAR+monthly_cost2_MAR+monthly_cost1_MAR))
-
-# Commit the changes
-conn.commit()
-
-# Commit changes
-#conn.commit()
-cur.close()
-conn.close()
\ No newline at end of file
+    print(i, Door_Window_History[i].day, Door_Window_History[i].Door_status, Door_Window_History[i].Door_time, Door_Window_History[i].Window_status, Door_Window_History[i].Window_time)
+
+class Appliance_1:
+
+    def __init__(self,day,micro_pwr,stove_pwr,oven_pwr,Lrtv_pwr,Brtv_pwr,fridge_pwr,lights_pwr,micro_ct,stove_ct,oven_ct,Lrtv_ct,Brtv_ct,fridge_ct,lights_ct):
+        self.day=day
+        self.micro_pwr=micro_pwr
+        self.stove_pwr=stove_pwr
+        self.oven_pwr=oven_pwr
+        self.Lrtv_pwr=Lrtv_pwr
+        self.Brtv_pwr=Brtv_pwr
+        self.fridge_pwr=fridge_pwr
+        self.micro_ct=micro_ct
+        self.stove_ct=stove_ct
+        self.oven_ct=oven_ct
+        self.Lrtv_ct=Lrtv_ct
+        self.Brtv_ct=Brtv_ct
+        self.fridge_ct=fridge_ct
+        self.lights_pwr=lights_pwr
+        self.lights_ct=lights_ct
+        
+App1_History=dict()
+time_stamp2=1
+Fridge=0
+for i in range(0, NUM_WEEKS):
+    for j in range(0,7):
+        Fridge += 1440
+        if j<5:
+            Microwave=random.randint(18,25)
+            Stove=random.randint(13,18)
+            Oven=random.randint(40,50)
+            Living_roomTV=random.randint(230,330)
+            BedroomTV=random.randint(100,190)
+            lights=random.randint(35,65)
+        else:
+            Microwave=random.randint(26,40)
+            Stove=random.randint(25,41)
+            Oven=random.randint(54,67)
+            Living_roomTV=random.randint(432,490)
+            BedroomTV=random.randint(225,277)
+            lights=random.randint(55,95)
+        
+        #Watts Ussage
+        Watts_micro=(Microwave/60)*1100
+        Watts_stove=(Stove/60)*3500
+        Watts_oven=(Oven/60)*4000/60
+        Watts_Lrtv=(Living_roomTV/60)*636
+        Watts_Brtv=(BedroomTV/60)*100
+        Watts_Fridge=(Fridge/60)*150
+        Watts_Lights=(lights*random.randint(4,8))
+        #Cost Calculations
+        Cost_micro=((Watts_micro/1000)*0.12)/100
+        Cost_stove=((Watts_stove/1000)*0.12)/100
+        Cost_oven=((Watts_oven/1000)*0.12)/100
+        Cost_Lrtv=((Watts_Lrtv/1000)*0.12)/100
+        Cost_Brtv=((Watts_Brtv/1000)*0.12)/100
+        Cost_Fridge=((Watts_Fridge/1000)*0.12)/100   
+        Cost_lights=((Watts_Lights/1000)*0.12 )/100  
+        App1_History[time_stamp2] = Appliance_1(WORKWEEK[j],Watts_micro,Watts_stove,Watts_oven,Watts_Lrtv,Watts_Brtv,Watts_Fridge,Watts_Lights,Cost_micro,Cost_stove,Cost_oven,Cost_Lrtv,Cost_Brtv,Cost_Fridge,Cost_lights)
+        time_stamp2 += 1
+
+monthly_cost1_JAN=0
+monthly_power1_JAN=0
+monthly_cost1_FEB=0
+monthly_power1_FEB=0
+monthly_cost1_MAR=0
+monthly_power1_MAR=0
+
+print("######################################################  TOTAL APP1 HISTORY FOR 77  DAYS  ###################################################### \n")
+for i in App1_History:
+    if i<=31:
+        monthly_power1_JAN += App1_History[i].micro_pwr + App1_History[i].stove_pwr + App1_History[i].oven_pwr + App1_History[i].Lrtv_pwr + App1_History[i].Brtv_pwr + App1_History[i].fridge_pwr +App1_History[i].lights_pwr
+        monthly_cost1_JAN += App1_History[i].micro_ct + App1_History[i].stove_ct + App1_History[i].oven_ct + App1_History[i].Lrtv_ct + App1_History[i].Brtv_ct + App1_History[i].fridge_ct + App1_History[i].lights_ct
+    if i>32 and i<=60:
+        monthly_power1_FEB += App1_History[i].micro_pwr + App1_History[i].stove_pwr + App1_History[i].oven_pwr + App1_History[i].Lrtv_pwr + App1_History[i].Brtv_pwr + App1_History[i].fridge_pwr +App1_History[i].lights_pwr
+        monthly_cost1_FEB += App1_History[i].micro_ct + App1_History[i].stove_ct + App1_History[i].oven_ct + App1_History[i].Lrtv_ct + App1_History[i].Brtv_ct + App1_History[i].fridge_ct + App1_History[i].lights_ct
+    if i>61:
+        monthly_power1_MAR += App1_History[i].micro_pwr + App1_History[i].stove_pwr + App1_History[i].oven_pwr + App1_History[i].Lrtv_pwr + App1_History[i].Brtv_pwr + App1_History[i].fridge_pwr +App1_History[i].lights_pwr
+        monthly_cost1_MAR += App1_History[i].micro_ct + App1_History[i].stove_ct + App1_History[i].oven_ct + App1_History[i].Lrtv_ct + App1_History[i].Brtv_ct + App1_History[i].fridge_ct + App1_History[i].lights_ct
+    #print(i,App1_History[i].day,App1_History[i].micro_pwr,App1_History[i].stove_pwr,App1_History[i].oven_pwr,App1_History[i].Lrtv_pwr,App1_History[i].Brtv_pwr,App1_History[i].micro_ct,App1_History[i].stove_ct,App1_History[i].oven_ct,App1_History[i].Lrtv_ct,App1_History[i].Brtv_ct)
+print( "_ - _ - _ - _  Power used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP1 watts used : ",monthly_power1_JAN )
+print( "FEB APP1 watts used : ",monthly_power1_FEB )
+print( "MAR APP1 watts used : ",monthly_power1_MAR )
+print( "_ - _ - _ - _  Cost used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP1 cost used : ",monthly_cost1_JAN )
+print( "FEB APP1 cost used : ",monthly_cost1_FEB )
+print( "MAR APP1 cost used : ",monthly_cost1_MAR )
+#print("################################################################################################################################################################# \n")
+
+
+
+
+class Appliance_with_Water:
+
+    def __init__(self,day,Water_Heat_pwr,DishWasher_pwr,Clothes_Wash_pwr,Clothes_dry_pwr,bath_fans_pwr,Water_Heat_ug,Bath_water_ug,Shower_water_ug,DishWasher_ug,Clothes_Wash_ug,Water_Heat_ct,DishWasher_ct,Clothes_Wash_ct,Clothes_dry_ct,bath_fans_ct,Water_ct,bath,shower):
+        self.day=day
+        self.Water_Heat_pwr=Water_Heat_pwr
+        self.DishWasher_pwr=DishWasher_pwr
+        self.Clothes_Wash_pwr=Clothes_Wash_pwr
+        self.Clothes_dry_pwr=Clothes_dry_pwr
+        self.Water_Heat_ug=Water_Heat_ug
+        self.DishWasher_ug=DishWasher_ug
+        self.Clothes_Wash_ug=Clothes_Wash_ug
+        self.Water_Heat_ct=Water_Heat_ct
+        self.DishWasher_ct=DishWasher_ct
+        self.Clothes_Wash_ct=Clothes_Wash_ct
+        self.Clothes_dry_ct=Clothes_dry_ct
+        self.bath_fans_pwr=bath_fans_pwr
+        self.bath_fans_ct=bath_fans_ct
+        self.Bath_water_ug=Bath_water_ug
+        self.Shower_water_ug=Shower_water_ug
+        self.Water_ct=Water_ct
+        self.bath=bath
+        self.shower=shower
+
+App2_History=dict()
+time_stamp3=0
+for i in range(0,NUM_WEEKS):
+    Dish_washer_run=random.randint(3,5)
+    Clths_wash_dry_run=random.randint(3,5)
+    for j in range(0,7):
+        if j<5:
+            Bath=random.randint(2,3)
+            Shower=random.randint(2,3)
+        else:
+            Bath=random.randint(3,4)
+            Shower=random.randint(3,4)
+
+        #Calaculate Total Water 
+        Bath_water=30*Bath
+        Shower_water=25*Shower
+        Clths_water=20*Clths_wash_dry_run
+        Dish_washer_water=6*Dish_washer_run
+
+        # still have to apply floor to it ## hot water
+        Bath_hot=math.ceil(Bath_water*0.65)
+        Shower_hot=math.ceil(Shower_water*0.65)
+        Clths_wash_hot=math.ceil(Clths_water*0.85)
+        # hot water heater ## use ceil round up
+        Hot_water=(Bath_hot+Shower_hot+Clths_wash_hot)
+        Hot_water_time=Hot_water*4
+
+        # Watts used
+        Hot_water_pwr=(Hot_water_time/60)*4500
+        Dish_washer_pwr=((Dish_washer_run*45)/60)*1800
+        Clothes_wash_pwr=((Clths_wash_dry_run*30)/60)*500
+        Clothes_dry_pwr=((Clths_wash_dry_run*30)/60)*3000
+        Bath_Fans_pwr=((Bath*45)/60)*30
+
+        # Cost
+        Hot_water_ct=((Hot_water_pwr/1000)*0.12)/100
+        Dish_washer_ct=((Dish_washer_pwr/1000)*0.12)/100
+        Clothes_wash_ct=((Clothes_wash_pwr/1000)*0.12)/100
+        Clothes_dry_ct=((Clothes_dry_pwr/1000)*0.12)/100
+        Bath_Fans_ct=((Bath_Fans_pwr/1000)*0.12)/100
+
+        # Water Used / Cost
+        Water_Total=Bath_water+Shower_water+Clths_water+Dish_washer_water
+        Water_Feet=Water_Total/7.48
+        Water_cost=Water_Feet*(2.52/100)
+        # Water_Heat_pwr, DishWasher_pwr, Clothes_Wash_pwr, Clothes_dry_pwr, bath_fan_pwr, Water_Heat_ug, DishWasher_ug, Clothes_Wash_ug, Water_Heat_ct, DishWasher_ct, Clothes_Wash_ct, Clothes_dry_ct, bath_fan_ct, bath, shower
+        App2_History[time_stamp3] = Appliance_with_Water(WORKWEEK[j],Hot_water_pwr,Dish_washer_pwr,Clothes_wash_pwr,Clothes_dry_pwr,Bath_Fans_pwr,Hot_water,Bath_water,Shower_water,Dish_washer_water,Clths_water,Hot_water_ct,Dish_washer_ct,Clothes_wash_ct,Clothes_dry_ct,Bath_Fans_ct,Water_cost,Bath,Shower)
+        time_stamp3 += 1
+
+monthly_cost2_JAN=0
+monthly_power2_JAN=0
+monthly_water_usg_JAN=0
+monthly_cost2_FEB=0
+monthly_power2_FEB=0
+monthly_water_usg_FEB=0
+monthly_cost2_MAR=0
+monthly_power2_MAR=0
+monthly_water_usg_MAR=0
+print("######################################################  TOTAL APP2 HISTORY FOR 77 DAYS  ###################################################### \n")
+for i in App2_History:
+    if i>=31:
+        monthly_cost2_JAN+= App2_History[i].Water_Heat_ct + App2_History[i].DishWasher_ct + App2_History[i].Clothes_Wash_ct + App2_History[i].Clothes_dry_ct +App2_History[i].Water_ct + App2_History[i].bath_fans_ct
+        monthly_power2_JAN+= App2_History[i].Water_Heat_pwr+ App2_History[i].DishWasher_pwr + App2_History[i].Clothes_Wash_pwr + App2_History[i].Clothes_dry_pwr + App2_History[i].bath_fans_pwr
+        monthly_water_usg_JAN+= App2_History[i].Bath_water_ug + App2_History[i].Shower_water_ug + App2_History[i].DishWasher_ug+ App2_History[i].Clothes_Wash_ug
+    if i>32 and i<=60:
+        monthly_cost2_FEB+= App2_History[i].Water_Heat_ct + App2_History[i].DishWasher_ct + App2_History[i].Clothes_Wash_ct + App2_History[i].Clothes_dry_ct +App2_History[i].Water_ct + App2_History[i].bath_fans_ct
+        monthly_power2_FEB+= App2_History[i].Water_Heat_pwr+ App2_History[i].DishWasher_pwr + App2_History[i].Clothes_Wash_pwr + App2_History[i].Clothes_dry_pwr + App2_History[i].bath_fans_pwr
+        monthly_water_usg_FEB+= App2_History[i].Bath_water_ug + App2_History[i].Shower_water_ug + App2_History[i].DishWasher_ug+ App2_History[i].Clothes_Wash_ug
+    if i>61:
+        monthly_cost2_MAR+= App2_History[i].Water_Heat_ct + App2_History[i].DishWasher_ct + App2_History[i].Clothes_Wash_ct + App2_History[i].Clothes_dry_ct +App2_History[i].Water_ct + App2_History[i].bath_fans_ct
+        monthly_power2_MAR+= App2_History[i].Water_Heat_pwr+ App2_History[i].DishWasher_pwr + App2_History[i].Clothes_Wash_pwr + App2_History[i].Clothes_dry_pwr + App2_History[i].bath_fans_pwr
+        monthly_water_usg_MAR+= App2_History[i].Bath_water_ug + App2_History[i].Shower_water_ug + App2_History[i].DishWasher_ug+ App2_History[i].Clothes_Wash_ug
+    #print(i,App2_History[i].day,App2_History[i].Water_Heat_pwr,App2_History[i].DishWasher_pwr,App2_History[i].Clothes_Wash_pwr,App2_History[i].Clothes_dry_pwr,App2_History[i].bath_fans_pwr,App2_History[i].Water_Heat_ug,App2_History[i].Bath_water_ug,App2_History[i].Shower_water_ug,App2_History[i].DishWasher_ug,App2_History[i].Clothes_Wash_ug,App2_History[i].Water_Heat_ct,App2_History[i].DishWasher_ct,App2_History[i].Clothes_Wash_ct,App2_History[i].Clothes_dry_ct,App2_History[i].bath_fans_ct,App2_History[i].Water_ct,App2_History[i].bath,App2_History[i].shower)
+print( "_ - _ - _ - _  Power used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP2 watts used : ",monthly_power2_JAN )
+print( "FEB APP2 watts used : ",monthly_power2_FEB )
+print( "MAR APP2 watts used : ",monthly_power2_MAR )
+print( "_ - _ - _ - _  Cost used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP2 cost used : ",monthly_cost2_JAN )
+print( "FEB APP2 cost used : ",monthly_cost2_FEB )
+print( "MAR APP2 cost used : ",monthly_cost2_MAR )
+print( "_ - _ - _ - _  Gallons used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP2 water used : ",monthly_water_usg_JAN )
+print( "FEB APP2 water used : ",monthly_water_usg_FEB )
+print( "MAR APP2 water used : ",monthly_water_usg_MAR )
+#print( "################################################################################################################################################################# \n")
+
+
+# weather api to get temp from history
+# Used this to help me understand and gather API.data: https://pypi.org/project/requests/ and https://realpython.com/api-integration-in-python/
+
+class Temperature_data :
+    def __init__(self,temp_power,temp_cost):
+        self.temp_power=temp_power
+        self.temp_cost=temp_cost
+
+
+
+response_API = requests.get("https://archive-api.open-meteo.com/v1/archive?latitude=33.52&longitude=-86.80&start_date=2023-01-01&end_date=2023-03-12&hourly=temperature_2m&timezone=America%2FChicago&temperature_unit=fahrenheit")
+data = response_API.text
+parse_temp = json.loads(data)
+hourly_pull = parse_temp['hourly']
+dict_pull = hourly_pull["temperature_2m"]
+
+
+App3_History = dict()
+time_stamp4 = 0
+daily_arr=np.array_split(dict_pull,77)
+
+
+for i in range(0,len(daily_arr)):
+    daily_arr[i]
+    d_t=Door_Window_History[i].Door_time
+    w_t=Door_Window_History[i].Window_time
+    diff_inc = 0
+    diff_dec = 0        
+    for j in range(0,len(daily_arr[i])-1):
+        num_nxt=daily_arr[i][j+1]
+        num=daily_arr[i][j]
+        if num > num_nxt :
+            diff_inc= num - num_nxt
+        if num < num_nxt :
+            diff_dec= num_nxt - num
+    # print(diff_inc)
+    # print(diff_dec)
+    sum=(diff_inc+diff_dec)*random.randint(2,17)
+    #Total number of minutes ac runs
+    min_op=sum*60+(d_t+w_t)
+    watts_per_day=(min_op)*3500
+    ct_per_day=((watts_per_day/1000)*0.12)/100
+    App3_History[time_stamp4]=Temperature_data (watts_per_day,ct_per_day)
+    time_stamp4+=1
+    # print(ct_per_day)
+    # print(watts_per_day)
+    # print("what i is",i)
+    # print("timestamp",i)
+
+
+
+monthly_temp_ct_JAN=0
+monthly_temp_watts_JAN=0
+monthly_temp_ct_FEB=0
+monthly_temp_watts_FEB=0
+monthly_temp_ct_MAR=0
+monthly_temp_watts_MAR=0
+print("######################################################  TOTAL TEMP HISTORY FOR 77 DAYS  ###################################################### \n")
+for i in App3_History:
+    if i<=31:
+        monthly_temp_watts_JAN+=App3_History[i].temp_power
+        monthly_temp_ct_JAN+=App3_History[i].temp_cost
+    if i>31 and i<=59:
+        monthly_temp_watts_FEB+=App3_History[i].temp_power
+        monthly_temp_ct_FEB+=App3_History[i].temp_cost
+    if i>59:
+        monthly_temp_ct_MAR+=App3_History[i].temp_cost
+        monthly_temp_watts_MAR+=App3_History[i].temp_power
+print( "_ - _ - _ - _  Power used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP3 watts used : ",monthly_temp_watts_JAN )
+print( "FEB APP3 watts used : ",monthly_temp_watts_FEB )
+print( "MAR APP3 watts used : ",monthly_temp_watts_MAR )
+print( "_ - _ - _ - _  Cost used for each Month  _ - _ - _ - _ \n")
+print( "Jan APP3 cost used : ",monthly_temp_ct_JAN )
+print( "FEB APP3 cost used : ",monthly_temp_ct_FEB )
+print( "MAR APP3 cost used : ",monthly_temp_ct_MAR )
+print( "################################################################################################################################################################# \n")
+print("January Total cost",monthly_temp_ct_JAN+monthly_cost2_JAN+monthly_cost1_JAN)
+print("Febuary Total cost",monthly_temp_ct_FEB+monthly_cost2_FEB+monthly_cost1_FEB)
+print("March Total cost",monthly_temp_ct_MAR+monthly_cost2_FEB+monthly_cost1_MAR)
+print("January Total Watts",monthly_temp_watts_JAN+monthly_power2_JAN+monthly_power1_JAN)
+print("Febuary Total Watts",monthly_temp_watts_FEB+monthly_power2_FEB+monthly_power1_FEB)
+print("March Total Watts",monthly_temp_watts_MAR+monthly_power2_MAR+monthly_power1_MAR)
+
+
+
+
+
+
+
+
+
+
+
+        
+
-- 
GitLab