Hi,
I want to report a persistent problem with the MelCloud binding which still occurs even with the latest snapshots.
My system:
OpenHAB 4.3.5 stable release
MelCloud binding tested both with 4.3.5 built-in version and latest 5.0.0-SNAPSHOT version
Java 17
Observed behavior:
During startup, the following warnings consistently appear:
[WARN ] [.core.thing.binding.BaseThingHandler] - Handler MelCloudAccountHandler tried updating the thing status although the handler was already disposed.
In my log, for example:
11:56:22.772 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler MelCloudAccountHandler tried updating the thing status although the handler was already disposed.
11:56:23.358 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler MelCloudAccountHandler tried updating the thing status although the handler was already disposed.
Consequences:
The MelCloud Account Thing is left in a broken state.
No channels appear ("This thing has no channels. Either the thing type doesn't define channels, or they may be detected and appear later.")
Some actions like toggling power still work, but many commands (e.g., setting temperature) silently fail.
The problem happens both during initial OpenHAB startup and when manually disabling and re-enabling the Thing later.
Tested so far:
Full system reboot → problem appears.
Manual disable / enable of MelCloud Account Thing after OpenHAB has fully started → same problem.
Using latest 5.0.0-SNAPSHOT version of the binding → same problem.
Request:
I’m not speculating where exactly in the binding this issue occurs, but the consistent behavior strongly suggests that something goes wrong during asynchronous initialization of the Account Thing. I would appreciate if someone with knowledge of the binding could review and investigate this issue.
I am happy to provide further logs, tests or assist in any debugging if needed.
Thank you!
Update / additional findings:
After changing the Item definition for setTemperature to use Number:Temperature:
Number:Temperature Ln35_Set_Temperature "Set Temperature [%.1f %unit%]" { unit="°C", channel="melcloud:acdevice:myaccount:livingroom:setTemperature" }
…the binding now correctly processes set temperature commands when sent as QuantityType, and actually performs the updates via the API.
However:
The binding still fails to populate channels on startup (Thing shows “no channels”) unless I enable DEBUG logging on the binding.
Even when channels appear, the warning remains:
Handler MelCloudAccountHandler tried updating the thing status although the handler was already disposed.
So the race condition during initialization still exists, but at least the temperature command conversion works correctly now with proper QuantityType items.