CoderHassan's picture
Update app.py
d57640e verified
# streamlit_app.py
import streamlit as st
import scraper
# URLs for different companies
tariff_urls = {
"IESCO": "https://iesco.com.pk/index.php/customer-services/tariff-guide",
# Add other companies as needed
}
def main():
st.title("PowerCalc: AI-Driven Bill & Carbon Footprint Tracker")
# User input
company = st.selectbox("Select your electricity company", list(tariff_urls.keys()))
appliance_name = st.text_input("Appliance Name")
load = st.number_input("Load of Appliance (kW)", min_value=0.0)
daily_usage = st.number_input("Daily Usage Time (hours)", min_value=0.0)
if st.button("Calculate"):
# Fetch the tariff data for the selected company
url = tariff_urls.get(company)
tariff_data = scraper.fetch_tariff_data(url)
if tariff_data:
# Calculate monthly bill and carbon footprint
monthly_bill = calculate_monthly_bill(tariff_data, load, daily_usage)
carbon_footprint = calculate_carbon_footprint(load, daily_usage)
st.write(f"Monthly Bill for {appliance_name}: Rs. {monthly_bill}")
st.write(f"Carbon Footprint: {carbon_footprint} kg CO2")
else:
st.error("Error fetching tariff data. Please try again.")
def calculate_monthly_bill(tariff_data, load, daily_usage):
daily_consumption = load * daily_usage # kWh per day
monthly_consumption = daily_consumption * 30 # kWh per month
total_bill = 0
for slab in tariff_data:
if monthly_consumption > slab['lower_limit']:
consumption_in_slab = min(monthly_consumption, slab['upper_limit']) - slab['lower_limit']
total_bill += consumption_in_slab * slab['rate']
return round(total_bill, 2)
def calculate_carbon_footprint(load, daily_usage):
daily_consumption = load * daily_usage # kWh per day
monthly_consumption = daily_consumption * 30 # kWh per month
emissions_factor = 0.92 # kg CO2 per kWh
carbon_footprint = monthly_consumption * emissions_factor
return round(carbon_footprint, 2)
if __name__ == "__main__":
main()