Skip to content

0.8.0

Compare
Choose a tag to compare
@mhthies mhthies released this 25 Dec 21:59
· 71 commits to main since this release
1eaa7e9

Breaking Changes

  • Replaced interfaces' get_status() method with monitoring_connector(), returning a Readable (and optionally Subscribable) connector object, providing the interface health state as InterfaceStatus value
  • Field InterfaceStatus.metrics has been removed
    • Custom get_status() / monitoring connector implementations need to respect the removed field of the named tuple
    • Future metrics reporting for monitoring systems shall use additional SHC connectable objects (like the connector objects of the EventLoopMonitor interface interface)
  • Attribute criticality of interfaces has been removed
  • shc.log.generic moved to shc.data_logging
  • PersistenceVariable has been renamed to DataLogVariable and completely reworked in its internal interface and behaviour.
  • shc.log.in_memory moved to shc.interfaces.in_memory_data_logging and InMemoryPersistenceVariable has been renamed to InMemoryDataLogVariable
  • shc.log.mysql moved to shc.interfaces.mysql and MySQLPersistence has been renamed to MySQLConnector
  • Interface of MySQLConnector for retrieving non-logging persistence connector objects has been reworked, with new method persistence_variable()
  • New database schema for MySQL interface (when used for value persistence without data logging)

New Features

  • New EventLoopMonitor interface, for checking the asyncio event loop health via the monitoring interface
  • New Nagios-compatible monitoring script (Nagios Plugin) "check_shc.py" in shc/util/check_shc.py for monitoring the SHC server health via the HTTP monitoring endpoint
  • New SimpleInputConnector and SimpleOutputConnector helper classes. They can for example be used to build function-block-like classes for SHC with multiple input and output connectors and internal logics.
  • New telemetry connector for Tasmota interface.
  • New energy connector for Tasmota interface
    • old energy_x() connectors are deprecated and will be removed in a future release

Misc Improvements

Internal changes

  • We now use flake8 instead of pycodestyle for even stricter code style checking
  • New test infrastructure for basic unit-testing of all data logging interfaces