Release 1.9.3 - 31. Okt 2022

Dieses Release ist ein Wartungs-Release. Außer Bugfixes gibt es einige neue Features im Core von SmartHomeNG, sowie Updates zu einigen Plugins.

Bemerkung

Diese Release Notes sind ein Arbeitsstand.

  • Berücksichtigt sind Commits im smarthome Repository bis incl. 29. Okt 2022 (http module: Improve datatables, …)

  • Berücksichtigt sind Commits im plugins Repository bis incl. 29. Okt 2022 (Merge pull request #641 from ivan73/develop …)

Überblick

Dieses ist neues Release für SmartHomeNG. Die Änderungen gegenüber dem Release v1.9.2 sind im folgenden in diesen Release Notes beschrieben.

Minimum Python Version

Die absolute Minimum Python Version in der SmartHomeNG startet, ist Python 3.6.

Für das SmartHomeNG Release 1.10 wird die absolute Minimum Python Version auf Python 3.7 angehoben, da der Community Support für Python 3.6 am 23. Dezember 2021 endete.

Bei einer Neuinstallation wird jedoch empfohlen auf einer der neueren Python Versionen (3.8 oder 3.9) aufzusetzen.

Unterstützte Python Versionen

Die älteste offiziell unterstützte Python Version für SmartHomeNG Release 1.9.x ist Python 3.7. Automatisierte Tests von SmartHomeNG werden nur in den unterstützten Python Versionen durchgeführt. (Siehe auch Hard- u. Software Anforderungen im Abschnitt Installation zu unterstützten Python Versionen)


Allgemeine Änderungen

  • Die automatisierten Unit Tests von SmartHomeNG wurden von Travis auf Github Workflows umgestellt.


Änderungen am Core

  • Libs:

    • lib.db:

      • Fixed deprecation warnings

    • lib.item:

      • Fixed deprecation warnings

      • Small fix/improvement for logging caller on initialization

    • lib.logic:

      • Implemented r/o attributes as properties

      • Implemented some logic properties to distinguish them from the list of local variables of that logic

    • lib.metadata:

      • Fixed deprecation warnings

    • lib.scheduler:

      • Setting up a global environment when executing a logic (containing e.g. logger and logic variables)

    • lib.shpypi:

      • Extended logging of potential problem when consolidating requirements

    • lib.shtime:

      • Got rid of use of pytz module

    • lib.smarthome:

      • Fixed deprecation warnings

      • log stop when restarting in interactive, foreground or debug mode, see #493

    • lib.userfunction:

      • Bugfix

    • lib.utils:

      • Added running_virtual() function

  • Modules:

    • modules.admin:

      • Bugfix to show logs with old and new naming convention

      • Loglevels adjusted in api_loggers.py

    • modules.http:

      • Improve datatables, implement new auto refresh functionality

    • modules.websocket:

      • Prevent event listener for event type log from being registered multiple times. Otherwise, this error could lead to multiple entries in status.log widgets.


Änderungen bei Plugins

Allgmein

  • Workflows:

    • Disabled unittests on PRs for the moment because the workflow didn’t handle it correctly

    • Removed lines that trigger test on pull_request

    • Removed disabled triggers on test_dispatch_workflow.yml

    • Changed comment for ‚PR to wrong branch‘

Neue Plugins

Für Details zu den neuen Plugins, bitte die Dokumentation des jeweiligen Plugins unter http://www.smarthomeng.de/user/plugins_all.html konsultieren.

  • solarforecast:

    • Initial version of new solar forecast cloud plugin

  • rpi_info:

    • Initial Release

Plugin Updates

Für Details zu den Änderungen an den einzelnen Plugins, bitte die Dokumentation des jeweiligen Plugins unter http://www.smarthomeng.de/user/plugins_all.html konsultieren.

  • avm:

    • Improvement for HKRs: Allow set temperature to be set directly to value 126.5 (off/frost protection mode).

    • Minor fix for error handling

  • backend:

    • Fixed deprecation warnings

  • casambi:

    • Minor fix for casambi_id (now integer instead of num)

  • darksky:

    • Added database_maxage: 731 to items in struct, which had no max_age before.

  • database:

    • Reinserted ‚duplicate_use‘ to metadata for item_attribute ‚database‘

    • Added new feature to suppress standard db rewrite on plugin shutdown via item attribute database_write_on_shutdown; E.g. useful for constantly increasing items that are sampled at low frequency. The attribute is optional. By default, a rewrite for all db items on smarthomeNG shutdown is enabled.

    • Added documentation for new database_write_on_shutdown feature

    • Enhanced cleaning process for maxage

    • Updated and improved web interface to automatically refresh datatables, implement webif_pagelength config parameter

    • Fix webinterface to show pages even when no connection to database is possible, disable CSV export if item not found (e.g. database not connected)

    • Make table invisible on init to load faster

    • Improved rounding in web interface

    • Set default webif_pagelength to 0 = pageResize

    • Fix column widths and optimize responsive priority for webif

    • Added parameter removeold_cycle

    • Added log entry when dumping data, if dump was skipped before

    • Added total count of log entries to web interface

    • Fix bug with timestamp being None

    • Translate rest of user_doc into german

    • Added parameter default_maxage

    *Increased default value for max_delete_logentries to 1500

  • enocean:

    • Added plausibility check for powermeters

  • hue2:

    • Changed requirements to resolve conflict with appletv plugin

    • Added feature to change multiple functions at once

  • husky2:

    • Added aioautomower version to requirements

    • Corrected item structure

    • Fixed type error, corrected cases and updated valid lists

    • Removed unused command from list

    • Corrected cases

    • Added version info to doc

    • Changed login method to client credentials using apisecret

    • Added possibility to store last gps points in gpspoints item

    • Updated version of openlayers

    • Switched order of lat lng in gpspoints item

    • Switched order of lat lng for webif

    • Changed aioautomower version to 2022.9.0

    • Fixed token refresh by doing a re login

    • Removed unused items.yaml file

    • Updated user doc

    • Corrected token expiration in webif and close asyncio event loop on plugin stop

    • Added debug messages to plugin logger on token refresh

    • Raised plugin version to 2.1.0

    • Added missing activity and added note to user doc

    • Added unknown command to error log

    • Fixed to early closing of session on plugin stop

    • Added SV widget to show actual position and path of mower in google maps

    • Added eventloop stop before close

    • Added zoom level and path color to widget options

    • Removed not existing park command

    • Renamed SV widget

    • Packed asyncio eventloop into thread

  • influxdb2:

    • Reduced logging level in initialization phase

  • knx:

    • Fixed deprecation warnings

    • Add handling for knxd message being too short, e.g. for cache read

    • Recognize incomplete knx telegrams delivered by knxd cache read

    • Show items without knxd cache responses in red in webinterface

    • Bump up version number

    • Make log level for knxd cache problems configurable

    • user_doc: Webinterface section describes knxd cache read problems at start and log levels

  • modbus_tcp:

    • Keep connection open and use locking to ensure thread safety

    • Fixed bug undeclared variable (TypeStr)

  • mpd:

    • Fixed bugs with network data receive and parsing

    • Increase version number

  • mqtt:

    • simplify webif index.html based on newest changes in http module

    • Use datatables in web interface

  • neato:

    • Added decoding of command availability status, e.g. „start“ command available

    • If start command with persistent map is rejected due to „not_on_charge_base“ error, retry start with non-persistent map

  • nut:

    • Fixed initialization of parent class (smartPlugin)

  • openweathermap:

    • Update SV widget import

    • Added matchstring for dt_weekday

  • pluggit:

    • Created a previous version (v1.2.3) before accepting pull request

    • Plugin Rewrite as version v2.0.3

  • resol:

    • Minor improvement-> cleaned-up update_item method

    • Added frame CRC check

  • rtr:

    • Update SV widget import

  • rtr2:

    • Update SV widget import

  • russound:

    • Provide two functions to suspend and activate plugin without reload

  • simulation:

    • Update SV widget import

  • smlx:

    • Update user_doc.rst

    • Update plugin.yaml

    • Create WebIF

    • Code Cosmetics

    • Add lock, that just one poll cycle can be active

  • sonos:

    • Added appdirs to requirements.txt (needed for SoCo framework)

    • improved webinterface - list discovered speakers

    • Fixed play_tunein command; catched ConnectionResetError

    • Catched WebIf exception occurring for offline speaker

    • Fixed speaker discovery and handling in the case of single offline speakers

    • Updated SoCo framework to version 0.28.1

    • Added lxml python package to requirements (needed for SoCo version 0.28.1)

  • stateengine:

    • Fix release state (issue when defined after suspend state)

    • Fix release state

    • Adapt widget to new SV icon handling

    • Fix typo in log

    • Improve laststate and lastconditionset handling

    • Update laststate after running entry actions instead of before

    • Fix handling of relative item declarations plus minor improvements

    • Introduce option to get previous state (before laststate) and previous conditionset being used for actions and conditions

    • Add SV widget namespace import

    • Set proper defaults in widget Twig / php otherwise throws warnings

  • telegram:

    • Restrict version be <14.0 since then async will be used

  • uzsu:

    • If uzsu is updated by update_sun, no dry run is triggered to limit unneccessary CPU load

    • Fixes: * If one series entry has an error other entries are now still calculated (previously seriesCalculation was canceled on first issue) * If no end or starttime is given (e.g. in visu) for a series automatically start and end of the day are set to 00:00 and 23:59 * If series interval is too high for multiple series triggers the UZSU is now still correctly scheduled once at the given start time * Minor log improvement * Scheduler now also gets created if time series is more than 1 day in the future * Minor code improvements * Add maxCalculatedCount to series dict (for visu and debugging), fix issues with time series starting in the past * Improved internal dict handling. Dict gets updated correctly on run. Interpolation dict always gets extended if necessary. * Internal fix update seriesCalculated: implement correct maxCountCalculated * Improved web interface. Items get filles at start correclty (without init … bla bla) * Improve log handling and fix maxCountCalculated if interval is set too high * Fix and improve datatable handling in webif * Changed min shng version to 1.6 and get rid of some code lines checking for lower versions * Updated requirements for scipy to hopefully solve issues with installs on Raspis * Improve code, data handling, webIF and series calculation

  • vacations:

    • Added try catch to catch current issue with lib and (potentially) changed api. plugin however not working so far, until lib is updated.

    • Bumped dependency to ferien-api>=0.3.7

    • Fixed table layout

  • viessmann:

    • Corrected method „_bytes2int“

    • Writing values back to Heating Controller need to be in byteorder = ‚little‘

    • Bumped version to 1.2.3

  • xiaomi_vac:

    • Fix issue if no cleaning details are found.

    • Fix issue when no cleaning details are found (after new firmware flash or reset).

    • Bump to version 1.2.1

Outdated Plugins

Die folgenden Plugins wurden bereits in v1.6 als deprecated (veraltet) markiert. Das bedeutet, dass diese Plugins zwar noch funktionsfähig sind, aber nicht mehr weiter entwickelt werden. Sie werden in einem kommenden Release von SmartHomeNG entfernt werden. Anwender dieser Plugins sollten auf geeignete Nachfolge-Plugins wechseln.

  • System Plugins

    • backend - use the administration interface instead

    • sqlite_visu2_8 - switch to the database plugin

  • Web Plugins

    • wunderground - the free API is not provided anymore by Wunderground

Die folgenden Plugins wurden in v1.7 als deprecated (veraltet) markiert, weil kein Nutzer oder Tester dieser Plugins gefunden werden konnte:

  • Gateway Plugins

    • ecmd

    • elro

    • iaqstick

    • snom

    • tellstick

  • Interface Plugins

    • easymeter

    • smawb

    • vr100

  • Web Plugins

    • nma

Weiterhin wurde das bisherige mqtt Plugin zu mqtt1 umbenannt und als deprecated markiert, da das neue mqtt Plugin diese Funktionalität übernimmt. Das neue mqtt Plugin nutzt dazu das mqtt Modul des aktuellen Cores von SmartHomeNG.

Retired Plugins

Die folgenden Plugins wurden retired (in den RUhestand geschickt). Sie waren in einem der vorangegangenen Releases von SmartHomeNG als deprecated markiert worden. Diese Plugins wurden aus dem plugins Repository entfernt, stehen jedoch als Referenz weiterhin zur Verfügung. Diese Plugins wurden in das plugin_archive Repositiory aufgenommen.


Weitere Änderungen

Tools

Dokumentation

  • Update logging filters reference: make clear the entries have to be regular expressions

  • Added additional example for logging filters in logging best practices

  • Added include /etc/nginx/proxy_params; to reverse proxy docu

  • Multiple updates

  • Allow shpinx versions 5.x (<6)