Feature/v0.2.0 (#7)
* heateroutput limit 0 - 15000 w * heatoutput always positive * ENUM_IN_FSV_2041 value 0c00 unknwon added * recalculate crc6 checksum and check it * skip exception to reduce logging * NASAPacket and NASAMessage prepared for write mode MQTT Auto Discovery changed single entitity to all entities NASA Packet crc16 Checksum verificated * - Changed MQTT Auto Discovery Config Message from single Entitiy to all Entities at ones, known devices are fully configured, not known empty (markt to delete) - NASAPacket and NASAMessage are now bidirectional, can decode and encode Packets - Added crc16 Checksum check for any Packet to reduce incorrect value changes - Folling warnings moved to SkipInvalidPacketException and from warning to debug log level to reduce Logentries - Source Adress Class out of enum - Destination Adress Class out of enum - Checksum for package could not be validatet calculated - Message with structure type must have capacity of 1. * NASA_OUTDOOR_HP as kw unit * NASA Repository, measurements enums completed * filter wifikit heartbeat * process only packets from indoor or outdoor * correct readme * remove expire * device discovery status * new mqtt hass configuration approach * added new measurements * added new logging features from config * NASA_EHSSENTINEL_TOTAL_COP added * removed silentMode, added logging proccessedMessage * loaded devices * loaded devices counter fix * only if retain true * final 0.2.0 commit
This commit is contained in:
30
EHSConfig.py
30
EHSConfig.py
@@ -26,6 +26,7 @@ class EHSConfig():
|
||||
GENERAL = None
|
||||
SERIAL = None
|
||||
NASA_REPO = None
|
||||
LOGGING = {}
|
||||
|
||||
def __new__(cls, *args, **kwargs):
|
||||
"""
|
||||
@@ -77,6 +78,10 @@ class EHSConfig():
|
||||
self.MQTT = config.get('mqtt')
|
||||
self.GENERAL = config.get('general')
|
||||
self.SERIAL = config.get('serial')
|
||||
if 'logging' in config:
|
||||
self.LOGGING = config.get('logging')
|
||||
else:
|
||||
self.LOGGING = {}
|
||||
logger.debug(f"Configuration loaded: {config}")
|
||||
|
||||
self.validate()
|
||||
@@ -97,9 +102,6 @@ class EHSConfig():
|
||||
self.NASA_REPO = yaml.safe_load(file)
|
||||
else:
|
||||
raise ConfigException(argument=self.GENERAL['nasaRepositoryFile'], message="NASA Respository File is missing")
|
||||
|
||||
if 'silentMode' not in self.GENERAL:
|
||||
self.GENERAL['silentMode'] = True
|
||||
|
||||
if 'protocolFile' not in self.GENERAL:
|
||||
self.GENERAL['protocolFile'] = None
|
||||
@@ -132,4 +134,24 @@ class EHSConfig():
|
||||
raise ConfigException(argument=self.SERIAL['device'], message="mqtt user parameter is missing")
|
||||
|
||||
if 'password' not in self.MQTT and 'user' in self.MQTT:
|
||||
raise ConfigException(argument=self.SERIAL['device'], message="mqtt password parameter is missing")
|
||||
raise ConfigException(argument=self.SERIAL['device'], message="mqtt password parameter is missing")
|
||||
|
||||
if 'messageNotFound' not in self.LOGGING:
|
||||
self.LOGGING['messageNotFound'] = False
|
||||
|
||||
if 'messageNotFound' not in self.LOGGING:
|
||||
self.LOGGING['messageNotFound'] = False
|
||||
|
||||
if 'deviceAdded' not in self.LOGGING:
|
||||
self.LOGGING['deviceAdded'] = True
|
||||
|
||||
if 'packetNotFromIndoorOutdoor' not in self.LOGGING:
|
||||
self.LOGGING['packetNotFromIndoorOutdoor'] = False
|
||||
|
||||
if 'proccessedMessage' not in self.LOGGING:
|
||||
self.LOGGING['proccessedMessage'] = False
|
||||
|
||||
logger.info(f"Logging Config:")
|
||||
for key, value in self.LOGGING.items():
|
||||
logger.info(f" {key}: {value}")
|
||||
|
||||
Reference in New Issue
Block a user