mirror of
https://github.com/ferdzo/iotDashboard.git
synced 2026-04-05 09:06:26 +00:00
47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
import os
|
|
from dataclasses import dataclass
|
|
import dotenv
|
|
from typing import Optional
|
|
|
|
dotenv.load_dotenv()
|
|
|
|
@dataclass
|
|
class RedisConfig:
|
|
host: str
|
|
port: int = 6379
|
|
db: int = 0
|
|
password: Optional[str] = None
|
|
|
|
@dataclass
|
|
class MQTTConfig:
|
|
broker: str
|
|
port: int = 1883
|
|
username: Optional[str] = None
|
|
password: Optional[str] = None
|
|
topic: str = "#"
|
|
|
|
@dataclass
|
|
class Payload:
|
|
device_id: str
|
|
sensor_type: str
|
|
value: float
|
|
timestamp: Optional[str] = None
|
|
|
|
|
|
class Config:
|
|
def __init__(self):
|
|
self.redis = RedisConfig(
|
|
host=os.getenv('REDIS_HOST', 'localhost'),
|
|
port=int(os.getenv('REDIS_PORT', 6379)),
|
|
db=int(os.getenv('REDIS_DB', 0)),
|
|
password=os.getenv('REDIS_PASSWORD', None)
|
|
)
|
|
self.mqtt = MQTTConfig(
|
|
broker=os.getenv('MQTT_BROKER', 'localhost'),
|
|
port=int(os.getenv('MQTT_PORT', 1883)),
|
|
username=os.getenv('MQTT_USERNAME', None),
|
|
password=None,
|
|
topic="#"
|
|
)
|
|
|
|
config = Config() |