Yapay zeka ile HVAC optimizasyonu, bir binanın ısıtma, havalandırma ve iklimlendirme sisteminden gelen verileri kullanarak her zonun gerçekte nasıl davrandığını öğrenir; ardından kullanıcıları daha az enerjiyle konforlu tutan başlatma zamanlarını, set değerlerini ve programları seçer. Bu kullanım senaryosunda MQTT ile hangi verilerin toplanacağını, bir zonun ısıl tepkisinin bu veriden nasıl öğrenileceğini, optimum başlatma zamanının nasıl hesaplanacağını ve önerilerin binaya nasıl güvenle geri gönderileceğini göreceksiniz.
Geleneksel HVAC Kontrolü Enerjiyi Nerede Boşa Harcar
Çoğu bina otomasyon sistemi, devreye alma sırasında yapılandırılmış sabit programlar ve sabit set değerleriyle çalışır. Klima santrali her hafta içi saat 06:00'da başlar, çünkü bir zamanlar biri bunun yeterince erken olduğuna karar vermiştir; gecenin ılık ya da soğuk geçmesi fark etmez. Set değerleri, yarı boş bir cuma öğleden sonrasında da aynı değerde kalır. Komşu zonlarda eş zamanlı ısıtma ve soğutma aylarca fark edilmeden sürer.
Bunların hiçbiri, bir set değerini iyi tutma görevini yerine getiren kontrolörlerin hatası değildir. Boşluk denetim (supervisory) seviyesindedir: hava durumu, doluluk ve binanın ısıl davranışı göz önüne alındığında set değerlerinin ve programların ne olması gerektiğine karar vermek. Veriye dayalı modeller tam da burada yardımcı olur ve bu yüzden yapay zeka ile HVAC optimizasyonu genellikle mevcut bina otomasyon sisteminin yerini almak yerine onun üzerinde konumlanır.
Yapay Zeka ile HVAC Optimizasyonu için Toplanacak Veriler
| Veri | Kaynak | Tipik aralık | Neden önemli |
|---|---|---|---|
| Zon hava sıcaklığı | BMS noktaları, kablosuz sensörler | 1–5 dk | Kontrol edilen konfor değişkeni |
| Zon set değerleri ve modu | BMS | Değişimde | Kontrolörün ulaşmaya çalıştığı hedef |
| Üfleme havası sıcaklığı ve debisi, vana veya damper konumları | AHU ve VAV kontrolörleri | 1–5 dk | Ne kadar ısıtma veya soğutma sağlandığı |
| Dış ortam sıcaklığı, nem, güneş ışınımı | Meteoroloji istasyonu veya servisi | 5–15 dk | Ana dış bozucu etki |
| Doluluk | Programlar, kişi sayaçları, CO2 | 5–15 dk | Gereken konfor ve iç kazançlar |
| Elektrik veya ısıl enerji | Chiller, kazan ve AHU sayaçları | 15 dk | En aza indirilen maliyet |
Bina otomasyon sistemleri genellikle BACnet veya Modbus konuşur. Bir gateway ilgili noktaları okur ve bunları tutarlı bir hiyerarşi altında bir MQTT broker'a yayınlar; böylece optimizasyon servisinin üreticiye özgü nokta adlarını bilmesi gerekmez:
connectmq/hq/floor3/zone-east/temperature {"ts":..., "value": 23.8, "unit":"degC"}
connectmq/hq/floor3/zone-east/setpoint {"ts":..., "value": 22.0, "unit":"degC"}
connectmq/hq/floor3/ahu2/supply_temp {"ts":..., "value": 14.2, "unit":"degC"}
connectmq/hq/weather/outdoor_temp {"ts":..., "value": 31.5, "unit":"degC"}
connectmq/hq/floor3/zone-east/recommendation {"ts":..., "start_at":"06:40", "reason":"..."}
Gateway'de bina protokolleri arasında seçim yapıyorsanız, BACnet ile Modbus karşılaştırması bunları kıyaslıyor.
Üç Optimizasyon Fırsatı
- Optimum başlatma ve durdurma. Her zonun iklimlendirmesini, doluluk başladığında konfor bandına ulaşacak kadar erken başlatın; binanın ısıl kütlesi insanlar ayrılana kadar sıcaklığı koruyabilecekse erken durdurun.
- Set değeri optimizasyonu. Zonlar boş veya az dolu olduğunda set değerlerini konfor bandı içinde gevşetin; düşük talepli veya düşük fiyatlı saatlerde ön soğutma ya da ön ısıtma yapın.
- Arıza ve israf tespiti. Aynı anda ısıtan ve soğutan zonları, hiç kapanmayan vanaları veya kayan sensörleri bulun. Bunlar çoğu zaman en hızlı tasarrufları sağlar.
Optimum başlatma en iyi ilk projedir: açıklaması kolaydır, tasarrufu ölçülebilirdir ve başarısızlık durumu (açılışta biraz sıcak bir zon) hafiftir.
Bir Zonun Isıl Tepkisini Öğrenmek
Pek çok bina, kısa ufuklarda makul ölçüde birinci dereceden bir ısıl sistem gibi davranır. Zon sıcaklığının zaman adımı başına değişimi, dış ortam sıcaklığıyla olan farka (kabuk üzerinden ısı kazancı) ve HVAC'ın sağladığı soğutma veya ısıtmaya bağlıdır:
T[k+1] - T[k] = a * (T_out[k] - T[k]) + b * u[k] + c
Burada u HVAC çıktısıdır (örneğin soğutmanın açık veya kapalı olması ya da vana konumu), c ise ortalama iç ve güneş kazançlarını yansıtır. Birkaç haftalık veri üzerinde doğrusal regresyonla her zon için a, b ve c değerlerini uydurmak bir gri kutu (gray-box) model verir: güvenilecek kadar basit, her zonun gerçek davranışını yansıtacak kadar veriye dayalı. Daha ileri projeler doluluk ve güneş özellikleriyle gradient boosting veya sinir ağı modelleri kullanır; ancak gri kutu model güçlü ve açıklanabilir bir başlangıç noktasıdır.
Örnek: MQTT Verisiyle Optimum Başlatma
Aşağıdaki betik bir zon için ısıl modeli uydurur, ardından zonu doluluk başlangıcına kadar konfor bandına getiren en geç soğutma başlatma zamanını arar. Her yerde çalışsın diye simüle edilmiş geçmiş veri kullanır ve öneriyi genel MQTT test broker'ına yayınlar. Gerçek bir kurulumda geçmiş veri historian abonenizden, hava durumu tahmini ise bir meteoroloji servisinden gelir.
import json
import random
import time
import uuid
import numpy as np
import paho.mqtt.client as mqtt
from sklearn.linear_model import LinearRegression
STEP_MIN = 5
COMFORT_MAX = 24.0
OCCUPANCY_START = "08:00"
# --- 1. Simüle edilmiş geçmiş (historian verisiyle değiştirin) -------------
rng = np.random.default_rng(1)
true_a, true_b, true_c = 0.004, -0.06, 0.004
T, rows = 25.0, []
for k in range(14 * 24 * 12): # 5 dakikalık adımlarla iki hafta
hour = (k * STEP_MIN / 60) % 24
t_out = 24 + 7 * np.sin((hour - 9) / 24 * 2 * np.pi)
u = 1.0 if 7 <= hour < 18 else 0.0
T_next = T + true_a * (t_out - T) + true_b * u + true_c + rng.normal(0, 0.03)
rows.append((T, t_out, u, T_next - T))
T = T_next
data = np.array(rows)
X = np.column_stack([data[:, 1] - data[:, 0], data[:, 2]])
model = LinearRegression().fit(X, data[:, 3])
a, b = model.coef_
c = model.intercept_
print(f"learned a={a:.4f} b={b:.4f} c={c:.4f}")
# --- 2. Optimum başlatma araması --------------------------------------------
def simulate(start_index, T0, t_out_forecast, occ_index):
T = T0
for k in range(occ_index):
u = 1.0 if k >= start_index else 0.0
T = T + a * (t_out_forecast[k] - T) + b * u + c
return T
T_now = 25.2 # 05:00'te zon sıcaklığı
steps_until_occ = (8 - 5) * 60 // STEP_MIN # 05:00 -> 08:00
t_out_fc = [22 + 0.08 * k for k in range(steps_until_occ)] # ısınan sabah tahmini
best = 0
for start in range(steps_until_occ, -1, -1): # önce en geç başlatma
if simulate(start, T_now, t_out_fc, steps_until_occ) <= COMFORT_MAX - 0.3: # küçük güvenlik payı
best = start
break
start_minutes = 5 * 60 + best * STEP_MIN
start_at = f"{start_minutes // 60:02d}:{start_minutes % 60:02d}"
print("recommended cooling start:", start_at)
# --- 3. Öneriyi yayınla -----------------------------------------------------
BASE = f"connectmq/demo/{uuid.uuid4().hex[:8]}/hq/floor3/zone-east"
rec = {
"ts": int(time.time() * 1000),
"start_at": start_at,
"occupancy_start": OCCUPANCY_START,
"comfort_max": COMFORT_MAX,
"model": {"a": round(a, 5), "b": round(b, 5), "c": round(c, 5)},
"reason": "latest start meeting comfort band with forecast outdoor temperature",
}
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="hvac-opt-" + uuid.uuid4().hex[:8])
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_start()
client.publish(f"{BASE}/recommendation", json.dumps(rec), qos=1, retain=True).wait_for_publish()
client.loop_stop()
client.disconnect()
print("published to", f"{BASE}/recommendation")
pip install paho-mqtt numpy scikit-learn ile kurun. Uydurulan katsayılar simüle edilen değerlere yakın çıkar ve öneri, sabit bir erken başlatmanın olacağı zamandan belirgin şekilde daha geçtir. Gerçek bir binada, önerinin devreye girmesine izin vermeden önce önerilen zamanı birkaç hafta boyunca sabit programla karşılaştırın; AHU çalışma süresindeki fark beklenen tasarrufunuzdur.
Önerileri Güvenle Uygulamak
Gerçek ekipmana set değeri göndermek, bir grafik yayınlamaktan daha fazla özen gerektirir. Pratik bir ilerleme şöyledir:
- Danışma modu. Yalnızca önerileri yayınlayın; tesis personeli bunları bir dashboard'da gerçekleşen sonuçlarla birlikte inceler.
- Sınırlandırılmış otomasyon. Bir gateway veya BMS entegrasyonu önerileri yalnızca katı sınırlar içinde kabul eder; örneğin başlatma 05:00'ten önce olmaz, set değerleri yalnızca 21 ile 25 degC arasında olur ve birkaç dakikadan eski mesajlar yok sayılır. MQTT 5 mesaj ömrü (message expiry) burada işe yarar; bayat komutlar broker tarafından atılır.
- Geri dönüş (fallback). Öneriler gelmeyi bırakırsa BMS otomatik olarak normal programına döner.
- İnsan müdahalesi. Yerel müdahaleler her zaman önceliklidir ve modelin bunlardan öğrenebilmesi için her müdahale bir olay olarak kaydedilir.
Bu sınırlar yalnızca yapay zeka servisinde değil, ekipman tarafındaki entegrasyonda da bulunmalıdır; böylece modeldeki bir hata ekipmanı güvenli aralıkların dışına itemez. IoT cihazlarının yapay zeka ile güvenli kontrolü yazısı bu korkulukları derinlemesine ele alıyor.
Sonuçları Ölçmek
Tasarruf iddiasında bulunmak kolay, kanıtlamak zordur. Benzerleri benzerlerle karşılaştırın: öncesi ve sonrası için benzer dış ortam sıcaklığına ve doluluğa sahip hafta içi günler ya da eski ve yeni program arasında gün aşırı geçiş. Konforu enerji kadar dikkatle izleyin; zon başına konfor bandı dışında geçen dakikaları kullanın. Her ikisini de operasyonel verinin yanında görünmeleri için topic olarak yayınlayın. Bir enerji yük tahmini modeli burada referans olarak yardımcı olur: eski strateji altındaki tahmini talep ile yeni strateji altında ölçülen talep arasındaki fark, etkinin adil bir tahminidir.
Veri Katmanını ConnectMQ Üzerinde Çalıştırmak
ConnectMQ, BMS noktalarını, hava durumu verilerini, önerileri ve sonuçları gateway'iniz ile optimizasyon servisiniz arasında taşıyan yönetilen MQTT broker'ı sağlar. Canlı topic gezgini önerileri etkiledikleri zon sıcaklıklarının yanında gösterir; eşik tabanlı uyarı kuralları ise konfor bandının dışına çıkan zonları işaretleyebilir. Modellerin kendisi, örneğin bir Python servisi veya bir Node-RED akışı gibi kendi client'larınızda çalışır. Bağlantılı cihazlarla yapay zekanın büyük resmi için yapay zeka ve IoT rehberine, yeniden kullanabileceğiniz tahmin teknikleri için ise IoT zaman serisi tahmini yazısına bakın.
ConnectMQ ile Başlayın
app.connectmq.com adresinde kredi kartı gerektirmeden ücretsiz bir Serverless broker oluşturun. BMS gateway'inizi oluşturulan YOUR_USERNAME, YOUR_PASSWORD ve YOUR_CLIENT_ID bilgileriyle bağlayın, birkaç haftalık zon verisi toplayın ve optimum başlatma örneğini kendi binanızda çalıştırın. Daha fazla bina ekledikçe bir bulut MQTT broker planı, topic'lerinizi değiştirmeden bağlantı sayısını ölçekler.
Sık Sorulan Sorular
Yapay zeka ile HVAC optimizasyonu nedir?
Yapay zeka ile HVAC optimizasyonu, bina verilerini ve modelleri kullanarak sabit yapılandırmalardan daha iyi HVAC başlatma zamanları, set değerleri ve programlar seçer; zonları konfor bandı içinde tutarken enerji tüketimini azaltır.
Yapay zeka ile HVAC optimizasyonu bina yönetim sisteminin yerini alır mı?
Hayır. Genellikle set değerlerini ve programları öneren veya gönderen bir denetim katmanı olarak çalışır; mevcut BMS kontrolörleri ise ekipmanı çalıştırmaya ve yerel güvenliği sağlamaya devam eder.
Başlamak için ne kadar veri gerekir?
Optimum başlatma için basit bir ısıl modeli uydurmaya, 5–15 dakikalık aralıklarla birkaç haftalık zon sıcaklığı, HVAC durumu ve dış ortam sıcaklığı verisi yeterlidir. Mevsimsel etkiler için daha uzun bir geçmiş gerekir.
Otomatik set değeri değişikliklerini nasıl güvenli tutarım?
Ekipman tarafındaki entegrasyonda katı sınırlar ve mesaj yaşı kontrolleri uygulayın, öneriler kesildiğinde normal programa geri dönün ve yerel müdahalelerin her zaman öncelikli olmasını sağlayın.



