Files
ClimatController/app/my_dataclasses.py

69 lines
1.3 KiB
Python

from pathlib import Path
from dataclasses import asdict, dataclass
from typing import Any, Mapping
# Константы и классы
# Константы
# MAC Bluetooth бризера
TION_MAC = "d1:74:9b:eb:ee:a6"
QINGPING_MAC = "CCB5D131BA93"
QINGPING_MQTT_HOST = "192.168.7.3"
QINGPING_MQTT_PORT = 1883
MIN_FAN_SPEED = 1
MAX_FAN_SPEED = 6
MIN_TARGET_TEMP = 5
MAX_TARGET_TEMP = 30
AIR_MODE_OUTSIDE = "outside"
AIR_MODE_RECIRCULATION = "recirculation"
SUPPORTED_AIR_MODES = {
AIR_MODE_OUTSIDE,
AIR_MODE_RECIRCULATION,
}
PROJECT_ROOT = Path(__file__).resolve().parents[1]
SCHEDULE_FILE = (
PROJECT_ROOT
/ "config"
/ "schedule.yaml"
)
AUTO_CONFIG_FILE = (
PROJECT_ROOT
/ "config"
/ "auto.yaml"
)
WATCHDOG_INTERVAL = 5.0
# Type 13 обычно приходит примерно раз в 60 секунд.
# Даём дополнительный запас.
HEARTBEAT_STALE_AFTER = 90.0
# После появления устройства ждём первый sensor sample
# не дольше этого времени.
FIRST_SAMPLE_TIMEOUT = 30.0
# Если новые sensor samples не приходят дольше этого времени,
# считаем sensor stream зависшим.
SAMPLE_STALE_AFTER = 45.0
QINGPING_SAMPLE_TIMEOUT = 60.0
QINGPING_RECOVERY_TIMEOUT = 30.0
#Классы