Release 1.7 - 6. April 2020

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

Bemerkung

Diese Release Notes sind ein Arbeitsstand.

  • Berücksichtigt sind Commits im smarthome Repository bis incl. 29. Mär 2020 (module admin: Added handling for enabled attribute for modules)

  • Berücksichtigt sind Commits im plugins Repository bis incl. 28. Mär 2020 (Added restart of SmartHomeNG if knx plugin stalles with error ‚problem unpacking length‘)

Überblick

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

Unterstützte Python Versionen

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

Absolute Minimum Python Version

Die Minimum Python Version in der SmartHomeNG startet wurde auf v3.5 angehoben, da Python 3.4 im Jahr 2019 End-of-Life (End of security fixes) gegangen ist. Bei einer Neuinstallation wird jedoch empfohlen auf einer der neueren Python Versionen (3.6 oder 3.7) aufzusetzen.

Wichtig

Mit dem kommenden Release 1.8 werden die unterstützten Python Versionen (wie hier beschrieben) auf Python 3.6, 3.7, 3.8 angehoben. Python 3.6 hat eine Reihe sehr interessanter Features und Verbesserungen gebracht, die dann in SmartHomeNG genutzt werden können.

Sollten solche neuen Features in den Core Einzug halten, wird die Absolute Minimum Python Version auf 3.6 angehoben werden. Sollten die Features nur in Plugins genutzt werden, so können nur solche Plugins nicht genutzt werden, wenn eine ältere Python Version als 3.6 eingesetzt wird.

Änderungen am Core

Bugfixes in the CORE

  • lib.scheduler: fixes part of issue 335

  • tools.plugin_metadata_checker: Bug fixes

  • lib.module: Bugfix

  • lib.item: Bugfix - setting an <item>.property.value didn’t trigger further actions

  • lib.plugin: Removed call to deprecated Python function

  • lib.module: Removed call to deprecated Python function

  • lib.translation: Bugfix

  • lib.config: Keeping item order when merging structs; improved error handling when referencing non existing structs

Updates in the CORE

  • Implemented command line option to create backups of the configuration of SmartHomeNG and to restore from such a backup

  • .cer and .key files from /etc are backed up, too

  • Support for national and regional holidays added

  • Support for custom holidays added

  • Added a lot of functions to lib.shtime to simplify date and time handling in logics and plugins

  • Global translation support (lib.translation) added (moved from plugins to a global level)

  • crontab: Implementation of day ranges

  • MQTT Support for logics added (using new mqtt module)

  • New class MqttPlugin to support MQTT usage in plugins (using new mqtt module)

  • Implemented installation of required Python packages

  • Changed datatype of env.system.start from formatted string to datetime

  • Plugin webinterface shows tabs also if only one tab is defined

  • Implemented nesting of structs

  • Structs allow merging of lists in attributes

  • Items:

    • Support for dynamic properties. Currently values of plugin-specific attributes are implemented as readonly properties

    • Function to expand relative pathes extended. Now plugins can hand over parapeters as list to expand multiple definition in one call

  • Logics:

    • Support for MQTT implemented

  • lib.config: Ignoring files starting with a ´´.´´ that are created when accessing a folder from MacOS

  • lib.config: Bugfix in merge() if itemtree contains pseudo-nodes (nodes without leafs or subnodes)

  • lib.logic: Adjusted log level for triggered logics that are disabled

  • lib.module: Improved error handling when loading modules

  • Modules:

    • http:

      • Webinterfaces: Initial version with support for periodic updata of data

      • Updated datepicker to 1.9.0

      • Added chartjs library for web interfaces

      • Implemented a check if ports are already in use

    • admin:

      • Implemented system configuration for holidays and MQTT module

      • Implemented gui_type: wide_str for system configuration and plugin parameters

      • Added multiline support for descriptions (system & plugin configuration)

      • Implemented restore of config backups

      • Additions to system: IPv6 and process ID

      • Items: Display of eval and crontab details corrected

      • Services: Row ‚Node-Red service‘ is only shown, if service is available

      • Services: YAML syntax checker now resolves structs

      • List of loaded plugins: Added button which opens list of relevant blog articles

      • List of Schedulers: Added priority and value to be set for each scheduler

      • Updated npm packages for Angular gui

      • Added handling for module parameter enabled

    • mqtt:

      • New module to deliver mqtt support for plugins and logics

  • Plugins:

    • Configuration parameter class_name and class_path in /etc/plugin.yaml are now DEPRECATED

    • Support for MQTT implemented

    • Web interfaces: make all tabs sticky on web interface for better scroll appearance

Änderungen bei Plugins

New Plugins

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

  • bose_soundtouch: Plugin for the integration of Bose Soundtouch systems

  • executor: Execute Python statements in the context of SmartHomeNG. Alternative to the interactive mode of SmartHomeNG

  • garminconnect: Allows to retrieve data (stats, heart rate) from Garmin Connect

  • helios_tcp: Allows to communicate via TCP with Helios KWL devices via Helios Easy Controls

  • ksemmodbus: Connect a Kostal Smart Energy Meter via Modbus

  • neato: Plugin to connect a Neato/Vorwerk vacuum cleaning robot to SmartHomeNG

  • rpi1wire: Plugin for the Raspberry Pi. Allows for an easy access to 1-Wire sensors. Tested with a Raspberry Pi B and the temperature sensor DS18B20

  • shelly: Control Shelly devices via mqtt (uses the new mqtt module)

  • snmp: SNMP Queries

  • vacations: Retrieves German school holidays for the federate states of BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH.

  • xioami_vac: Access to a Xiaomi vacuum cleaning robot

  • yamahayxc: Plugin to control Yamaha MusicCast devices

Plugin Updates

  • alexa4p3:

    • Fixed naming for plugin

    • Added plugin name as source when setting item values

  • apcups:

    • bugfix for string values with spaces

  • avdevice:

    • Fixes in plugin.yaml

  • avm:

    • Added write support for AVM Dec 301 hkrt devices (command set temperature)

    • Now using one single item for read and write temperature setpoint; fixed filter for items calls by avm plugin

    • Changed name of monitoring service thread

    • Fix for retrieval of HOST data and MultiInstance functionality

    • Bugfixes for MI handling

    • Fixed bug in default value for ssl port

  • blockly:

    • Updated blockly to Release Q3 Patch 4, Plugin is still in early alpha phase

  • darksky:

    • Added hourly and daily data to struct

    • Fix for multiple items accessing the same match string

    • Quick Fix Webinterface Item, needs more work though

    • Added support for multiple items in a key

    • Compact table appearance, show large text block reduced at first

  • Dashbutton:

    • Updated from buggy kamene package to scapy package

  • dmx:

    • Converted to SmartPlugin

  • gpio:

    • Fix problem with slow raspis after reboot

  • ical:

    • Fix for recurring event having multiple exceptions

    • Fix problems with long lines that are continued on next line

  • kathrein:

    • Converted to SmartPlugin

  • knx:

    • Added hostname support

    • Added a CRITICAL log message, if the plugin shuts down due to a ‚problem unpacking length‘ error and invoke a restart of SmartHomeNG

  • mailrcv:

    • Added option to set the name of the trashfolder to use

    • Removed use of smarthome object and used self.scheduler_add instead

  • memlog:

    • Improved documentation

  • milight:

    • Converted to SmartPlugin

    • Implemented multi-instance

  • miflora:

    • Fixed some namings: scheduler methods of SmartPlugin

    • Fixed new init parameter access

    • Added Web Interface with auto update

    • Added support for all 3 Libraries used in Miflora pypi package

    • New default library: bluepy (which needs a new package to be installed)

    • Only instantiate MifloraPoller once

  • mqtt:

    • Renamed existing mqtt plugin to mqtt1 and set deprecated flag for this plugin

    • Reimplemented mqtt plugin derived from class MqttPlugin for using the new mqtt module

    • Added item attribute bool_values: defines which mqtt payload values should be interpreted as True or False

    • Added gui_type: wide_str for appropriate parameters

  • nuki:

    • Added updates for event values in web interface via Ajax

  • odlinfo:

    • Small fixes

  • onewire:

    • Fixed error handling in case of readout problem (85 °C)

    • Plugin may use alias names instead of sensor ids

    • Added simple webinterface

    • Reworked internals

    • Fix multiple thread creation after discovery

    • Fix bug with too many threads started

    • Plugin fixed bug with alias adressing

  • rcswitch:

    • Change type for rcswitch_host to ip

  • roomba:

    • Converted to SmartPlugin

  • rrd:

    • Converted to SmartPlugin

  • rtr:

    • Bugfix in stop_controller()

    • Fixed stop_item handling

    • Added check of self.alive before accessing items

  • russound

    • Converted to SmartPlugin

    • Handling of decode error added

  • sma_em:

    • Added updates for values in web interface via Ajax

    • SMA_EM: reworked whole plugin as requested in issue #319

      • Supports multicasts of new versions of energy meter

      • Item naming changed (look at newly introduced struct or README)

      • New items for info if consume and supply is active

      • Introduced scheduler instead of sleeping thread (needed to show that a plugin updated the item, also better for performance)

  • smlx:

    • Added parameters for CRC check

    • Implemented special support for Holley DTZ541 (2018 model with faulty CRC implementation)

    • Fixes actualTime calculation issue and provides status properties

    • Fixed issue with calculation of actualTime.

    • Fixed misinterpretation of Client-ID as OBIS code.

    • Added properties for Smartmeter status

  • solarlog:

    • Converted to SmartPlugin

    • Bugfixes

  • sonos

    • Upgraded to SoCo version 0.19

    • Added names for various SoCo threads

  • speech:

    • Converted to SmartPlugin

  • squeezebox:

    • Fix repeat and shuffle playlist

    • Various bugfixes

    • Some optimizations

    • Updates play, pause, stop items every time there is a change

  • stateengine:

    • Improved Stateeninge Graph in Web Interface

    • Documentation updates

    • Various bugfixes

    • Fix immediate action run after leaving state

    • Fix problem running leave actions

    • Improved collision handling when running multiple evals at the same time

    • Improved widgets for smartVISU

  • telegram:

    • Documentation updates

    • Prettify thread names for job queue

    • Removed error message in case welcome_msg or bye_msg are empty

  • thz:

    • Added a missing method

  • trovis557x:

    • Corrected processing of negative 16-bit register values, also corrected some typos

  • uzsu:

    • Added error message when using wrong sv widget

    • Various bugfixes

    • Add lastvalue and standard parameters config for interpolation

  • visu_websocket:

    • Improved exception handling

    • visu_websocket: Added warning „Probably no database plugin is configued“ if an invalid series for env.* items is requested

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

    • sqlite - switch to the database plugin

    • sqlite_visu2_8 - switch to the database plugin

  • Gateway Plugins

    • tellstick - classic Plugin, not used according to survey in knx-user-forum

  • Interface Plugins

    • netio230b - classic plugin, not used according to survey in knx-user-forum

    • smawb - classic plugin, not used according to survey in knx-user-forum

  • Web Plugins

    • alexa - switch to the alexa4p3 plugin

    • boxcar - classic Plugin, not used according to survey in knx-user-forum

    • mail - switch to the mailsend and mailrcv plugin

    • openenergymonitor - classic plugin, not used according to survey in knx-user-forum

    • 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

    • netio230b

    • smawb

    • vr100

  • Web Plugins

    • boxcar

    • 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.

Documentation

  • User Documentation

    • Sample module provided in /dev/sample_module

    • New MQTT support documented

    • Generic updates and extensions

    • „Komplettanleitung“ revised

    • Overview image revised

    • „Arbeiten mit Funktionen in Logiken“ added

    • Section „Beispiele, Tipps & Tricks“ added (Thanks to sisamiwe for the examples)

  • Developer Documentation

    • Documentation how to create web interfaces for plugins

    • New MQTT support documented

    • Generic updates and enhancements