Skip to content

Version 3.0.0 ​

2. September 2026

Added ​

  • App/UI: You can change your own display name in the settings – a pencil beside the name is enough. Requires the latest controller version
  • App/UI: The overview page has been reworked – it greets you by name and time of day, folds the weather, sunrise and sunset into a single line instead of a large block, and suggests what usually happens around this hour; one tap carries it out. A search for devices and rooms was added as well. Anyone who has not picked favourites yet sees the most-used devices instead and can adopt them straight away. Requires the latest controller version
  • App/UI: A message that belongs to a device can now be tapped and takes you straight to that device. Until now only the push notification on a mobile device did that
  • Backend: New API event setCurrentUser, letting a signed-in person change their own display name without administrator rights; it acts on the caller's own account only and leaves the login name, email address, user group and permissions untouched
  • Backend: New API events getSerialProxySettings, setSerialProxySettings and getSerialProxyStatus to expose a USB serial adapter connected to the controller via VPN
  • Backend: New API events detectEltakoGateways, addEltakoGateway, getEltakoGateways, removeEltakoGateway, setupEltakoGateway, getEltakoDevices and addEltakoDevice for the Eltako Series 64 integration
  • Backend: New API events detectShellyDevices, probeShellyDevice, addShellyDevice, getShellyDevices, removeShellyDevice and repairShellyDevice for the Shelly integration
  • Backend: The system learns how the installation is operated so it can suggest scenes and automations; the data stays on the controller and is not sent anywhere
  • Backend: New API events getUsageSettings, setUsageSettings and resetUsageData to turn usage recording on and off, set the personal attribution per user, and delete the recorded data
  • Backend: New API events getUsageSuggestions and dismissUsageSuggestion to retrieve the suggestions derived from usage and to turn individual ones down
  • Backend: New API event getForwarderToken, with which a signed-in person requests a short-lived token for exactly one camera image or image address – needed because an image, unlike an ordinary call, cannot send credentials along
  • Backend: New API events getPlugins, getPluginSettings, setPluginSettings, setPluginEnabled, getPluginDependents and removePlugin, to list the controller's optional functions, configure them, switch them on and off, find out which automations and scenes a removal would affect, and remove them again; a state change is announced through the onPluginStateChange event
  • Config/UI: New Shelly Skill – devices are found on the network or added by IP address; nomos sets up the MQTT connection itself and gives every device its own credentials. Supported are switches and plugs, shutter actuators, dimmers and colour lamps, energy meters, input modules, the radiator thermostat and the battery-powered sensors – of the first generation as well as of generation 2 and later. Two notes: on the first generation MQTT and Shelly Cloud exclude each other – remote control moves to nomos, while the Shelly app keeps working inside your own WLAN. And a battery-powered device has to be woken once to set it up, usually by pressing its button; afterwards it reports in its own rhythm, which is also what its reachability is measured against
  • Config/UI: New Eltako Series 64 Skill – the gateway is found on the network and connected with the device code printed on it; relays, dimmers, blind actuators, thermostats and paired EnOcean sensors and push-buttons can be imported one by one or through the initial setup
  • Config/UI: A USB serial adapter connected to the controller can now be exposed via VPN – the port forwardings page is where you pick the adapter, baudrate and VPN port and see the current connection status; on your own computer the adapter shows up as a virtual COM port, e.g. for remote programming of bus systems
  • Config/UI: Usage recording can be turned on or off during first-time setup and under Administration → Advanced, where the recorded data can also be deleted; every person can decide in the app that their own actions are not attributed to them, and administrators can set this per user
  • Config/UI: Suggestions now appear at the top of the Automations and Scenes pages, each with a sentence explaining why – "Apply" opens the editor pre-filled and nothing is armed until the user saves, while "Dismiss" takes the suggestion off the list for a long while. With nothing to suggest the pages look exactly as before
  • Config/UI: New "Functions" page between "Scenes" and "Skills" – the optional functions the controller ships with appear there, each with a description and its state, and can be switched on and off individually
  • Config/UI: New function "Presence detection" – from any devices that give evidence of presence (motion detectors, door contacts, presence sensors, but also switches or the states of other systems) the controller works out whether somebody is home and offers that as a device that automations and scenes can react to. The state can be overridden by hand – until the next device reports otherwise, for a set time, or permanently. Two buttons optionally create the matching "At home" and "Away" scenes and an automation with a log message
  • Config/UI: New function "Vacation mode" – one central switch, set by hand or by a planned period whose dates can also be changed in the app; the app shows the state on the overview page. Devices with a holiday mode of their own, such as a Wiser gateway, follow the switch and vice versa. Optionally the function simulates presence in the evening: selected lights come on around sunset and go off at a set time, at slightly different times every day
  • Config/UI: Single log entries can now be deleted
  • Config/UI: In the device settings the platform of a device is now clickable and leads straight to the matching skill page – for devices that belong to a function, such as presence detection, to that function's page. When no unambiguous match exists, it stays plain text as before
  • Daemon: New configuration flag ONCHANGEWARMUP in the [CONFIG] section of the logic configuration. It is active by default and makes automations set to "trigger on change only" take the first value fed in after a restart as the starting state only; ONCHANGEWARMUP;NO restores the previous behavior

Changes ​

  • App/UI: Brief connection drops no longer interrupt what you are doing – the app reconnects right away when it is opened and refreshes in the background instead of showing the loading screen
  • App/UI: Camera images and cover images require the latest app version. Older app versions no longer display them once the controller has been updated
  • App/UI: The camera overview now makes use of the space available – tiles follow the size and orientation of the screen rather than the number of cameras, use a 16:9 aspect ratio and so show a considerably larger picture without black borders; previously anything beyond four cameras fell back to small square tiles. In the device view the camera stream now fills the full width
  • Backend: A user's display name is now limited to 64 characters
  • Backend: The getSystemSerialPorts API now returns the serial ports as objects with device path and a description of the connected hardware (e.g. "FTDI FT232R USB UART") instead of a plain list of device paths
  • Backend: The following API functions gained the missing sortBy: getShellyDevices, getEltakoGateways, getEltakoDevices, getSomfyGateways, getSpotifyDevices, getNetatmoDevices, getDmxNodes and getDmxSyncs
  • Backend: Translations refined – device action labels that used to show in English only are now available in German, French, Italian and Dutch as well
  • Backend: Device profiles in the add-on library were brought in line with the applicable conventions
  • Backend: The controller and its engine now connect to the MQTT broker with their own, automatically managed accounts. Renaming the MQTT user therefore no longer interrupts the system's own connection
  • Backend: The controller's MQTT account is now included in the backup and restored along with the rest of the configuration
  • Backend: Cameras now respect user permissions – a user who may not see a room is neither shown its cameras in the list nor allowed to open their stream. In rooms with restricted access they stay visible, as do cameras without a room assignment
  • Backend: getUserAuth, enableUserAuth and disableUserAuth API removed
  • Backend: Improved security mechanisms
  • Config/UI: The profile editor can now set the format an MQTT device expects a value to be sent in
  • Config/UI: Various display refinements – the skill pages now use the same spacing between rows, separators and device cards throughout, and several dialogs present their content more cleanly
  • Config/UI: Translations refined – wording was aligned with the manuals and individual errors corrected
  • Config/UI: Improved Google Maps integration – the map in the location settings now loads asynchronously and no longer delays page rendering
  • Config/UI: The device that supplies the outside temperature is now picked in the settings, under the new "Weather" section – it used to be a checkbox on each individual device. With no device picked, the weather forecast for the configured location keeps being used
  • Config/UI: Using your own MQTT broker is no longer supported – nomos only ever uses the controller's own broker. The MQTT settings now show the address to point your own MQTT client at
  • Daemon: MQTT profiles can now address nested values unambiguously: mqttValue understands dotted paths such as aenergy.total and reads exactly that position instead of the first matching key in the document
  • Daemon: Such a dotted path can now step through a list as well – thermostats.0.tmp.value or rgb.0 address a position inside one. An object that really does have a key named 0 is still found first
  • Daemon: MQTT profiles can now place the outgoing value into a template – mqttPayload marks with \# where it goes. This reaches devices that expect a particular format rather than the bare number, such as pos,50 or {"brightness":50}
  • NodeRED: Upgraded to version 5.0.4

Fixed ​

  • App/UI: A thermostat setpoint could not be adjusted under certain circumstances – as long as the device had not reported a setpoint yet, or the reported one was outside the range shown on the dial, the plus and minus buttons did nothing
  • App/UI: A removed background image only disappeared on the device it was removed on – every other device kept showing it indefinitely, even after restarting the app
  • App/UI: Camera pictures were not displayed in Firefox – still images were missing entirely, and running streams appeared only as a narrow strip along the top of the tile. Other browsers and the app on mobile devices were not affected
  • App/UI: On the camera overview on a mobile device the picture sat too high in its tile, leaving a black strip below it. Tiles now use a 16:9 aspect ratio and the picture fills them edge to edge
  • Backend: Listing the available serial ports getSystemSerialPorts works reliably again
  • Backend: getComponentsByRoom did not return every device of a room on grown installations – devices renewed by a library update were missing
  • Backend: Renaming the MQTT user used to leave the previous account behind in the broker, still with a working password. Such leftovers are now removed
  • Backend: In rare cases devices connected through the Matter controller could no longer be switched after a system restart – they were still shown as reachable and kept updating their values, but no longer responded to any command. Until now the only remedy was to turn the Matter skill off and on again
  • Backend: Emergency mode never engaged. When the system crashes repeatedly in a short time it is meant to switch off the cloud connection and all skills and come up in a safe state from which the cause can be fixed – instead the controller simply kept crashing. Emergency mode now takes effect, remembers what it switched off, and restores it on the way out
  • Backend: Switching skills on and off was made more reliable – a skill's state and what is actually running now agree, even when the switch is flipped twice in quick succession
  • Backend: getNotifications cut the list down to the requested range first and filtered by priority only afterwards – with a priority filter this could return an empty result even though matching messages existed. A range (rangeStart/rangeStop) now applies to the filtered, sorted messages
  • Backend: Notifications with an attachment were not sent – neither the attachment nor the message itself arrived. Every notification carrying an attachment was affected, for instance a camera image or a video clip for a motion alert. A single attachment that could not be fetched – because a camera happened to be unreachable – dropped the whole notification as well; it is now delivered and names the failed attachment in its text
  • Backend: The controller could restart unexpectedly in rare cases
  • Config/UI: During first-time setup a step could be skipped with the Enter key even though the Next button was still disabled – when creating the administrator account, pressing Enter in the first password field was enough, without entering the confirmation
  • Config/UI: Under Administration → Configuration a backup could no longer be restored – the file could still be picked, but the Restore button did nothing afterwards
  • Config/UI: In the KNX settings a selected keyring file (.knxkeys) was not uploaded under certain circumstances – with KNX Secure tunneling this happened after switching between "Enter manually" and "From Keyring File", and when opening a stored configuration that uses manually entered credentials
  • Config/UI: An automation or scene could no longer be opened once it used a device that had since been deleted – the editor simply stayed empty. Such rules are now marked as no longer available and can be removed individually, while the rest stays editable
  • Config/UI: On the cameras page, camera pictures were not displayed in Firefox – still images were missing entirely, and running streams appeared only as a narrow strip along the top of the tile
  • Config/UI: The state of some devices could not be set in the automation and scene editor – instead of the choice between On and Off it read “Nothing found or type unknown”. An action saved that way never reached the device: the automation visibly ran and silently skipped that one device. This affected DMX switches, dimmers and colour lights as well as the Netatmo plugs and lights
  • Daemon: Automations set to "trigger on change only" fired once into the void after every engine restart – for example after saving an automation or deleting a device, because the system re-feeds the last known values on such a restart and the engine counted that as a change. The first re-fed value now only serves as the starting state; triggering resumes on an actual change
  • Daemon: Timers (timer.csv) are now stored reliably
  • Daemon: The service could crash and restart sporadically while Apple TVs or a Hue bridge were being discovered on the network – devices reachable over LAN and Wi-Fi at the same time were affected