Release 1.10 - 29. Jan 2024

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.5 sind im folgenden in diesen Release Notes beschrieben.

Minimum Python Version

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

Für das SmartHomeNG Release 1.10 wird die absolute Minimum Python Version auf Python 3.8 angehoben, da der Community Support für Python 3.7 am 27. Juni 2023 endete.

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

Unterstützte Python Versionen

Die älteste offiziell unterstützte Python Version für SmartHomeNG Release 1.10.x ist Python 3.8. 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)


Änderungen am Core

Allgmein

  • venvs: Scripts for creation and activation of virtual environments

Updates im CORE

  • bin.smarthome:

    • Replaced th deprecated function getdefaultlocale()

  • Libs:

    • lib.backup:

      • Added structs directory to configuration backup and restore

      • Included requirements.txt file for userfunctions and logics

    • lib.db:

      • Suppress an error log message, if database is new and empty

    • lib.env:

      • New lib with support functions for environmental calculations

      • Added descriptions for system logics

      • Integration in eval-statements and logics

    • lib.item:

      • Implementation of the hysteresis attributes for items

      • Documentation of hysteresis attributes

      • Implemented timer for hysteresis items

      • Implemented multi level nesting of structs, if they are included on the top level of a struct

      • Implemented multi level nesting of structs, even they are included on a deeper level of a struct

      • Hysteresis Items can be configured with eval expressions instead of absolute numeric values or item references

      • Attribute autotimer now supports eval expressions; Attribute autotimer is working without specification of a value (again)

      • Attribute cycle now supports eval expressions; Attribute cylce is working without specification of a value (again)

      • Corrected Call order of __run_attribute_eval() and _cast_duration() for autotimer

      • Extended configuration options for autotimer (duration)

      • Corrected Call to __run_attribute_eval() and _cast_duration() for autotimer

      • structs: Added relative reference to sub-struct from same file (struct name starts with a period)

      • Implemented attributes with variables (attribut reference) in attribute value; attribute references now include attributes from current item to great-grandparent item

      • Allow attribute-vars in name attribute

      • Implemented loading structs from ../structs directory

      • structs: Implemented automatic migration from /etc to /structs

      • eval on trigger only implemented

      • Initial support for access to elements of list and dict items

      • Bugfix in dict handling

      • Implemented option to control full name of item-logger

      • Add some more keyword options to log_text

      • Put log_text options pid and pname in try/except to prevent issues when parent is not found

      • Add itemvalue (getting e.g. text from an item) as additional option to log_text

      • Allow defining entries in log_rules as absolute or relative items, implement exclude option, minor issue fixing

      • Fix perviously introduced issue in log_change handling when attributes in log_rules are not set or no log_rules exists

      • log_text: adjust pname and pid handling when no parent is available

      • Cast cached value (to prevent errors when an item type is changed)

      • Changed error behaviour

    • lib.log:

      • Improvements to logging configuration

      • Added import logging.config (to keep mockup core from failing)

      • Introduce mapping and cache possibilites for memory logs

      • Allow placeholders for filename {year}, {month}, {day}, {hour}, {stamp}

      • Add cache option for memlog to docu

      • Move cache for memory log to var/log/cache directory

      • Fix test conditions (also mock core)

      • Introduce a new rotating filehandler considering current date and time as filenames

      • DateTime log rotation handler - add intstamp placeholder, fix rotation if placeholder is used for folder only

    • lib.logic:

      • Logic list can now be grouped. Logics can be assigned to one or more groups

    • lib.metadata:

      • Changed one loglevel from warning to notice (to test mockup core)

      • Added prefix ‚_‘ for „internal“ attributes to allow using these attributes without warnings

    • lib.model:

      • Added SmartDevicePlugin (sdp) and documentation

      • sdp:

        • Add standby mode

        • Added do_before_send method

        • Update sdp connections for standby

        • Update standby mode on failed connect and reconnect

        • Update sdp serial connections

        • Fixed fragmented packet handling for json

        • Modify chunk checking

        • Change json buffering to bytes type to prevent utf decode error on split bytes

        • Use item.path

        • Use item.property.path instead of item.path()

        • Rename get_command_from_reply after changing return type to list

        • Fix logging message

        • Added global cyclic read

      • SmartPlugin:

        • move suspend/resume function to smartplugin

        • Suspend/resume API für SmartPlugin

        • New parameter ‚mode‘ for get_item_list() implemented

      • MqttPlugin:

        • Fixed implementation of webinterface

    • lib.network:

      • Fix name reference

      • Small fixes

      • Add open method

      • Modify logging

      • Add connect rate limit

      • Add parameter for rate limit

      • Introduce connect ratelimit

    • lib.plugin:

      • Added get method to plugins class

      • Bumped core version to 1.9.5.2

    • lib.scheduler:

      • Implemented a single logger for tasks (before, each task created it’s own logger, resulting in hundreds or thousands of active loggers)

      • Added some error handling

      • Bugfix for giving parameters to a task via scheduler.add()

      • Fixed a bug where ‚caller‘ was not initialized in _task when starting an object; Adjusted some log messages

      • Initializing ‚caller‘ (fixed bug) is only performed, if the task-method which is to be called has a parameter ‚caller‘

    • lib.shpypi:

      • Small updates for changed messages of pip commend

      • Included userfunctions and logics. Directories for both can contain a requirements.txt file which is now loaded and interpreted

      • Updated _split_requirement

    • lib.shtime:

      • Added function to_seconds() which converts a string (e.g. ‚2h5m25s‘) to seconds (integer)

    • lib.systeminfo:

      • Fix issues with some Mac OS X versions on startup

    • lib.translate:

      • Enhanced translation capabilities

  • Modules:

    • admin:

      • Bugfix for new loglevels in list of loggers

      • api_loggers: Converting all entries of filters list of loggers to strings to be JSON serializable

      • Adjusted log levels

      • shngadmin:

        • v0.6.7: Added „Add Logger“ and „Remove Logger“ for plugins to list of loggers page

        • v0.7.0: Added „Add Logger“ and „Remove Logger“ for logics, items and advanced loggers to ‚list of loggers‘ page

        • v0.7.2: Added „Modify Handlers“ to loggers configuration page

        • v0.7.3: Added hysteresis attributes to shngadmin

        • v0.7.8: Logic list can now be grouped. Logics can be assigned to one or more groups

        • v0.7.12, modules.admin.api_logics, lib.logic: Added description for groups; Small fixes

        • v0.8.1.: First version using the adm payload protocol for websocket communication

        • v0.8.5:

          • Implemented item Monitoring

          • Implemented adm payload protocol for websocket communication (used by resource graphs)

          • Completed logics-list

        • v0.8.6 small modifications on services tab and logics listing

        • v0.8.8:

          • Now keeping grouped list of logics expanded when changing tabs

          • Added item description to details in item-tree view

        • v0.8.10:

          • Keeping groups expanded on logic-list

          • Added description attribute to item details

          • In Logger configuration sub-loggers of a plugin are en-/disabled with the plugin logger

        • v0.8.17 Implemented load logics from editor page after it has been unloaded due to error

        • v0.9.1: Adding, changing and deleting of logic-groups implemented

        • v0.9.2: In item-details show logic-description for connected logics

        • v0.9.3: Fix for display of items/struct templates

      • Caught an error in eval syntax checker, if result could not be converted to json

    • http:

      • Added initial support for hosting a visu by a plugin

      • Modification of hostmaps for rest interface on newer cherrypy packages

      • Added requirement of cherrypy 18.8.9 for Python 3.11 and allowed newer versions of cheroot

      • Use correct config for services, removed /msgS to make services urls working again

      • for webinterfaces: * Remove window.resize on click on responsive „+“ sign * Only update page resize and headtable calculation if respective elements are available * Introduce sorting icons that can be used by plugins (outside of datatables) * Introduce set_cookie and get_cookie functions that can be used in plugins for storing values * use cookies to store and read automatic update of datatables * Update popper.js and provide easy way to integrate tooltips in web interfaces by using createTooltips function * Add popper.css * Update jquery to 3.7.0 and jquery-ui to 1.13.2 * Update datatables incl. modules and datetime-moment * Add sorting icons for num values * Update documentation.. add info on tooltips, datepicker, cookies, icons * Update sample plugin to include cookies and tooltips * Updates to datatables and pageresize * Update to base_plugin.html to support bordered tab data * Fix error when webif_pagelength is not defined * Avoid error in console when select_menu from datatable is not present * Correctly save and read update interval cookies * Some cookie fixes for automatic page update * Fix window.pagelength if no datatable is present / cookie reading * Improve cookie value handling

    • mqtt:

      • Added datatype ‚dict/str‘ for subscribing to messages containing a payload with uncertain data type

      • Added error handling for non-decodable utf-8 messages

    • websocket:

      • Fix for smartvisu payload protocol

      • Implementation of first version of the adm payload protocol

  • tests:

    • Added extended loglevels to mock/core

    • Extended mockup core

    • Added unittests under Python 3.12 for core


Änderungen bei Plugins

Allgmein

  • Workflows:

    • Fix unittest for forked repos

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.

  • denon: For Denon AV Receivers, based on SmartDevicePlugin

  • epson: Based on SDP control of Epson projectors are supported (minimal setup for now)

  • lms: Logitech Mediaserver / Squeezebox, based on SmartDevicePlugin

  • mikrotik: Mikrotik RouterOS Switch management

  • pioneer: for Pioneer AV Receivers, based on SmartDevicePlugin

  • oppo: First version of SmartDevicePlugin based plugin for Oppo UHD players

  • byd_bat: Plugin to display data from BYD batteries

  • roombapysh: New plugin for Roomba vacuum cleaners basierend auf roombapy

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.

  • alexarc4shng:

    • Small bug-fix in Web-IF

    • Fixed issues with urlencode

    • Update metadata with some more information

    • Improve metadata description

    • Transfer all README info to user_doc and delete README

  • apcups:

    • Add user_doc, remove Readme.md

    • Fix docu (translation, layout issues)

    • Add plugin logo

    • Fix and clean docu

  • appletv:

    • Use separate webif/init for web interface integration

    • Integrate external webif file

    • Introduce some error handling if no „real“ AppleTV is found

    • Introduce item attributes in metadata, fix struct (item should not be named type - renamed to media_type)

    • Bump to version 1.6.2

    • Replace README with user_doc

    • Adjust requirements to work with Python 3.10

    • Fix module imports for web interface

    • Added requirement to circumvent problematic requirements of pyatv package under Python 3.11

    • Clean up user_doc

    • Improve error handling and logging

  • artnet:

    • Outsource and improve web interface

    • Convert readme to user_doc

    • Bump to version 1.6.1

    • Improve handling of „NoneType“ values

    • Fix Webif, update docu

  • asterix:

    • Update documentation and remove template logo

    • Fix network callback issues

    • Fix bug in found_terminator to expect bytes instead of str

  • avdevice:

    • Fix dependency function for int/float values

    • Remove README and english documentation

    • Set state to deprecated as there are new plugins based on SmartDevice framework

    • Remove unneccessary webif pagelength entries in web interface

  • avm:

    • raise exception if no connection to fritzdevice, fritzhome or callmonitor is possible

    • make plugin parameter ‚host‘ mandatory

    • Catch exception if node value returns empty value (e.g. happens if plugin tries to read in color temperature value of RGB light when beeing in RGB not white mode)

    • Improved plugin shutdown fixing „Thread *.poll_tr064, still alive“ warning

    • Improve exception handling during init of devices

    • Disable tab5 (Logs) for Devices without AHA-Interface

    • Improve stop of plugin

    • Bugfix setting Fritzdevice like start_call‘

    • Optimize „get_logs“ to prevent older fritz-devices from timeout

    • Use get_logs_from tr-064 as backup solution

    • Increase request timeout if timeout occurred

    • Trying to fix yet another regression in avm RGB support introduced with release v1.9.5

    • Removed ‚optional‘ text in mandatory plugin host attribute

    • Automate creation of item_attributes.py and update of valid_list of avm_data_type in plugin.yaml by scripts included in item_attributes_master.py

    • Bugfix of update of valid_list of avm_data_type in plugin.yaml by

    • Create valid_list_description in metadata

    • Bugfix and Extension of get_hosts

    • Make use of standard methods of class SmartPlugin for item handling/storage

    • Improve Fritz_Home

    • Exception Classes & Minor Fixes

    • FritzHome: Bugfix renewing SID in case SID has expired

    • CallMonitor: bugfix join listing thread

    • CallMonitor: reconnect if connection is lost

    • CallMonitor: bugfix join counter threads

    • FritzHome: Add support for device statistics

    • Update docu

    • FritzHome: Change all saturations to value range 0-255

    • Bump to 2.2.1

    • Improve plugin shutdown: terminate update loop if plugin is no longer alive

  • beolink:

    • Changes to translations

  • blockly:

    • Remove bootstrap and jquery as it is now part of the http module

    • Remove base.html from webif as it is part of http module

    • Update locale / translation to work with newer translate function of shng

    • Outsource web interface code, update webif translation feature

    • Update blockly core code to 10.2.2

    • Update logics_blockly_code to work with newest blockly core release

    • New plugin logo and webif screenshot

    • Cleanup utils (remove all translation methods)

    • Create and update user_doc

    • Bump to version 1.5.0

    • Replace Blockly.Python.variableDB_ by nameDB_ in sh_logics.js

    • Refix code

    • Correct Utils import, now everything seems to work…?

    • Fix item get

    • Remove unused buttons, add languages

    • Fix deprecated block definition

    • Cleanup web if code. Load german translation if set language is not found

    • Load language in blockly based on shng language

    • Put 1.4.0 version as a backup in the folder

    • Remove unused css

    • Add headtable, put editor in a bodytab

    • Remove old info on blockly update as seperate rst as it’s updated and implemented in user_doc

    • correctly rename webif screenshot for docu

  • casambi:

    • Update doc

  • comfoair:

    • Modifications for parameter checks, restartability and code cleanness

  • database:

    • Changed log message, if no cache value was found

    • Added option ‚no‘ to valid list of database attribute

    • Remove unneccessary webif pagelength code from web interface

    • Catch various exceptions that occurred if db was temporarily not reachable

    • Added database functions to user_doc

    • Added new database function „diff“, „differentiate“ and „duration“

    • Robustify WebIf against empty DB entries

  • datalog:

    • Add super init to init method

    • Replace readme by user_doc

    • Bump version to 1.5.2

    • Extend docu with info on replacement

    • Set deprecated (core features and operationlog plugin does the same.. hopefully)

    • Update docu

  • db_addon:

    • Lock database for query and release if afterwards

    • Item parameter’db_addon_startup‘ can now be used also directly at database_item; ‚db_addon_startup‘ will be set for all child items

    • new item parameter ‚db_addon_ignore_value_list‘ to allow list of comparision operators to be used for database query

    • Improve coding für _handle_waermesumme and _handle_gruenlandtemperatursumme since calculation is almost the same

    • Fix deleting item value cache from webif

    • Bugfix _handle_zaehlerstand

    • Ease queries at _query_log_timestamp (do round in plugin)

    • Add new plugin parameter to define list of comparison operators to be used during database query per substring of item_path

    • Bugfix _handle_onchange

    • Bugfix in parse_item

    • Allow to define database_item_path to be defined up to 3 level above db_addon_item

    • Allow to define database_item_path to be defined up to 3 level above db_addon_item (bugfix)

    • Add plugin parameter to enable/disable optimizing defined value filters

    • Enable on-change attributes to be run on startup

    • Bugfix in handle_onchange

    • Code rework to enable more flexible attributes

    • several fixes

    • Code rework to enable more flexible attributes

    • Update doc

    • Update WebIF for button

    • Add attribute „verbauch_last_24h“

    • Update methods to handle hourly calculation

    • Update WebIF for button

    • Debug _handle_verbrauch

    • Update docu

    • Bugfix bei Verbrauchsberechnung der on-change Items

    • Bugfix bis Zählerstand

    • Bump to 1.2.7

    • Add attribute ‚verbrauch_jahr_minus3‘

    • Reset on_change items if new timeframe starts (e.g. reset all on_change items for day at midnight)

    • Use item_attributes_master.py during parse_item

    • Bugfix on-change item calculation

    • Resolve conflicts to be able to merge

    • Resolve conflicts to be able to merge

    • Update user_doc

  • dlms:

    • Update doc

  • drexelundweiss:

    • Improved error handling

    • Implement plugin logo

    • Clean up init code, bump version to v1.5.4

  • ebus:

    • Try connection on request

    • Add userdoc.rst

    • Fixed bug in metadata (description)

  • enocean:

    • Robustify plugin reaction to loss of Enocean serial device

    • Support RFC2217 connections

    • Expanded user documentation

    • Added serial/ethernet connection status to webinterface

    • Clean-up logging import and unused argument of init function

    • Update doc

    • Added key list to user_doc.rst

    • Moved serial open from init to run method (to prepare plugin for restart)

    • Fixed errors in user_doc.rst

  • executor:

    • Extending base_plugin.html instead of extending base.html in webinterface

    • Fix major issue with autocomplete. Now full item paths are available instead of (non existing) item name references

    • Allow sorting of saved files, minor code improvements

    • Re-write autocomplete method using worker and promise functions. Now the plugin can be used immediately without having to wait for fetching the autocomplete dict.

    • Fix autocomplete dict. Previously (sub)items called „id“ were fetched wrongly

    • Fix and extend user_doc

    • Bump version to 1.2.0

    • Introduce popper.js tooltips for sorting

    • Add two database example scripts

    • Introduce example scripts that can be loaded in the web interface

    • Change order of file list

    • Improve button enable/disable

    • Removed duplicate scroolbars from webinterface

    • Bump to v1.2.1

  • garminconnect:

    • Adjusted requirements to reflect new package version

  • gpio:

    • Fix user_doc reference to configuration

  • helios:

    • Modifications for parameter checks, restartability and code cleanness

  • homeconnect:

    • Added requests-oauthlib to requirements

  • hue2:

    • Adjusted requirements for zeroconf package

    • Changed requirements for zeroconf

  • husky2:

    • Minor updates

  • ical:

    • Reduced warning log indicating event with no summary entry to info level

  • indego4shng:

    • Update to 4.0.1 including single-key-id login

  • influxdb:

    • Convert readme to user_doc

    • Add super.init method

    • Bump version to 1.0.3

    • Fix code-blocks in docu

    • Include database conversion script in docu

    • Add info on conversion script that it was tested for influxdb2.

  • influxdb2:

    • Add screenshot of webif to docu

    • Add conversion script to docu

    • Clean up web interface code and tabs

  • intercom_2n:

    • Modifications for parameter checks, restartability and code cleanness

  • join:

    • Convert readme to user_doc, add logo

    • Bump version to 1.4.4

    • Remove documentation link from plugin.yaml

  • jsonread:

    • Clean up and improve web interface (using internal datatables, etc.)

    • Bump version to 1.0.3

    • Set status to „ready“ (tested successfully)

    • Extend automatic webif update

    • Update locale

    • Add datatableAdditional class to webif table

  • jvcproj:

    • Add super.init

    • Bump version to 1.0.1

    • Put example item config into struct in plugin.yaml

    • Convert readme to user_doc, add plugin logo

    • Modifications for parameter checks, restartability and code cleanness

  • knx:

    • Prevent send actions to bus while plugin is not running

    • Fix issue with polling knx items on startup. All polls are put in a waiting list and polled on run only

    • Corrected a translation

    • Replace sh.scheduler.add by smartplugin scheduler_add

    • Add plugin shortname as caller in scheduler

    • Add dpt 5003

  • kodi:

    • Update docs, include config change warning

    • Fixes, docs, add get_settings

    • Fix docu

  • kostal:

    • Modifications for parameter checks, restartability and code cleanness

  • lirc:

    • Remove webif pagelength code from web interface

    • Improve web interface feedback on button press for sending command

  • luxtronic2:

    • Modifications for parameter checks, restartability and code cleanness

  • mailrcv:

    • Replace readme by user_doc

    • Add super().__init__()

    • Bump version to 1.4.2

  • mailsend:

    • Fixed bug when called from onchange expression

    • Fixed default values of parameters of extended() method

    • Added minimal user_doc.rst

    • Fix and clean docu

  • memlog:

    • Created and updated user_doc, include info about replacement using core features

    • clean files

    • Bump to version 1.6.1.

    • Mark deprecated

    • Fix docu

  • mieleathome:

    • Create user_doc from README

    • Remove unused files from assets folder

  • modbus_tcp:

    • Fixed bug

    • Add crontab to poll devices, update log messages to Python f-strings

    • Changes for pymodbus 3.5.2

    • Support for pymodbis 2.x dropped

  • mvg_live:

    • Updated to new Pypi library „mvg“, as MVG_Live is not maintained anymore

  • neato:

    • Clean-up unused argument of init function

    • Improved user_doc

    • Fixed error message decoding

    • Automatically decode mapID for extraction of boundary IDs. This is needed for single room cleaning

    • Corrections in user_doc

    • Neduced timeout exceptions from error to warning level

    • Fixed exception for situations in which mapID attribute is not available

    • Fixed syntax errors in user_doc.rst

  • network:

    • Remove debug print

  • nuki:

    • Read Lock State via LISTS webservice, as direct lock access is returning 503 in case of locking

    • Update Lock state via Lists once lock state is changed to get intermediate states

    • Small fix for getting state 4 and 7

    • Updated Log message

    • Removed registration of callbacks from scheduled function

    • Changed lxml requirements

    • removed requests requirement, as its now part of core

  • nut:

    • Added user_doc, default logo and refined plugin.yaml

    • Clean-up unused argument of init function, switched to parameter import via method get_parameter_value()

    • Bugfix for exception that can occur during termination of the plugin

    • Fixed bug in IP port handling; improved plugin shutdown

    • Corrected scheduler to correct syntax - nut poll thread did not appear as plugin scheduler

  • odlinfo:

    • Added verify parameter to plugin, to disable certificate checks due to temporary certificate error of endpoint

  • operationlog:

    • Remove non functional web interface code

    • Remove init_webinterface as there is no web interface

    • Remove README.MD

    • Fix, cleanup and extend docu

    • Add plugin logo

    • Change cache location to var/log/cache

    • Cleanup metadata

    • Bump version to 1.3.6

    • Simplify and improve code slightly

    • Introduce new loglevel „NONE“ to log without timestamp and log level info (plain text such as in datalog)

    • Introduce new placeholders for olog_text and allow highlimit, lowlimit (in addition to highlim, lowlim)

    • Fix docu example

    • Update Docu

    • Improve docu and functionality to replace datalog plugin

    • Set to deprecated

  • philips_tv:

    • Added support for ambilight control

    • Clean-up unused argument of init method

  • pioneer:

    • Update plugin.yaml to make suspend_item and retry_suspend available.

  • piratewthr:

    • Adjusted log mesages

    • Bumped version to 1.1.2

    • piratewthr: Improved log messages in case of piratewther server errors

    • Added windDirectionString to struct

    • Minimum core version is now 1.9.5.2

    • Removed ‚database_maxage: 731‘ from struct items to use default of database plugin

    • Bumped version to 1.2.0

    • Added locals.location to struct

    • Reworked structs to use new features

    • Modified to use lib.env

    • Ignoring responses from pirateweather, if units in response don’t match units from request

    • Bumped to v1.2.5

  • plex:

    • Modifications for parameter checks, restartability and code cleanness

  • pluggit:

    • Update auf Version 2.0.6

    • Support for pymodbus 2 dropped

    • Update user_doc.rst

    • Previous version 1.2.2 removed

  • pushover:

    • Add ttl parameter

  • raumfeld:

    • Marked as deprecated

    • Change readme into userdoc

  • rcs1000n:

    • Restructure send method and improve try/except clause

  • rcswithch:

    • Modifications for parameter checks, restartability and code cleanness

  • resol:

    • Improved user_doc

    • Clean-up unused argument of init method

    • Extended user_doc.rst

    • Retired README.md

    • Fix and improve docu

    • Catch socket timeout exception with a warning message only

  • roomba_980:

    • Modifications for parameter checks, restartability and code cleanness

  • rpi_info:

    • Update and fix web interface

    • Fix and simplify docu

  • rrd:

    • Translate Readme into userdoc

    • Updated requirements

  • shelly:

    • Initial version of plugin with Gen2 api support

  • sma:

    • Modifications for parameter checks, restartability and code cleanness

  • smarttv:

    • Modifications for parameter checks, restartability and code cleanness

  • smartvisu:

    • Changed default value for generate_pages to False

    • Corrected log message

    • Only check dir if handling option is set

    • Adjust empty dir handling

    • Update web interface to make automatic updates of logics and items work

    • Extend locale.yaml

    • Bump version to 1.8.14

    • Add datatableAdditional class to tables

    • locale cleanup

    • Use infoblock.html

    • Remove obsolete widget imports

    • Fix import paths for widgets

    • Fix icon class in navigation

  • sml:

    • Modifications for parameter checks, restartability and code cleanness

    • Fix tests

    • Set state to deprecated

  • sml2:

    • Fix webinterface missing item column

    • Update requirements to fix descriptions

  • smlx:

    • Introduce crontab as poll trigger

    • Update webinterface poll source

    • Fix missing shtime error

  • solarforecast:

    • Fallback to smarthomeNG lat/long default values if no plugin specific latitude and longitude values are specified

    • Fix for plugin.yaml, lat, lon are now interpreted as strings not numbers (backward compatible)

    • Fix for fallback to system location as a plugin default value

    • Replaced deprecated sh.now() with method of lib shtime

    • Clean-up unused argument of init method

    • Changed attribute ‚power‘ to ‚energy‘ (breaking change) as power is not correct for forecasted energy (in Wh)

    • Now multi-instance capable

    • Fixed error if no explicit lat/lon values were specified

    • Limit plugin azimuth angle to values between -180° and 180°

    • Added limits for lat/lon, declination and peak power configuration

    • Catch timeout exception with warning log message only

  • sonos:

    • Improved thread termination; reintroduced old legacy method play_radio

    • Fixed WebIf crash if one speaker is not reachable

    • Update doc

    • Removed deprecated webif_pagelength parameter from plugin.yaml

    • Fix for method _play_radio (had problems with radio station names with spaces)

    • Code clean-up for selection of radio stations

    • Remove readme, fix and improve user_doc

    • Changed lxml requirements

    • Removed requests requirement, as its now part of core

    • Update to SoCo version 30.2

    • Fix for play_tts audio length

    • Implemented new function „play_alert_all_speakers“ to play sounds and alerts on all speakers (or only a some of them) and return to the previous titles

  • stateengine:

    • Keep variables after state evaluation so they can be used in enter Conditions

    • Fix major problem with internal structs

    • Temporarily set state_name and state_id on init

    • Adjust docu accordingly regarding current.state_name variable

    • Bump version to 1.9.6

    • Update struct and logging

    • (re)introduce separate loggers for each stateengine item. Custom logger stateengine.<item>.rules

    • Improve web interface: Icons on conditions are only shown on currently evaluated states (and not on formerly „invalid“ evaluations)

    • Some code refactoring and internal issue fixing and improvements

    • Improve configuration issue handling and logging

    • Improve se_use attribute handling and error checking

    • Introduce possibility to delete a scheduler for delayed actions by setting delay to -1

    • Refactor, optimize and extend se_released_by functionality. Should now work as expected

    • Update suspend structs to delete retrigger schedule on leave

    • Update plugin.yaml

    • Bump version to 2.0.0

    • Fix force action

    • Improve log level handling, minimize queries and workload

    • Improve instant_leaveaction and suspendtime handling

    • Fix/improve plugin.yaml

    • Improve web interface: show when state evaluation will run/has run. zoom into visu graphics using PanZoom

    • Improve web interface refresh

    • Improve log level handling

    • Improve issue handling

    • Introduce possibility to define se_item and se_status as „eval:…“ instead of using se_eval or se_status_eval (which still works)

    • Fix casting issue for eval expressions

    • Fix issue handling in actions (return issue as list)

    • Improve item handling if item does not exist, improve logging

    • Update suspend_dynamic to avoid error messages

    • Update, fix, simplify and extend documentation

    • Fix delayed execution for new scheduler caller

    • Fix manual logger

    • Fix exception when original caller function doesn’t return an item

    • Fix searching for original caller to work with recent scheduler/caller changes from core

    • Auto update webif on start to automatically find out when visu can be redrawn

    • Make original caller finding work with latest changes of core

    • Minor code refactor for stateengine tools

    • Improve log entries for elog (update of manuell item)

    • (re)fix web interface for overview page

    • Fix value evaluation by reintroducing deepcopy of value

    • Fix potential issue with releasedby because of deepcopy

    • Use get_fullname as plugin identification (used as caller, etc.)

    • Fix log level in web interface

    • Check if caller is plugin corrected

    • Fix and improve manual item check

    • Improve and extend web interface and visu

    • Fix manual exclude/include handling (gone wrong in previous commit)

    • Fix regex for manual_exclude

    • Fix unused attribute detection

    • Improve issue logging

    • Introduce se_stateorder attribute to change order of state during runtime

    • Further improve issue logging

    • Fix and improve se_stateorder feature

    • Update and fix docu

    • Introduce internal methods to convert a string to list or dict

    • Minor code improvement in StateengineValue

    • Catch exception if invalid items/values are used

    • Allow to use lists in items

    • Allow list in se_use eval/item declaration

    • Allow definition of se_released_by as list in item

    • Improve se_use handling (only fill if not used yet)

    • Improve eval handling when list is returned

    • Update docu with info about list items

    • Fix reordering of states

    • Improve state order handling

    • Change force action

  • systemair:

    • Modifications for parameter checks, restartability and code cleanness

  • tankerkoenig:

    • Fix for get_petrol_stations(), if tankerkoenig.de did not return any information

    • Added check for Nonetype results

    • Extend error message to show raw response

  • tasmota:

    • Change item handling to new smartplugin method using _plg_item_dict

    • Bugfix item handling to new smartplugin method using _plg_item_dict

    • Bugfix interview_all_devices

    • Improve RF-Bridge

    • Allow send of learned keys

    • Improve of using ZigbeeDevice Shortname

    • Improve handling of received messages and taking info from dicts

    • Bugfix update item with relay

    • Improve exception handling

    • Improve clearing retained messages

    • Revert direct use of _plg_item_dict in WebIF

    • Allow unknown tasmota-attrs, move tasmota-attr doc to user_doc.rst

    • Improve Exception handling and handling of power messages

    • Bump version to 1.5.2

    • Update doc

  • telegram:

    • New package, use async

    • Revised stop method

    • Bumped version to v1.8.0

    • New_event_loop for multi-instance

    • V2.0.0 Additions in locale; evaluate if debugging

    • Retry sending in case of error (with parameters)

    • Attempt to catch the exception in the updater

    • Update doc

    • Improve user documentation, add section about web interface

    • Remove unneccassary webif pagelength from webif index.html

    • Bump version to 2.0.1

  • unifi:

    • Initialize the web interface the „new“ way

    • Provide plugin logo

    • Replace readme by user_doc.rst

    • Improve web interface - implement datatables, move issue information to responsive row, implement automatic page update

    • Adjust locale based on updated web interface

    • Bump to version 1.6.3

    • Update color in webif

    • Update webif, remove div container of datatable

  • uzsu:

    • Minor code changes and improvements regarding PEP8 and variables

    • Important update for scheduler handling to work with newest changes in core regarding caller

    • Bump version to 1.6.6

    • Replace caller UZSU Plugin by longname of plugin

    • Re-fix previous implementation

    • Adjust webif pagelength handling to most recent approach

    • Use own interpolation methods, remove scipy/numpy dependencies

    • Partial rewrite

    • Added previous version

    • Bump version to 2.0.0

    • Cast value to float, refactor core

  • vacations:

    • Update after start

    • Update cycle configurable

    • Accept country „Germany“

  • vicare:

    • Initial commit for new Viessmann plugin, communicating via Viessmann API with backend

    • Code-cleanup; new feature ‚online status‘

    • Reset token refresh only on success, retry otherwise

    • Add plugin online status to webif

    • Fixed online status being not updated if backend connected was lost

  • viessmann:

    • Fix and improve docu

  • webservices:

    • Fix for splitting up of autotimer attribute into _value and _time

  • withings:

    • Small webif improvement

    • Convert readme to user_doc

    • Metadata update

    • Bump version to 1.8.3

    • Improve docu

    • Catch auth error

    • Improve user doc regarding user_id info

    • Fix docu

  • xiaomi_vac:

    • Remove webif pagelength init from web interface, not needed anymore

    • Add super.init to init function

    • Bump version to 1.2.4

    • Add zeroconf 0.52.0 as requirement because otherwise creating wheel of newer version might not work for Raspi bookworm

  • yamaha:

    • Changed lxml requirements

    • Removed requests requirement, as its now part of core

  • yamahaxyc:

    • Fix status info updates

  • zigbee2mqtt:

    • v2.0 initial commit

    • Updates, refactor

    • Fixes for bool_values handling, modify structs to set base item as state/power item

    • Include rgbxy

    • Reimplement handlers, color sync

    • Added dimmer struct

    • Add hex rgb color item

    • Updated docs

    • Update webif

    • Fixed bridge handling

    • Fix struct error

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

    • sqlite_visu2_8 - switch to the database plugin

  • Web Plugins

    • wunderground - the free API is not provided anymore by Wunderground - switch to the piratewthr or openweathermap plugin

Außerdem wurden folgende Plugins als deprecated markiert:

  • Web Plugins

    • darksky - the free API is not provided anymore - switch to the piratewthr or openweathermap plugin

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.

  • Gateway Plugins

    • ecmd

    • elro

    • iaqstick

    • snom

    • tellstick

  • Interface Plugins

    • easymeter

    • smawb

    • vr100

  • Web Plugins

    • nma


Weitere Änderungen

  • Addition to .gitignore

  • Update README.md: Removed old links and travis badge

Tools

  • Added script ‚postinstall‘ which sets file permissions and creates a virtual environment to run SmartHomeNG in

  • checkplugins: catch error when a file resides within plugin directory

  • New tool install_plugin_from_develop

  • tools.setpermissions: Changed directory of venv support scripts

Dokumentation

  • Increase version required for sphinx tabs

  • Updates to example plugin files