File size: 1,270 Bytes
ac922de
 
 
 
 
 
 
 
 
 
4b04ec0
ac922de
4b04ec0
 
 
 
 
 
 
 
 
 
 
ac922de
4b04ec0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ac922de
4b04ec0
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
import streamlit as st
from salesforce_integration import fetch_poles
import plotly.express as px
from modules.visuals import display_dashboard, display_charts

st.title("πŸ“‘ VIEP Smart Poles Dashboard (Salesforce Data)")

# Fetch Data
df = fetch_poles()

# Display Table with extra fields
st.subheader("πŸ“‹ Pole Table")
st.dataframe(df[[
    "Name", 
    "Solar_Generation__c", 
    "Wind_Generation__c", 
    "Camera_Status__c", 
    "Longitude__c", 
    "Latitude__c", 
    "Last_Check_Time__c"
]])

# Energy Generation Chart
st.subheader("βš™ Energy Generation (Solar vs Wind)")
st.plotly_chart(
    px.bar(
        df, 
        x="Name", 
        y=["Solar_Generation__c", "Wind_Generation__c"], 
        barmode="group",
        title="Solar vs Wind Energy by Pole"
    )
)

# Camera Status Visualization (Only once, horizontal bar)
st.subheader("πŸŽ₯ Camera Status Overview")
camera_counts = df["Camera_Status__c"].value_counts().reset_index()
camera_counts.columns = ["Status", "Count"]

fig_camera_status = px.bar(
    camera_counts,
    x="Count",
    y="Status",
    orientation="h",
    color="Status",
    text="Count",
    title="Camera Status Distribution"
)
st.plotly_chart(fig_camera_status)

# Custom Visuals
display_dashboard(df)
display_charts(df)