File size: 1,421 Bytes
aef9f14
50bfbc4
aef9f14
50bfbc4
 
 
aef9f14
 
 
50bfbc4
 
 
 
 
 
aef9f14
50bfbc4
aef9f14
50bfbc4
 
 
 
 
 
 
 
 
 
 
 
 
 
aef9f14
50bfbc4
 
 
 
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
import os
import pandas as pd
from simple_salesforce import Salesforce

def connect_salesforce():
    return Salesforce(
        username=os.getenv("SF_USERNAME", "greenenergy@vedavathi.com"),
        password=os.getenv("SF_PASSWORD", "Vedavathi@04"),
        security_token=os.getenv("SF_TOKEN", "jqe4His8AcuFJucZz5NBHfGU")
    )

def fetch_pole_data_from_salesforce(sf):
    query = """
    SELECT Name, Solar_Generation__c, Wind_Generation__c, Power_Required__c,
           Camera_Status__c, Tilt__c, Vibration__c, Alert_Level__c, Power_Sufficient__c
    FROM YourObjectAPI__c
    LIMIT 50
    """  # Replace 'YourObjectAPI__c' with correct object name
    result = sf.query(query)
    records = result['records']

    data = []
    for r in records:
        data.append({
            "Pole ID": r['Name'],
            "Solar Gen (kWh)": r.get('Solar_Generation__c', 0),
            "Wind Gen (kWh)": r.get('Wind_Generation__c', 0),
            "Power Required (kWh)": r.get('Power_Required__c', 0),
            "Power Sufficient": r.get('Power_Sufficient__c', "No"),
            "Camera Status": r.get('Camera_Status__c', "Offline"),
            "Tilt (°)": r.get('Tilt__c', 0),
            "Vibration (g)": r.get('Vibration__c', 0),
            "Anomalies": "N/A",
            "Alert Level": r.get('Alert_Level__c', "Green"),
            "Date": pd.Timestamp.today().date()
        })
    return pd.DataFrame(data)