# -*- coding: utf-8 -*- from __future__ import annotations __title__ = "ebuild_config_statics" __author__ = 'Mehmet Karatay & "Saraswati" (ChatGPT)' __purpose__ = "Bina ve donanım topolojisi için statik konfigürasyon" __version__ = "0.3.0" __date__ = "2025-11-22" """ ebuild/config_statics.py Statik (mimari) konfigürasyon ----------------------------- Bu dosyada bina ve donanım topolojisine ait, sık değişmeyen ayarlar tutulur. Rasp2 pin eşlemeleri, brülör topolojisi, bina/geo bilgileri vb. """ # ------------------------------------------------- # Brülör çalışma modu # ------------------------------------------------- # F : Dış ısıya bağlı kazan kontrolü # B : Bina ortalama sıcaklığa bağlı kontrol BUILD_BURNER = "F" # ilk deneme F BURNER_DEFAULT_ID = 0 # seçili brülör id # ------------------------------------------------- # Bina kimliği / konum # ------------------------------------------------- BUILDING_NAME = "Gunes Apt" BUILDING_LOCATION = "Ankara" BUILDING_LABEL = "Resat Nuri" GEO_CITY = "Ankara" GEO_COUNTRY = "Turkey" GEO_TZ = "Europe/Istanbul" GEO_LAT = 39.92077 GEO_LON = 32.85411 # Lisans ve sistem ana anahtarı BUILDING_LICENCEID = 10094 BUILDING_SYSTEMONOFF = 1 # 1=On, 0=Off # ------------------------------------------------- # Daire / oda topolojisi (DS18B20) # ------------------------------------------------- # Her kayıt: bina içindeki flat/room dağılımı FLAT_AREA = [ {"serial": "28-00000660e983", "flat_no": 2, "room_no": 0, "floor": 1, "direction": 5, "size_m2": 0.0}, {"serial": "28-0000066144f9", "flat_no": 22, "room_no": 0, "floor": 1, "direction": 7, "size_m2": 0.0}, {"serial": "28-000006605827", "flat_no": 11, "room_no": 0, "floor": 4, "direction": 1, "size_m2": 0.0}, {"serial": "28-000005fd46c4", "flat_no": 24, "room_no": 0, "floor": 2, "direction": 7, "size_m2": 0.0}, {"serial": "28-00000660dc99", "flat_no": 25, "room_no": 0, "floor": 2, "direction": 7, "size_m2": 0.0}, {"serial": "28-00000141b977", "flat_no": 28, "room_no": 0, "floor": 2, "direction": 7, "size_m2": 0.0}, {"serial": "28-000006616fc3", "flat_no": 6, "room_no": 0, "floor": 2, "direction": 1, "size_m2": 0.0}, {"serial": "28-00000660ca02", "flat_no": 1, "room_no": 0, "floor": 1, "direction": 4, "size_m2": 0.0}, ] # ------------------------------------------------- # Hat sensörleri (tamamen DS18B20) # ------------------------------------------------- # Dış ısı OUTSIDE_SENSOR_ID = "28-000000b2aa05" OUTSIDE_SENSOR_NAME = "Dış Isı 1" # Kazan çıkış BURNER_OUT_SENSOR_ID = "28-946778126461" BURNER_OUT_SENSOR_NAME = "Çıkış Isı 2" # Dönüş hatları RETURN_LINE_SENSOR_IDS = [ "28-566978126461", "28-506478126461", "28-46fa45126461", ] RETURN_LINE_SENSOR_NAME_MAP = { "28-566978126461": "Kuzey Hat4", "28-506478126461": "Güney Hat3", "28-46fa45126461": "Guney Bat, 5", } # ------------------------------------------------- # Donanım / röle / pin eşlemeleri # ------------------------------------------------- GPIO_BOARD_REVISION = 3 BURNER_IGNITER_CH = "igniter" RELAY_GPIO = { "igniter": 16, "circulation_a": 26, "circulation_b": 24, } # Brülör grupları – RelayDriver buradan beslenir BURNER_GROUPS = { 0: { "name": "MainBurner", "location": "Sol binada", "igniter_pin": 16, # BCM 16 → phys 36 (örnek) "circulation": { "circ_1": {"channel": "circulation_a", "pin": 26, "default": 1}, "circ_2": {"channel": "circulation_b", "pin": 24, "default": 0}, }, }, # 1: {...} # ilerde ikinci brülör } # Temel röle kanalları (soyut isim → GPIO) RELAY_GPIO = { "igniter": 16, # BCM 16, Fiziksel 36 "circulation_a": 26, # BCM 26, Fiziksel 37 "circulation_b": 24, # BCM 24, Fiziksel 18 "gas_sensor": 22, # BCM 22, Fiziksel 15 "pressure_sensor": 6, # BCM 6, Fiziksel 31 } PUMP_HAS_DUAL_PUMPS = True PUMP_FEEDBACK_INPUT_PINS = [] PUMP_ROTATE_HOURS_DEFAULT = 24 # ------------------------------------------------- # Buzzer + RGB LED # ------------------------------------------------- BUZZER_ENABLE = 1 BUZZER_ACTIVE_HIGH = True BUZZER_BASE_FREQ = 2000 # Hz BUZZER_PATTERNS = { "cfg_reload": [ (1, 10), ], "startup": [ (1, 80), (0, 0), ], "shutdown": [[200, 0, 1]], "reload": [[300, 100, 1], [120, 100, 1], [300, 0, 1]], "alarm": [[500, 200, 2], [500, 200, 2], [500, 200, 2]], } OUTPUT_GPIO = { "buzzer": 18, # BCM 18, Fiziksel 12 - PWM – buzzer "rgb_r": 12, # BCM 12, Fiziksel 32 - PWM – kırmızı "rgb_g": 13, # BCM 13, Fiziksel 33 - PWM – yeşil "rgb_b": 19, # BCM 19, Fiziksel 35 - PWM – mavi "led": 23, # BCM 23, Fiziksel 16 - basit LED } RGB_ORDER = "GRB" RGB_COMMON_ANODE = False RGB_BASE_FREQ = 1000 # Hz INPUT_GPIO = { "button": 21, # BCM 21, Fiziksel 40 "burner_contactor": 20, # BCM 20, Fiziksel 38 "circulation_contactor1": 27, # BCM 27, Fiziksel 13 "circulation_contactor2": 17, # BCM 17, Fiziksel 11 }