If, like me, you’re seeing lots of the new ‘deprecated’ messages in openhab.log, such as this one:
2026-07-07 21:09:26.284 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplusplugs-d48afc568624: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.291 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplugsg3-d0cf13dad6c8: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.295 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplusplugs-d48afc568624: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.301 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplugsg3-d0cf13dad6c8: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.312 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-acebe6e69708: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.314 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-acebe6e69708: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.333 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplusplugs-d48afc564ad4: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.335 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyplusplugs-d48afc564ad4: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.626 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-e4b06365c648: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.627 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyemminig4-7c2c67776c7c: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.630 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellyemminig4-7c2c67776c7c: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.633 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-e4b06365c648: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.695 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-e4b0636138e0: Channel meter#currentWatts is deprecated and will be removed in a future release; use meter#currentPower instead.
2026-07-07 21:09:26.713 [WARN ] [y.internal.handler.ShellyBaseHandler] - shelly1pmminig4-e4b0636138e0: Channel meter#totalKWH is deprecated and will be removed in a future release; use meter#totalEnergy instead.
2026-07-07 21:09:26.817 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellypstripg4-98a3167b2f48: Channel meter1#currentWatts is deprecated and will be removed in a future release; use meter1#currentPower instead.
2026-07-07 21:09:26.819 [WARN ] [y.internal.handler.ShellyBaseHandler] - shellypstripg4-98a3167b2f48: Channel meter1#totalKWH is deprecated and will be removed in a future release; use meter1#totalEnergy instead.
and if you don’t fancy migrating them all manually, feel free to use the script here:
Documentation is on Top of the Script, but it’s simple to use, just copy it on a system which has python3 installed and access to you openHAB API. After that, just copy your `openhab.log` with the deprecated messages in the same folder, our configure the correct path in the script. Now you need an openHAB API Token for accessing the API and also configure it in the script. Last you need to configure your openHAB URL. Now you are ready for a dry run. If everything on the output is looking fine, just turn `DRY_RUN` to `False` and run again.
I hope it helps some people, I had about 150 channels to relink, with this script it was done in seconds.
That’s very unlikely. The Python scripting add-on doesn’t actually run Python, it runs GraalPy, which “emulates” Python for a Java Virtual Machine. To run the script, you probably need “real Python”.
I’ve noticed that when a THING is restarted, the switch goes to OFF – even though the previous state was ON – but after a short while, certainly when a second query is sent, it switches to ON as it should. The Shelly itself remains ON the whole time. I’ve only just noticed this with the latest DEV version 5.2.1.202607061445. I’ve only had this on my production system for about a week.
I’ve repeatedly noticed during openHAB startup that rules have been sending me messages relating to the status of switches.
I think we’ve got another bug here! @dk8pn can you please verify that?
Switch on a Shelly Switch
restart the Thing
check the state directly after restarting (should go from ON to Off and back to ON)
Unless there’s something strange in the binding in this case, this isn’t normally handled by the binding at all. The binding only updates the Item when a change occurs. When you start OH, every Item is by default in an undef/null state until a binding tell them otherwise.
The way you manage this is through persistence. If you want to, you can have persistence initialize the Items to the state they were when OH was shut down. Many people do this. I personally see that as “false information”, you don’t actually know that it hasn’t changed in the meanwhile, so I prefer that the status is “unknown”. The problem for controls like switches is that they don’t have an “unknown” state, so that usualle means “off”.
I do use persistence to get the state after the system is coming up. I do need that for my own created switches, which are triggering rules, so they stay ON for example. But you’re right, the shelly switches do not need this persistence (restoreOnStartup), because the binding should read the current state.
I think we have a problem in the binding, but perhaps someone can verify my finding.
What I meant to say is that they should be in an “unknown” state without unless persisted until the binding starts. When the binding starts, I would expect the binding to set the correct state for devices that report the state, but not for items (like wireless) that you have to wait to hear from.
that confirms what I’m thinking. The initial http poll update doesn’t work, after 1min the background time polls again and does the initial channel update
We are doing clean-up some pending issues with fixmeters2
followed by extmeters, which add last average min 2+3 and reset meter data (was in, but never worked properly).
Thanks to all who supported this significant update to the binding
The still have various PRs pending, which need to be finalized and tested before starting review. If created issues to run discussions and report bugs, feature requests and test results
BLU Weather Station, PR #19893: Integration of WS90 BLU devices, some advanced features will be added later as outlined here.
Plus/Pro Dimmer support, PR #19226: Adding missing devices for Gen2..4, see here
RGBW devices, PR #19227: Integration of missing RGBW-devices, light models; discussion takes place here, this is the pre-requisite for Shelly bulbs (incl. Duo G3 - PR #20909
LoRa integration, PR #19006: Add support for the Plus/Pro LoRa Add-On, see here
The is also the plan to implement a LoRa-based item proxy. Which allows to have a remote LoRa devices connecting sensors, relays etc., bridging control and status updates via LoRa and then have them on the other side as items - similar to the openHAB remote concept. The connection will be optimized for sensor data, encrypted and prevents datagram losses implementing the Cheyenne IoT protocol. This thing is in an early design stage, your are welcome to join the club.
As you can see there is a lot to test Functions are already developed by 80-95%, but needs good testing before I trigger reviews.
I’m interested on your priorities/preferences, please tick up to 3 options.