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() | |