Release 1.12.0 - 01. Mai 2026

Dieses Release ist ein Feature-Release. Es gibt eine Menge neuer Features im Core von SmartHomeNG und den Plugins.


Bemerkung

Diese Release Notes sind ein Arbeitsstand des develop Branches.

  • Berücksichtigt sind Commits im smarthome Repository bis inkl. 27. April 2026 (‚lib.item: fix string detection in autotimer values‘)

  • Berücksichtigt sind Commits im plugins Repository bis inkl. 16. April 2026

Überblick

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

Minimum Python Version

Die minimale Python-Version, die von SmartHomeNG unterstützt wird, ist Python 3.10.

Es ist ggf. möglich, SmartHomeNG auch auf früheren Python-Versionen laufen zu lassen. Dies ist aber nicht getestet, und möglicherweise nutzen z.B. einzelne Plugins Sprachfeatures, die erst ab Python 3.10 unterstützt werden. Insofern kann für Versuche in dieser Hinsicht kein Support geleistet werden.

Bei einer Neuinstallation wird jedoch empfohlen, auf einer der neueren Python-Versionen (3.12 oder 3.13) aufzusetzen.

Unterstützte Python Versionen

Offiziell unterstützt werden im SmartHomeNG Release 1.12.0 die Python-Versionen 3.10, 3.11, 3.12 und 3.13. 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

  • Workflows:

    • Unittests: Added Python 3.13 and removed Python 3.8

    • builddevdoc: Changed to run under 3.11 instead of Python 3.9

Bugfixes im CORE

  • prevent huge int from killing SHNG while conversion to string

Updates in the CORE

  • Changed absolut minimum Python version to 3.9

  • add itemtypes datetime and timestamp

  • add smarthome.yaml option „config_etc“, modify lib.smarthome behaviour to correctly keep setting over restarts

  • prepare etc/ to keep all user-generated config files

  • automatically migrate files to etc/ paths if run with -e

  • move default config files to templates/ dir

  • move example logics to examples/ dir

  • update default logics.yaml

  • modify instance processing in plugin.yaml

  • remove config file format „conf“

  • warn if SmartHomeNG is run by root user or root group member, #729

  • bin

    • smarthome

      • Changed some loglevels

  • Libs:

    • lib.backup:

      • Added private plugins and private tools to configuration backup and restore

      • Adjusted some loglevels

    • lib.config:

      • allow attributes to be recursively applied to struct items

    • lib.connection:

      • Remove lib.connection

    • lib.env:

      • adjust datetime formats

    • lib.item:

      • Remove ‚eval:‘ from caller (if it exists) before calling update_item of a plugin

      • Remove ‚eval:‘ from caller (if it exists) for autotimer

      • Implemented initialization for hysteresis item and extended documentation

      • Small fix for hysteresis

      • Small fix in hysteresis_state()

      • add „remark“ property from item configuration

      • fix string detection in autotimer values

    • lib.log:

      • add possibility to use logger.develop(„..“)

      • introduce EnglishLocale formatter (to name months in English even if locale is set differently). This is useful for log analysis or processing using promtail, loki, etc.

      • update EnglishLocale to be thread-save

    • lib.orb:

      • change sun setting and rising calculation so it gives back correct day when using offsets. Not sure if this is good..?

      • fix calculation of next sunset and sunrise when doff is given. Was messed up in last commit.

      • improve timezone handling and code

      • remove utcoffset() from sun calculation so they are correct again with ephem >= 4.1.1

    • lib.plugin:

      • adapt plugin handling

      • fix un-/reloading plugins for multi-instance plugins

      • update for plugins tests

      • change instance naming

    • lib.smarthome:

      • prevent main loop from quitting prematurely to avoid async problems

      • update list of ignored crypto modules

    • lib.systeminfo:

      • get_osname(), get_os_version() return the full version for Debian (eg. 13.1 instead of 13)

    • lib.userfunctions:

      • respect config_etc option for import dir

    • lib.utils:

      • Changed requirement from netifaces to netifaces2 because netifaces was abandonned by it’s maintainer, netifaces2 is a drop-in replacement

  • Modules:

    • modules.admin:

      • allow filter logs by develop level

    • modules.http:

      • fix css import for bootstrap-treeview

      • fix datatable auto adjust handling for tables in tabs

      • introduce humanBytes macro and function for being available in web interfaces. converts bytes to KB, MB, etc.

      • remove bootstrap-4.3.1 folder

      • update base_plugin to work with bootstrap 5.

      • update bootstrap datepicker from 1.9.0 to 1.10.0

      • update bootstrap from 4.6.0 to 5.3.8

      • update bootstrap treeview from 1.2.0 to 1.2.1

      • update codemirror from 5.46.0 to 5.65.21

      • update datatables from 1.13.5 to 2.3.7 incl. addons, etc.

      • update disclosure with new versions of used packages

      • update fontawesome from 5.15.4 to 7.1.0

      • update jquery from 3.7.0 to 4.0.0

      • update jquery-ui from 1.13.2 to 1.14.2

    • modules.websocket:

      • only push log updates for subscribed logs

  • tools:

    • tools/postinstall:

      • Added handling for newer of Python to postinstall script

      • Changed for Python versions (3.8 dropped, 3.14 added)

    • tools/conf_to_yaml_converter:

      • adjusted to use old and new etc/ config scheme

      • improve, search more directories

    • tools/make_venv:

      • Changed to install setuptools, which is not installed by Python 3.12 and Python 3.13

    • tools/postinstall:

      • changed for python versions (3.8 dropped, 3.14 added)

    • tools/act:

      • small improvement


Änderungen bei Plugins

Allgmein

  • Workflows:

    • Updated unittests to newer Ubuntu version

    • Updated build scripts for documentation to newer Ubuntu version

    • Updated workflows to build documentation to use a newer version of Ubuntu

    • Change runner to Ubuntu 24.04 and update Python versions

    • install libglib2.0 in unittests workflow

    • updated to build documentation to use a newer version of Ubuntu

    • added Python 3.13

Plugin Updates

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

  • avm:

    • For testing: Set lxml requirement to lxml 5.x under Python 3.13

  • casambi_bt:

    • added initial version of a casambi/occhio bluetooth plugin controlling devices locally with no backend connection.

  • db_addon:

    • add query param ‚end‘ at get_query_parameters_from_db_addon_params

    • Bugfix

  • enocean:

    • completed decoding of EEP A5_08_01 and added decoding for A5_07_01

    • removed eval check in update function as this was fixed in the core

    • temporary fix for unwanted plugin retrigger in combination with eval expressions.

  • gpio:

    • backup v2.0.0 for python 3.12

    • complete overhaul using lgpio and gpiozero modules to work with Debian Bookworm

    • fix webif

    • improve logging, fix output

    • make it work under python 3.13

    • put v 1.5.4 in „archive“

    • set max Python version to 3.12 because package lgpio does not work under Python 3.13

    • update copyright info

    • update to work with Bookworm

    • use gpiod, get rid of init retries, new requirement

  • hue2:

    • Changed requirement for zeroconf to resolve conflict

    • Revoked changed requirement for zeroconf to resolve conflict; xiaomi_vac: Changed requirement for zeroconf to resolve conflict

  • hue3:

    • Added support for outdoor motion sensor

    • Bumped version to 3.0.2

    • Changed some logentries from notice to info

  • jsonread:

    • make it work without pyjq under python 3.13 (limited functionality)

    • rename scheduler

    • support url

  • knx:

    • update type check due to xmltodict no longer returning OrderedDict#

  • lms:

    • fix struct definition for doc conversion

  • modbus_tcp:

    • added modBusDirection: write

    • raise ModbusError when read structure is wrong

  • neato:

    • minor bugfix for exception warning output

  • nuki:

    • Added MQTT support for newer versions of the lock

    • New parameter ‚mode‘ for operation types of plugin: 1 - MQTT, 2 - Nuki Bridge, 3 - MQTT and Nuki Bridge

    • Updates to documentation and logging

  • philips_tv:

    • Minor webif fix

  • piusv:

    • Create requirements.txt

  • rrd:

    • include changes from PR# 1018 and add webinterface

  • rtr2:

    • Added comments to widgets

  • sma_mb:

    • Update read methods for pymodbus and add crontab as poll time generator

  • smartmeter:

    • add discovery log display, item file name display, update docs

    • improve webif feedback

  • smartvisu:

    • Added item attribute ‚sv_display_name‘; Implemented text buttons for top-navigation of room pages

    • Added item attribute ‚sv_page_in_navi‘ control if a generated page should be added to the navigation; added documentation to plugin code

    • Added top navigation for category pages; Bumped version to 1.9.1

    • Bugfix for 5th button of top-navigation

    • Bumped version to 1.9.0

    • Implemented top-navigation for room pages. Added item attribute ‚sv_heading_buttons‘ to configure the top-navigation.

  • sonos:

    • Revert required minimum python version back to 3.8; upgraded SoCo to v0.30.9; catching exception for speakers with unknown ip address

    • For testing: Set lxml requirement to lxml 5.x under Python 3.13

  • stateengine:

    • bump version to 2.2.2

    • fix instanteval handling

    • fix regex

    • fix SV widget functionality for lock/release

    • global scheduler for delayed actions to decrease scheduler threads.

    • improve action scheduler

    • improve delayed action handling

    • introduce overwrite parameter for actions

    • introduce se_ignore possibility to ignore conditions. Minor log improvement.

    • simplify code for condition checks, fix web interface updates

  • tankerkoenig:

    • change log level of diverse logs from error to notice

    • Loglevel Change

  • tasmota:

    • bugfix Wifi-Signal

  • uzsu:

    • Fix issue when calculated sun event is on next day (due to offset)

  • vicare:

    • connected to new Vissmann API. Old one is deprecated.

    • minor fix for online status after plugin restart; added specific log message if refresh token has expired

    • minor improvement of error messages

    • minor typo fixes

    • switched to new Viessmann API version v2.

  • webservices:

    • switch user_doc from sphinx-tabs to sphinx-design

  • xiaomi_vac:

    • Changed requirement for zeroconf to resolve conflict

  • yamaha:

    • For testing: Set lxml requirement to lxml 5.x under Python 3.13


Outdated Plugins

Die folgenden Plugins wurden in das plugin_archive Repository verschoben:

  • Gateway Plugins

    • raumfeld

  • Interface Plugins

    • avdevice

    • avm_smarthome

    • husky

    • sml

  • System Plugins

    • datalog

    • influxdata

    • memlog

    • operationlog

    • sqlite_visu2_8 - switch to the database plugin

    • visu_smartvisu

    • visu_websocket

  • Web/Cloud Plugins

    • alexa

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

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


Weitere Änderungen

Dokumentation

  • Modified README.md to reflect, that the JetBrains licenses expired

  • Doku Fixes für logging

  • Small fix in hysteresis_state()

  • Added info for ssh passwordless login

  • Updated documentation for installation/configuration of mosquitto

  • Added documentation for node.js and MobileAlerts to complete installation

  • Fixes for complete installation and installing Python versions