Hello,
First of all, I really like this feature; it makes my own deployment so much easier. That said, I might have gone a bit overboard with moving config values into environment variables
On the upside, it serves as a very comprehensive test of the impact.
In principle, it works, and minor issues can be bypassed using workarounds. However, below is a list of the difficulties I encountered.
- As soon as I use environment variables, the WebUI no longer displays the final value, but only the placeholder. One could certainly debate what should be displayed here, but in my opinion, the actual value should be shown rather than the placeholder.
However, this is more of a “nice-to-have.”
-
Channel and service configs should work similarly to Thing configs. For example, JDBC and MySQL service configurations also contain passwords. Or, with the MQTT binding, one might want to use channel topics as environment variables. However, this is also more of a “nice-to-have” and is mentioned here only for the sake of completeness.
-
The Shelly binding. Here, I’ve moved both the IP address and the password into environment variables.
It works fine so far, but as soon as I open the Shelly Manager (‘/shelly/manager’), I get a 500 error with the following exception.
My guess is that the Shelly Manager receives the raw IP string—meaning the one with the unresolved placeholder and therefore runs into some kind of parsing issue.
If I replace the IP placeholder with reals values, the shelly manager works again.
- The Home Connect Direct binding. Here, I have moved, both the IP address and the Device UID (Home Application ID), to env vars.
However, as can be seen in the Home Connect Manager (‘/home connect direct/appliances’), the variables are displayed here in their “unresolved” state as well. This, too, is a “nice-to-have” feature.
However, the problem is that the binding is no longer correctly assigning the profile. It keeps prompting me to upload one, which, of course, I have already done. My guess is that he can’t find the right profile based on device UID anymore. Because it still contains the placeholder.
This is not a huge problem for me, because it affects only “special channel” from the profile. Basic channels are not affected, which means that the homeconnect binding itself works fro me. If I replace the placeholder for the device UID (Home Appliance ID) with the real value, it works.
My question now is: is there a more central point where all of this can be handled? As I understand it, the bindings themselves should never need to be aware of the existence of these placeholders; any requests for these configuration values should always be resolved beforehand, including for the display in the Web UI.
The second solution would be to fix all these special cases individually within the bindings, though this would be very labor-intensive and prone to error.







