Green_Energy / app.py
dschandra's picture
Update app.py
4b73f5e verified
import streamlit as st
import pandas as pd
from simple_salesforce import Salesforce
# Salesforce connection
sf = Salesforce(username='[email protected]', password='Vedavathi@04', security_token='jqe4His8AcuFJucZz5NBHfGU')
print("Connected to salesforce successfully")
# Fetch Pole and Alert data
def fetch_salesforce_data():
pole_query = "SELECT Name, Solar_Generation__c, Wind_Generation__c, Tilt__c, Vibration__c, Power_Required__c, Power_Sufficient__c, Camera_Status__c, Health_Score__c, Location_Latitude__c, Location_Longitude__c FROM Pole"
alert_query = "SELECT Alert_Level__c, Anomalies__c, Health_Score__c, Timestamp__c, Pole__c FROM Alert"
pole_data = sf.query(pole_query)['records']
alert_data = sf.query(alert_query)['records']
# Convert to DataFrames
pole_df = pd.DataFrame(pole_data)
alert_df = pd.DataFrame(alert_data)
return pole_df, alert_df
# Display Tabular Data
def display_pole_data(pole_df):
st.subheader("πŸ“‹ Pole Monitoring Table")
st.dataframe(pole_df, use_container_width=True)
# Display Charts
def display_charts(pole_df):
st.subheader("βš™οΈ Energy Generation Trends")
st.bar_chart(pole_df[['Solar_Generation__c', 'Wind_Generation__c']].set_index('Pole__c'))
st.subheader("πŸ“‰ Tilt vs Vibration")
st.scatter_chart(pole_df[['Tilt__c', 'Vibration__c']].set_index('Pole__c'))
# Main function to run the dashboard
def main():
st.set_page_config(page_title="Pole Monitoring Dashboard", layout="wide")
st.title("πŸ“‘ Pole Monitoring Dashboard")
pole_df, alert_df = fetch_salesforce_data()
# Display Data
display_pole_data(pole_df)
display_charts(pole_df)
if __name__ == "__main__":
main()