Yes, you’ve seen right, 1.0
We’ve decided that it’s about time to go that step. This shouldn’t really matter to most users as nymea has been rock solid for ages already and the upgrade from the 0.x releases is seamless, but it will improve some things for plugin developers and reflect the actual maturity level of nymea better. The most notable change for users is that all the package versions are in sync now which should make it much easier to determine what’s actually installed and compatible.
And with that, let’s jump in on what’s new:
nymea now offers multi user support, meaning that different users with different permissions can be created on a nymea setup now. It is now possible to create an account for, say, less tech savvy people or guests which still want to use nymea:app to control the smart home, but getting away with all the configuration options for those.
The second big one is the new remote connection. We’ve been trying to get rid of nymea:cloud for a while already as it didn’t line up with our vision: For one we don’t like requiring user accounts in clouds but also the old nymea:cloud was built in a way where the cloud would manage the devices (this is mostly how AWS works) but with nymea, the nymea setup should be the main controller and any cloud services being an optional extension to it. That’s not to say that nymea doesn’t know about the internet any more, on the contrary, in our spirit of a plugin based extensible system, any wanted cloud integration can be done using plugins from now on.
So now it finally happened. No need for a cloud account any more. Just enter the settings, flip the switch for the remote connection and that’s it.
Obviously, without any port forwarding in routers, this still requires some service in the cloud to proxy the connection and that’s still there, albeit in a slightly different form than before. By just enabling the remote connection, nymea will tunnel the traffic from the app to the core through a tunnel proxy hosted by us. However, this proxy doesn’t require any nymea:cloud integration any more and if you don’t trust us with tunneling your connection through a server of ours, you’re free to host that proxy yourself too and use the advanced settings to manually enter the URL for your proxy instance.
This current release still supports the old nymea:cloud to not disrupt existing setups upon upgrade but you are advised to log our from there and use the new remote connection instead. The old cloud settings can be found in the advanced settings section and for the login part in the app settings developer tools. Those will be removed in a future upgrade though.
Not entirely related to this release, but also happening in this release cycle, is that nymea is now available in the Raspberry Pi imager! Installing nymea is now easier than ever before by just starting the Raspberry Pi imager and selecting nymea from there!
With the efforts to make that happen, the Raspberry Pi images also have been upgraded to RaspiOS 11 Bullseye and split into 2 different images: The core image featuring a headless nymea:core setup, and the kiosk image, featuring nymea:core and nymea:app on the same image to be used for Raspberry Pis with touchscreen.
Note that existing installations on Raspbian 10 Buster will not automatically be upgraded to Bullseye but need to be reinstalled or manually upgraded with apt. This however, shouldn’t really make any difference to the user and unless you have another reason to require Bullseye, there’s no need to upgrade right away. The Bullseye images will still be supported for the foreseeable future.
Another biggish new feature is the support of TI z-Stack based ZigBee adapters along with the already supported Phoscon and NXP adapters. This includes a wide range of ZigBee adapters which can be identified by the CC2531 and CC2652 chipsets and are used in pretty much all the adapters available for end users on the internet. Often resellers allow selecting a firmware when ordering or the stick comes without any firmare. Selecting/flashing the zigbee2mqtt or the stock z-Stack firmware will work just fine. This also supports the Sonoff ZigBee 3.0 USB.
The core also received a bunch of performance optimizations and should now idle around a few % of CPU on a Raspberry Pi even with more than 100 configured things. Obviously this does depend on what things exactly are used and the amount of smart rules and scripts, but in any case the optimization should be very noticeable on large setups.
In terms of new device support, the Shelly EM and a bunch of ZigBee devices have been added but the lion share of work on plugins has been going into improving stability and performance of existing plugins. There are a whole lot of changes in the plugins which improve things here and there as well as adding newer models of already existing devices. Especially in the ZigBee area a lot of improvements have been made with better Thermostat device support and smart plugs with energy metering.
Last but not least, given the major version bump we’ve taken the opportunity to drop some legacy code that we’ve been carrying along for a while. This in turn implies that older app versions won’t be compatible to newer nymea setups any more so you are advised to upgrade all the app instances along with the core.
We’d also like to ask our users to help us setting up a device compatibility database. We’re not 100% clear yet how we’re going to collect information, but nevertheless we’d like to already ask you now to join our chat channels (Telegram of Discord, both can be found in nymea:apps main menu) and report any devices that you are using successfully with nymea. Perhaps we can work out something together which can easily be extended by the community.
Enjoy the release!
And as always, the full detailed changelog:
- Add support for multi-user and user permissions
- Add remote tunnel support
- Fixes and improvements in the energy charts
- Add support for the virtual button thing class
- Improvements in the ZigBee settings
- Deprecate nymea:cloud support
- Add support for multi-user and user permissions
- Add tunnel proxy server support
- Add support for TI z-Stack based Zigbee adapters
- Fix a crash when removing a currently connected transport
- Make SSL certificate loading and generating more robust
- Fix encoding of ZigbeeHandler (Windows CRLF → Unix LF)
- Fix some interface definitions (minimum/maximum vs min/max)
- Split thing cache into individual files
- Fix cleaning up things when a setup fails in python plugins
- Don’t generate events for state changes any more
- Remove deprecated Devices, Action, Events, States namespaces from
- Add discoveryType thing class property
- Fix for ThingState which reports minValue instead of maxValue
- Add debug prints to rule engine
- Increase timeout for auto tests
- Remove apt.conf.d/99nymea also without purge option
- Update copyright to 2022
- Update mac address database and switch source information provider
- Fix crash for long taking mac address lookup
- DebugInterface: Fix process finished crash if the http reply timed out
- Add support for TI z-Stack based adapters
- Exclude docs and firmware binaries from dpkg source package
- Remove 1 from lib name
- Cleaner .gitignore
- Refactor handling of TSNs in ZCL to allow the application using it.
- Allow removing uninitialized nodes
- Fix debug print for ZigbeeNetwork errors
- deConz: Remove unused/redundant firmware version string members
- Add support for floating point attribute parsing
- Add helpers for mandatory attributes in AnalogInput cluster
- Simplify cluster inheritance
- More work on the thermostat cluster
- Timeout ZDO replies
- Consolidate permit joining timer
- Add TCP socket transport support
- Add tunnel proxy remote connection
- Add pkgconfig for nymea-remoteproxy development library
- Handle Bluetooth controller resets better
- Make push button active high/low configurable
- SMA: Add speedwire interface
- MQTT client: Add more parameters to thing class (for SSL and will)
- Neato Botvac: Fix dependencies
- Remove ZigBee plugins (moved to new repository)
- SMA: Add default value for sma sunny webbox thing param #528
- go-eCharger: Handle reconfigure for MQTT and queue HTTP requests
- Shelly: Try to reconfigure MQTT on disconnected shellies
- PhilipsHue: Improve discovery and error handling
- SomfyTahoma: Fix min/max values as per interface
- MecMeter: Optimize performance
- DHT: Properly clean up pluginTimer when all things are gone
- Shelly: Don’t cache volatile states
- Shelly: Add support for Shelly EM
- SolarLog: Fix currentPower state and disable caching for volatile
- BluOS: Fix eventTypeId → stateTypeId typo
- Keba: Fix eventTypes → stateTypes typo and uncache volatile states
- Remove generic things plugins (Moved to new repository)
- Keba: Add series capability check and fetch product information
- Fronius: Rework plugin entirely, queue request and simplify
- Shelly: Fix switch settings (button mode and reverse)
- Update project/packaging files for the standalone repository
- Tradfri: Update ikea symfonisk
- Tradfri: Fix on/off button pressed event params
- Lumi: Add support for energy metering on lumi plugs
- New Plugin: Eurotronic
- Lumi: Fix button multipress support
- Lumi: Fix connecting to the OnOff cluster directly after pairing
- Generic: Fixes in generic power socket handling (for Lidl power
- Lumi: Add support for the second variant of the lumi button
- Closables: Fix min/max values
- Energy: Fix action parameter type id
- Split genericthings plugin into individual plugins
- Energy: Add generic smart meters (producer and consumer)
- Add a plugin for generic lights (all types)
- Update modbus connection generate tool
- Wallbe: Update plugin metadata
- Packaging: Split translations and consolidate package descriptions
- Split energymeters into separate inepro Metering and B+G E-Tech
- Wallbe: Fix eventTypeId → actionParamTypeId typo
- SunSpec: Remove Kostal sunspec connection in favor of custom modbus
- Sunspec: Set weak discovery type
- SunSpec: Fix solar edge battery detection
- Drop dependency to qt5-default
- Add support for debian 11 / bullseye
- Fix debug print escape typo
- Fix calculation of sample start for months and years
- Optimize energy logs DB rectification after system downtime