File size: 2,091 Bytes
8ad6147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0849374
8ad6147
 
 
 
 
 
265c7d4
 
 
0849374
 
 
 
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
50
51
52
53
54
55
56
57
58
59
60
import streamlit as st
import pandas as pd
import numpy as np
import datetime
from simple_salesforce import Salesforce
from modules.simulator import simulate_data
from modules.filters import apply_filters
from modules.visuals import display_dashboard, display_charts

# Salesforce Authentication (replace with your Salesforce login credentials)
sf = Salesforce(username='greenenergy@vedavathi.com', password='Vedavathi@04', security_token='jqe4His8AcuFJucZz5NBHfGU')

st.set_page_config(page_title="Vedavathi Smart Pole Monitoring", layout="wide")

st.title("πŸ“‘ Vedavathi Smart Pole Monitoring - PoC Simulator")

# Sidebar for Simulation Controls
st.sidebar.header("πŸ› οΈ Simulation Controls")
num_poles = st.sidebar.slider("Number of Poles", min_value=5, max_value=50, value=10)
simulate_faults = st.sidebar.checkbox("Simulate Random Faults", value=True)

# Simulate Data for Poles
df = simulate_data(num_poles, simulate_faults)

# Sidebar for Filter Data
st.sidebar.header("πŸ“‚ Filter Data")
alert_filter = st.sidebar.multiselect("Alert Level", ["Green", "Yellow", "Red"], default=["Green", "Yellow", "Red"])
cam_filter = st.sidebar.selectbox("Camera Status", ["All", "Online", "Offline"], index=0)

# Apply Filters
filtered_df = apply_filters(df, alert_filter, cam_filter)

# Display System Summary
display_dashboard(df)

# Pole Monitoring Table
st.subheader("πŸ“‹ Pole Monitoring Table")
st.dataframe(filtered_df, use_container_width=True)

# Display Charts
display_charts(df)

# Salesforce Integration (e.g., fetch records from Salesforce)
def fetch_salesforce_data():
    # Example: Querying Salesforce for related data
    query = "SELECT Id, Name, Alert_Level__c, Camera_Status__c FROM Pole__c"
    result = sf.query_all(query)
    return result['records']

# Fetch Salesforce data
sf_data = fetch_salesforce_data()

# Convert the Salesforce data into a Pandas DataFrame
sf_df = pd.DataFrame(sf_data)

# Display Salesforce Data in a table format
st.subheader("πŸ“Š Salesforce Data")
st.dataframe(sf_df[['Name', 'Alert_Level__c', 'Camera_Status__c']], use_container_width=True)