30 lines
1001 B
Python
30 lines
1001 B
Python
from pydantic import BaseSettings, Field
|
|
import homie
|
|
|
|
VERSION = "0.1.1"
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings for the DSMR 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')
|
|
|
|
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
|
|
|
|
class Config:
|
|
"""Where to find the environment file containing the settings."""
|
|
env_file = '.env' |