import streamlit as st import pandas as pd from simple_salesforce import Salesforce # Salesforce connection sf = Salesforce(username='greenenergy@vedavathi.com', 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()