134 lines
4.9 KiB
Python
134 lines
4.9 KiB
Python
# -*- coding: utf-8 -*-
|
||
from __future__ import annotations
|
||
|
||
__title__ = "ebuild_config_runtime"
|
||
__author__ = 'Mehmet Karatay & "Saraswati" (ChatGPT)'
|
||
__purpose__ = "Çalışma zamanı (runtime) ısıtma/soğutma parametreleri"
|
||
__version__ = "0.3.0"
|
||
__date__ = "2025-11-22"
|
||
|
||
"""
|
||
ebuild/config_runtime.py
|
||
|
||
Sık değişebilen, sistem durmadan güncellenebilen parametreler:
|
||
- ısı aralıkları
|
||
- kazan limitleri
|
||
- saatlik tasarruf haritaları
|
||
- override tabloları
|
||
"""
|
||
|
||
# -------------------------------------------------
|
||
# Sistem / Hedefler
|
||
# -------------------------------------------------
|
||
CFG_DEBUG = 1
|
||
BUILDING_AGG_STRATEGY = "robust"
|
||
BUILD_HEAT_TOLERANCE = 1.00 # ısı dengeleme toleransı
|
||
BUILD_EXIT_HEAT = 0 # 0= bina ort ısı, 1= üst kat, 2= alt kat, 3= en düşük daire ısısı
|
||
BUILDING_RANGE_C = (18.0, 28.0) # bina hedef aralığı
|
||
BUILDING_SETPOINT_C = 23.0 # seçili bina konfor sıcaklığı
|
||
BUILDING_INCREMENT_C = 0.5 # B modunda kademe adımı (ileride kullanacağız)
|
||
|
||
MAX_OUTLET_C = 45.0 # kazan çıkış emniyet limiti
|
||
OUTSIDE_LIMIT_HEAT_C = 30.0
|
||
USED_OUTSIDE_ELAPSED_S = 300 # 5 dk’da bir ‘used_outside’ güncelle
|
||
BURNER_COMFORT_OFFSET_C = 1.0 # seçili konfor sıcaklığı offset’i
|
||
CIRCULATION_MIN_RETURN_C = 25.0 # Çıkış ısısı bu değerin ALTINA düşerse pompalar DURUR
|
||
OUTSIDE_SMOOTH_SECONDS = 300
|
||
BUILDING_READ_PERIOD_S = 300 # bina istatistik okuma periyodu
|
||
|
||
# Hafta sonu lüks artırımı
|
||
WEEKEND_HEAT_BOOST_C = 2.0
|
||
WEEKEND_DAYS = (5, 6) # 5=Cumartesi, 6=Pazar
|
||
# Böylece debug sırasında bu min süreleri config’ten 0 yapar gerçekte devreye alırken 60–300 saniye gibi gerçekçi değerler verirsin
|
||
BURNER_MIN_RUN_SEC = 0
|
||
BURNER_MIN_STOP_SEC = 0
|
||
BURNER_HYSTERESIS_C = 0
|
||
|
||
# -------------------------------------------------
|
||
# Ateşleme bant haritaları
|
||
# -------------------------------------------------
|
||
BURNER_FIRE_SETPOINT_MAP = {
|
||
-9: {"fire": 70}, -8: {"fire": 69}, -7: {"fire": 67}, -6: {"fire": 66}, -5: {"fire": 65},
|
||
-4: {"fire": 63}, -3: {"fire": 62}, -2: {"fire": 61}, -1: {"fire": 59}, 0: {"fire": 58},
|
||
1: {"fire": 57}, 2: {"fire": 55}, 3: {"fire": 54}, 4: {"fire": 53}, 5: {"fire": 51},
|
||
6: {"fire": 50}, 7: {"fire": 48}, 8: {"fire": 47}, 9: {"fire": 46}, 10: {"fire": 44},
|
||
11: {"fire": 43}, 12: {"fire": 42}, 13: {"fire": 40}, 14: {"fire": 39}, 15: {"fire": 38},
|
||
16: {"fire": 36}, 17: {"fire": 35},
|
||
}
|
||
|
||
DELTA_T_MAP_HOURLY = {
|
||
0: 6, 1: 6, 2: 6, 3: 6, 4: 6, 5: 6, 6: 7, 7: 7, 8: 7, 9: 7, 10: 7, 11: 7,
|
||
12: 6, 13: 6, 14: 6, 15: 6, 16: 6, 17: 6, 18: 7, 19: 7, 20: 7, 21: 7, 22: 7, 23: 7,
|
||
}
|
||
|
||
SAVING_T_PERCENT_HOURLY = {
|
||
0: 95, 1: 90, 2: 85, 3: 85, 4: 90, 5: 95, 6: 95, 7: 100, 8: 100, 9: 95, 10: 90, 11: 95,
|
||
12: 100, 13: 95, 14: 90, 15: 85, 16: 90, 17: 95, 18: 95, 19: 100, 20: 100, 21: 100, 22: 100, 23: 100,
|
||
}
|
||
|
||
# -------------------------------------------------
|
||
# Zaman bazlı override (örnekler)
|
||
# -------------------------------------------------
|
||
HEAT_TIME_OVERRIDES = [
|
||
{
|
||
"enable": True,
|
||
"start": "19:00",
|
||
"end": "22:00",
|
||
"days": [0, 1, 2, 3, 4, 5, 6],
|
||
"outside_c": [7, 18],
|
||
"set_fire_c": 45,
|
||
"note": "sabah konfor",
|
||
},
|
||
{
|
||
"enable": False,
|
||
"start": "12:00",
|
||
"end": "13:30",
|
||
"days": [0, 1, 2, 3, 4],
|
||
"outside_c": [14, 20],
|
||
"building_c": 27,
|
||
"note": "öğle sıcak tut",
|
||
},
|
||
{
|
||
"enable": False,
|
||
"start": "16:00",
|
||
"end": "18:00",
|
||
"days": [5, 6],
|
||
"outside_c": [14, 18],
|
||
"set_fire_c": 50,
|
||
"note": "akşam artır",
|
||
},
|
||
{
|
||
"enable": False,
|
||
"start": "20:30",
|
||
"end": "22:00",
|
||
"days": [0, 1, 2, 3, 4, 5, 6],
|
||
"outside_c": [8, 15],
|
||
"set_fire_c": 38,
|
||
"building_c": 26,
|
||
"note": "gece ekonomik",
|
||
},
|
||
]
|
||
|
||
SHOW_OVERRIDE_NOTE = 0 # 0: not yazma, 1: yaz
|
||
SHOW_ALL_OVERRIDES = 1 # 1: dış ısı aralığı eşleşmese de listele (gün eşleşmesi yine aranır)
|
||
|
||
# -------------------------------------------------
|
||
# Mevsim parametreleri
|
||
# -------------------------------------------------
|
||
SEASON_SPRING_SAVE_DAYS = 20
|
||
SEASON_AUTUMN_SAVE_DAYS = 20
|
||
xSEASON_SPRING_SAVE_DAYS = (5, 20) # 5–20 Nisan
|
||
xSEASON_AUTUMN_SAVE_DAYS = (15, 30) # 15–30 Eylül
|
||
|
||
SEASON_PROVIDER = "SunHolidayInfo"
|
||
SEASON_LANG = "tr"
|
||
SEASON_NAMES = ("İlkbahar", "Yaz", "Sonbahar", "Kış")
|
||
SEASON_ENG = {
|
||
"İlkbahar": "Spring",
|
||
"Yaz": "Summer",
|
||
"Sonbahar": "Autumn",
|
||
"Kış": "Winter",
|
||
}
|
||
SPRING_HOURS = ["00:00", "22:00"] # 00 → sunset bazlı başlangıç
|
||
SPRING_START_MINUTE = 30
|