climate / app.py
VIATEUR-AI's picture
Update app.py
0de2ca5 verified
import gradio as gr
device_state = {
"ac": False,
"fan": False,
"heater": False,
"dehumidifier": False,
"humidifier": False,
"window": "closed"
}
def climate_control(temperature, humidity):
messages = []
if temperature > 25:
messages.append("⚠️ Ubushyuhe buri hejuru, turakoresha AC.")
device_state["ac"] = True
device_state["heater"] = False
elif temperature < 18:
messages.append("⚠️ Ubushyuhe buri hasi, turakoresha Heater.")
device_state["heater"] = True
device_state["ac"] = False
else:
messages.append("✅ Ubushyuhe buri mu rugero, AC na Heater birazimye.")
device_state["ac"] = False
device_state["heater"] = False
if humidity < 30:
messages.append("⚠️ Umuyaga uri hasi, tuzongera fan na Humidifier.")
device_state["fan"] = True
device_state["humidifier"] = True
device_state["dehumidifier"] = False
elif humidity > 60:
messages.append("⚠️ Umuyaga uri hejuru cyane, tuzimanura fan kandi dukoreshe dehumidifier.")
device_state["fan"] = False
device_state["dehumidifier"] = True
device_state["humidifier"] = False
else:
messages.append("✅ Umuyaga uri mu rugero rwiza, fan, humidifier na dehumidifier birazimye.")
device_state["fan"] = False
device_state["humidifier"] = False
device_state["dehumidifier"] = False
if temperature > 28 or humidity > 65:
device_state["window"] = "closed"
messages.append("❌ Amadirishya yafunzwe kubera ubushyuhe cyangwa umuyaga uri hejuru.")
else:
device_state["window"] = "open"
messages.append("✅ Amadirishya yafunguwe.")
for device in ["ac", "heater", "fan", "humidifier", "dehumidifier"]:
status = "ON" if device_state[device] else "OFF"
messages.append(f"ℹ️ {device.capitalize()} status: {status}")
messages.append(f"ℹ️ Window status: {device_state['window'].capitalize()}")
return "\n".join(messages)
with gr.Blocks() as demo:
gr.Markdown("## Climate Control System - Igenzura ry'Ubushyuhe, Umuyaga, na Windows")
temperature = gr.Slider(0, 50, step=1, label="Ubushyuhe (°C)", value=22)
humidity = gr.Slider(0, 100, step=1, label="Humidity (%)", value=40) # hano wasize 'value' utuzuye
output = gr.Textbox(label="Ibisubizo bya viateur AI", lines=12)
temperature.change(fn=climate_control, inputs=[temperature, humidity], outputs=output)
humidity.change(fn=climate_control, inputs=[temperature, humidity], outputs=output)
output.value = climate_control(temperature.value, humidity.value)
demo.launch()