Naveen256/Rule-based
0
1class SmartHomeEnergyAgent:2 def __init__(self, battery_capacity=10.0):3 self.battery_capacity = battery_capacity # kWh4 self.battery_level = 5.0 # initial kWh5 6 def decide(self, load, solar, price):7 """8 load: household demand (kWh)9 solar: solar generation (kWh)10 price: electricity price ($/kWh)11 """12 action = {}13 14 # Use solar first15 used_solar = min(load, solar)16 load -= used_solar17 solar -= used_solar18 19 # Charge battery if excess solar20 if solar > 0 and self.battery_level < self.battery_capacity:21 charge = min(solar, self.battery_capacity - self.battery_level)22 self.battery_level += charge23 action["battery_charge"] = charge24 25 # Discharge battery if price is high26 if load > 0 and price > 0.25 and self.battery_level > 0:27 discharge = min(load, self.battery_level)28 self.battery_level -= discharge29 load -= discharge30 action["battery_discharge"] = discharge31 32 # Buy remaining energy from grid33 if load > 0:34 action["grid_usage"] = load35 36 action["battery_level"] = round(self.battery_level, 2)37 return action38 39 40# Example usage41agent = SmartHomeEnergyAgent()42 43state = agent.decide(44 load=6.0, # kWh45 solar=4.0, # kWh46 price=0.30 # $/kWh47)48 49print(state)50 