File size: 1,717 Bytes
f67bf1d
 
 
 
 
 
 
 
 
 
5937261
f67bf1d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b73f5e
f67bf1d
 
4b73f5e
f67bf1d
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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()