Release 1.9.1 - 13. Feb 2022

Es gibt eine Menge neuer Features im Core von SmartHomeNG und den Plugins.

Überblick

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

Unterstützte Python Versionen

Die älteste offiziell unterstützte Python Version für SmartHomeNG Release 1.9 ist Python 3.6. (Siehe auch Hard- u. Software Anforderungen im Abschnitt Installation zu unterstützten Python Versionen)

Minimum Python Version

Die absolute Minimum Python Version in der SmartHomeNG startet wurde auf v3.6 angehoben, da Python 3.5 im September 2020 End-of-Life (End of security fixes) gegangen ist. Bei einer Neuinstallation wird jedoch empfohlen auf einer der neueren Python Versionen (3.8 oder 3.9) aufzusetzen.

Wichtig

Mit Release 1.9 werden die unterstützten Python Versionen (wie hier beschrieben) auf Python 3.7, 3.8, 3.9 angehoben.

Die Absolute Minimum Python Version, mit der SmartHomeNG startet ist 3.6.

Änderungen am Core

Updates to the CORE

  • Fixed initialization for cases where logging.yaml contains instructions that thow an exception when SmartHomeNG is not fully configured (requirements installed)

  • If logging.yaml gives an exception, logging.yaml.default is used

  • Changed restart handling, when in debug- or foreground-mode

  • Logics:

    • Logics are now prevented from beeing executed before SmartHomeNG is in Run-Mode (the initialization has finished) even if triggerd (by e.g. item initialization) during initialization phase

  • Libs:

    • lib.item:

      • introduce new property last_trigger(_by/_age) and prev_trigger(_by/_age) and according functions. This way it is possible to figure out what has triggered the eval expression. The property might be especially useful inside the eval expression itself but can also be used to figure out what, when (or if) an eval got triggered (without being updated, because maybe the eval didn’t succeed or the value has not changed)

      • Get relative item path: Fix issue where last character of expression part got truncated and therefore eval expression might get invalid

      • Fix for eval expressions, if crontab attribute is given with an init value, which is to be used in a numerical calculation

      • Fix for non numeric values on attribute crontab: init = xyz

    • lib.metadata:

      • Added attribute prefix ‚my_‘ for user defined attributes (for logics, etc.)

    • lib.network:

      • Fix for udp server eventloop too late

      • Pass timeout parameter

      • Add port to connect message

      • Fix validate_inet_addr return for invalid ip

      • Fix for clean shutdown if not connected

      • Added __str__ methods to simplyfy logging

      • Modified startup/connect logging

      • Modified __running initialization

      • Added more debug logging, modified connect_on_send behaviour to respect autoreconnect setting

      • Added autoconnect parameter

    • lib.orb:

      • Set requirement to ephem max version 4.1.0 because 4.1.3 has a bug or breaking change

      • Fix never up errors with ephem

    • lib.scheduler:

      • Trigger dict in logics contains now the source (cron, cycle) for scheduler triggers

      • Fixed bug where value wasn’t set correctly on cron triggers

      • Separated code to start a logic task to is’s own method

      • Implemented ‚raise LeaveLogic()‘ for logics

      • Small modification for executing logics

      • Added more details to ‚update_by‘ and ‚change_by‘ on items

      • Bugfix for ‚str‘ object has no attribute ‚get‘ (line 643)

    • lib.shpypi:

      • Small fixes

    • lib.smarthome:

      • Change getbasedir for user function to avoid deprecated warning

    • lib.triggertimes:

      • Fix a triggertimes with empty params or wrong parameter set size

      • Enhance debug message ‚eventtime is earlier than starttime‘

      • Fix a bug in relation to sunset with offset

  • Modules:

    • admin:

      • eval syntax checker sets ‚value‘ to the ‚path relative to‘ item, if it is specified

    • http:

      • Added datatables for use in webinterfaces of plugins

      • datatables: Fix table width in tabs

      • datatables: Improve defaults and fix some issues

      • datatables: update to 1.11.4

    • mqtt: Fixed _get_caller_type for logics (see issue #450)

    • websocket:

      • Removed „untested“ warning from trigger-logic command

      • Loglevel for ‚no close frame received or sent‘ reduced to INFO

Änderungen bei Plugins

New Plugins

For details of the changes of the individual plugins, please refer to the documentation of the respective plugin.

  • zigbee2mqtt: Plugin to control devices which are linked to Zigbee Gateway equipped with Zigbee2MQTT firmware. Communication is handled through the MQTT module of SmartHomeNG.

Plugin Updates

  • avdevice:

    • Fix web interface logging (introduces with last commit), remove very old versions

  • asterisk:

    • Check connected before calling close in stop

  • avm:

    • Created _pv_1_5_12 before merging PR

    • Connect to Smarthome Devices via AHA-Interface (tested with Fritz 440, Comet Dect) (therefore Plugin AVM smarthome can be depreciated)

    • Implemented call deflections (tested with Fritzbox 7530)

    • Renamed parameter „index“ to „avm_tam_index“

    • Code cleanup (add new functions to minimize code repetitions)

    • Improved error handling

    • Updated WebIF

    • Updated documentation

    • Bumped version to 1.6.1

  • casambi: Resend commands on transmission error (e.g. due to sigpipe error) once

  • database:

    • Prevent multiple threads for handling database_maxage

  • dlms:

    • Enhance returned result

    • Fixed a bug where no response was returned

    • Parameter baudrate will be stored to config now

    • Change parameter name for speed

  • enocean:

    • Added support for EEP A5_30_01 and A5_30_03, e.g. water leak sensor

    • Extended plugin webinterface

    • Suggest next free device ID (offset) value during teach-in process

    • New feature „enable/disable logging of unknown devices“ via plugin.yaml or WebIf

    • Added tooltips to WebIf

  • garminconnect:

    • Fix for login issues, using PyPi package with latest version (4.1.22) now. Still not 100% perfect, due to the package implementation. But at least working again

    • Added call to login method before each data retreival to prevent session timeouts

    • Removed broken logout

  • gpio:

    • Fix error handling and log on startup

    • Slight improvements in webif concerning datatables

    • Update web interface (datatables, realtime values), convert debug messages to f-strings

  • knx:

    • Only execute update_item if plugin is running

    • Bumped version to 1.8.0

    • Fix connected bug for init ga

  • modbus_tcp:

    • slaveUnit zu Items hinzugefügt

    • slaveUnit-Bug _regToRead-key (adress.unit)

    • Bugfix in web interface

    • Fixes in example.yaml

    • Feature to write to registers

    • Bumped version to 1.0.6

  • mpd:

    • Fix connection related bug, remove scheduler at stop

  • openweathermap:

    • Add struct for airpollution

    • Bumped to 1.8.4

    • Changed default update cycle to 900 sec to prevent getting locked out by server, if for example smartVISU is using the same API key

  • philips_tv:

    • Minor improvements for webinterface

  • rpi1wire:

    • Udpdate WebIF Tables with new functions

    • Error handling improved

    • Udpdate WebIF Tables with new functions

  • smartvisu:

    • Copy info block.html from _templates dir (for sv 3.2 and up)

  • snap7_logo:

    • Unspecified updates

    • Update to 1.6.0

  • sonos:

    • Fix for use with python 3.9 upwards (Thread::isAlive deprecated)

    • Update SoCo base framework to version 0.26.1

  • stateengine:

    • Add gitignore to webif/visualizations folder to make sure folder is created and files in folder are ignored

    • Minor webif update

    • Update web interface in real-time and include datatables

  • tasmota:

    • Implemented support if TW light sources

    • Implemented ZIGBEE support;

    • Updated Docu

    • Updated WebIF

    • Bumped version to 1.2.0

  • telegram:

    • Fix web interface (using default template)

    • Webif support datatables

    • Fix a bug for /info item values

  • uzsu:

    • Use sun and moon objects of sh and new orb.py

    • Remove uzsu_ from scheduler name

    • Simplify requirements file: scipy 1.1.0 if python >= 3.7

    • Major web interface update. Clean code, use automatic update of values, implement datatables, etc.

    • Removed old uzsu_sun residuum

  • viessmann:

    • Fixed log call

  • withings_health:

    • Updated requirements so that with 2.4.0 of pypi package auth is working again (hopefully)

Outdated Plugins

The following plugins were already marked in version v1.6 as deprecated. This means that the plugins are still working, but are not developed further anymore and are removed from the release of SmartHomeNG in the next release. User of these plugins should switch to corresponding succeeding plugins.

  • 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

The following plugins are marked as deprecated with SmartHomeNG v1.7, because neither user nor tester have been found:

  • Gateway Plugins

    • ecmd

    • elro

    • iaqstick

    • snom

    • tellstick

  • Interface Plugins

    • easymeter

    • smawb

    • vr100

  • Web Plugins

    • nma

Moreover, the previous mqtt plugin was renamed to mqtt1 and marked as deprecated, because the new mqtt plugin takes over the functionality. This plugin is based on the mqtt module and the recent core.

Retired Plugins

The following plugins have been retired. They had been deprecated in one of the preceding releases of SmartHomeNG. They have been removed from the plugins repository, but they can still be found on github. Now they reside in the plugin_archive repository from where they can be downloaded if they are still needed.

Weitere Änderungen

Tools

  • plugin_metadata_checker.py:

    • Added two checks for plugin name (length and lowercase)

    • Fixed check for mandatory value given and default value given

Documentation

  • Added „updated_by()“ function to reference page

  • Consolidated logic documentation to reference section

  • Added Plugins/All plugins page to navigation