Files
dsmr2mqtt/dsmr2mqtt/settings.py
2025-03-22 17:20:52 +01:00

33 lines
1.2 KiB
Python

import os
from . import __version__, NAME
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
import homie
HOSTNAME = os.getenv("HOSTNAME")
class Settings(BaseSettings):
"""Application settings for the DSMR 2 MQTT bridge."""
loglevel: str = Field('INFO', env='LOGLEVEL')
mqtt_host: str = Field(None, env='MQTT_HOST')
mqtt_port: int = Field(1883, env='MQTT_PORT')
mqtt_username: str = Field(None, env='MQTT_USERNAME')
mqtt_password: str = Field(None, env='MQTT_PASSWORD')
mqtt_client: str = Field(f"{NAME}-{HOSTNAME}", env='MQTT_CLIENT')
mqtt_share_client: bool = Field(True, env="MQTT_SHARE_CLIENT")
mqtt_tls: bool = Field(False, env='MQTT_TLS')
dsmr_port: str = Field('/dev/ttyUSB0', env='DSMR_PORT')
dsmr_protocol: str = Field('V5', env='DSMR_PROTOCOL')
dsmr_update_interval: int = Field(15, env='DSMR_UPDATE_INTERVAL')
homie_update_interval: int = 60
homie_topic: str = Field('homie', env='HOMIE_TOPIC')
homie_implementation: str \
= f"DSMR Homie {__version__} Homie 4 Version {homie.__version__}"
homie_fw_name: str = "DSMR"
homie_fw_version: str = __version__
model_config = SettingsConfigDict(extra='allow')