Spaces:
Sleeping
Sleeping
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() | |