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)