Files
voltage-monitor/config.py
Mateusz Gruszczyński 9e6d280b05 no hardcode
2026-02-05 11:01:23 +01:00

79 lines
2.8 KiB
Python

# -*- coding: utf-8 -*-
import os
# Konfiguracja InfluxDB - Twoje specyficzne ustawienia
INFLUXDB_CONFIG = {
'host': os.getenv('INFLUXDB_HOST', 'stats.mngmnt.r.local'),
'port': int(os.getenv('INFLUXDB_PORT', 8087)),
'database': os.getenv('INFLUXDB_DATABASE', 'ha'),
'username': os.getenv('INFLUXDB_USER', ''),
'password': os.getenv('INFLUXDB_PASSWORD', ''),
}
# Konfiguracja Faz i zapytań SQL
PHASES = {
1: {
'entity_id': '0_electricity_meter_voltage_phase_1',
'label': 'L1',
'color': '#3498db',
'query': 'SELECT min("value") as voltage FROM "V" WHERE ("entity_id" = \'0_electricity_meter_voltage_phase_1\') AND time > now() - $timeFilter GROUP BY time($__interval) fill(null)'
},
2: {
'entity_id': '0_electricity_meter_voltage_phase_2',
'label': 'L2',
'color': '#9112f3',
'query': 'SELECT min("value") as voltage FROM "V" WHERE ("entity_id" = \'0_electricity_meter_voltage_phase_2\') AND time > now() - $timeFilter GROUP BY time($__interval) fill(null)'
},
3: {
'entity_id': '0_electricity_meter_voltage_phase_3',
'label': 'L3',
'color': '#2ecc71',
'query': 'SELECT min("value") as voltage FROM "V" WHERE ("entity_id" = \'0_electricity_meter_voltage_phase_3\') AND time > now() - $timeFilter GROUP BY time($__interval) fill(null)'
}
}
# Zakresy czasu
TIME_RANGES = {
'1h': {'filter': '1h', 'interval': '10s', 'label': '1h'},
'6h': {'filter': '6h', 'interval': '30s', 'label': '6h'},
'24h': {'filter': '24h', 'interval': '2m', 'label': '24h'},
'7d': {'filter': '7d', 'interval': '10m', 'label': '7d'},
'30d': {'filter': '30d', 'interval': '30m', 'label': '30d'},
'60d': {'filter': '60d', 'interval': '1h', 'label': '60d'},
'120d': {'filter': '120d', 'interval': '2h', 'label': '120d'},
'180d': {'filter': '180d', 'interval': '4h', 'label': '6m'},
'365d': {'filter': '365d', 'interval': '6h', 'label': '1r'}
}
DEFAULT_TIME_RANGE = '6h'
MEASUREMENT = 'V'
# ZAKRES BEZPIECZNY: 207V - 253V
# PROGI NAPIĘCIA
VOLTAGE_THRESHOLDS = {
'outage': 100, # < 100V = zanik
'min_safe': 207, # Dolny próg bezpieczny
'max_safe': 253, # Górny próg bezpieczny
'outage_detection': 10 # Próg dla api_outages
}
# PARAMETRY WYKRYWANIA EVENTÓW
MAX_EVENT_RANGE_DAYS = 61
MIN_EVENT_DURATION_MINUTES = 5.1
EVENT_DETECTION_INTERVAL = '1m'
DEFAULT_INTERVAL = '1m'
# Skalowanie
GAUGE_CONFIG = {'min': 190, 'max': 270}
CHART_CONFIG = {'y_min': 190, 'y_max': 270, 'update_interval': 2000}
# Flask settings - PORT 8798
FLASK_CONFIG = {
'host': '0.0.0.0',
'port': 8798,
'debug': False,
'secret_key': os.getenv('SECRET_KEY', 'voltage-monitor-secret-key'),
}
FOOTER = {'author': 'www.linuxiarz.pl', 'year': '2026'}