power / app.py
VIATEUR-AI's picture
Update app.py
428e575 verified
import gradio as gr
# Ibyo dushaka kugenzura: power output (kW) n'ibikoresho bikoresha power
# Turi gutegura loads 3: amatara, firigo, televiziyo
def energy_management(power_output, light_load, fridge_load, tv_load):
total_load = light_load + fridge_load + tv_load
messages = []
messages.append(f"πŸ”Œ Power output available: {power_output} kW")
messages.append(f"πŸ’‘ Total load demand: {total_load} kW")
if power_output >= total_load:
surplus = power_output - total_load
messages.append(f"βœ… Power is sufficient. Surplus: {surplus:.2f} kW")
messages.append("πŸ”‹ Amashanyarazi asigaye ashobora kubikwa cyangwa gukoreshwa mu bindi bikoresho.")
else:
deficit = total_load - power_output
messages.append(f"⚠️ Power deficit! Kurwanya deficit: {deficit:.2f} kW")
# Gukata load zidakenewe
# Tugena priority: Firigo > TV > Lights
load_status = {}
remaining_power = power_output
# Firigo ifite priority ya mbere
if fridge_load <= remaining_power:
load_status["Fridge"] = "ON"
remaining_power -= fridge_load
else:
load_status["Fridge"] = "OFF"
# TV ifite priority ya kabiri
if tv_load <= remaining_power:
load_status["TV"] = "ON"
remaining_power -= tv_load
else:
load_status["TV"] = "OFF"
# Lights ifite priority ya nyuma
if light_load <= remaining_power:
load_status["Lights"] = "ON"
remaining_power -= light_load
else:
load_status["Lights"] = "OFF"
messages.append("πŸ“‰ Ibyuma byakozweho:")
for device, status in load_status.items():
messages.append(f" - {device}: {status}")
return "\n".join(messages)
with gr.Blocks() as demo:
gr.Markdown("## Energy Management System Simulation")
power_output = gr.Slider(0, 10, step=0.1, label="Power Output (kW)", value=5)
light_load = gr.Slider(0, 5, step=0.1, label="Lights Load (kW)", value=1)
fridge_load = gr.Slider(0, 5, step=0.1, label="Fridge Load (kW)", value=2)
tv_load = gr.Slider(0, 5, step=0.1, label="TV Load (kW)", value=1)
output = gr.Textbox(label="System Report", lines=12)
inputs = [power_output, light_load, fridge_load, tv_load]
for inp in inputs:
inp.change(fn=energy_management, inputs=inputs, outputs=output)
# Report ya mbere
output.value = energy_management(power_output.value, light_load.value, fridge_load.value, tv_load.value)
demo.launch()