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