Spaces:
Sleeping
Sleeping
Create modules/salesforce_connector.py
Browse files
modules/salesforce_connector.py
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from simple_salesforce import Salesforce
|
2 |
+
import pandas as pd
|
3 |
+
|
4 |
+
def connect_salesforce():
|
5 |
+
return Salesforce(
|
6 |
+
username='[email protected]',
|
7 |
+
password='Vedavathi@04',
|
8 |
+
security_token='jqe4His8AcuFJucZz5NBHfGU'
|
9 |
+
)
|
10 |
+
|
11 |
+
def fetch_pole_data_from_salesforce(sf):
|
12 |
+
query = """
|
13 |
+
SELECT Name, Solar_Generation__c, Wind_Generation__c, Power_Required__c,
|
14 |
+
Camera_Status__c, Tilt__c, Vibration__c, Alert_Level__c, Power_Sufficient__c
|
15 |
+
FROM Smart_Pole__c
|
16 |
+
LIMIT 50
|
17 |
+
"""
|
18 |
+
result = sf.query(query)
|
19 |
+
records = result['records']
|
20 |
+
|
21 |
+
data = []
|
22 |
+
for r in records:
|
23 |
+
data.append({
|
24 |
+
"Pole ID": r['Name'],
|
25 |
+
"Solar Gen (kWh)": r.get('Solar_Generation__c', 0),
|
26 |
+
"Wind Gen (kWh)": r.get('Wind_Generation__c', 0),
|
27 |
+
"Power Required (kWh)": r.get('Power_Required__c', 0),
|
28 |
+
"Power Sufficient": r.get('Power_Sufficient__c', "No"),
|
29 |
+
"Camera Status": r.get('Camera_Status__c', "Offline"),
|
30 |
+
"Tilt (°)": r.get('Tilt__c', 0),
|
31 |
+
"Vibration (g)": r.get('Vibration__c', 0),
|
32 |
+
"Anomalies": "N/A", # Or parse if stored in Salesforce
|
33 |
+
"Alert Level": r.get('Alert_Level__c', "Green"),
|
34 |
+
"Date": pd.Timestamp.today().date()
|
35 |
+
})
|
36 |
+
return pd.DataFrame(data)
|