Spaces:
Sleeping
Sleeping
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() | |