File size: 2,740 Bytes
b557be8
 
bae5280
 
 
 
 
 
f513458
bae5280
b557be8
bae5280
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b557be8
bae5280
 
 
 
1678cd1
 
0de2ca5
1678cd1
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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()