a8f469e5e7
* Display raw item state when formatting fails With the addition of Profiles, there are situations where a Channel sends format information that does not match the type. For example, "Timestamp on update" always sends a DateTime, but the channel may specify a different format (e.g., if it is a battery level, "%.0f %%"). In such a case, we attempt to format the DateTime according to the pattern, it (predictably and correctly) fails, and this results in an error in the UI and a warning in the log. While this is an expected error if a user uses an incorrect format code in an Item's metadata (user error), it is somewhat unexpected if a user is choosing an option as presented in the UI. Because this is purely a formatting issue, one solution is to direct users to add a formatting code if they see an error. However, the disadvantage of this approach is that it doesn't work "out of the box." This patch attempts to address the issue by displaying the raw Item state when formatting fails instead of displaying "Err". This should provide a more balanced approach with a predictable outcome. In addition, when a user is intentionally changing the pattern via metadata and gets it wrong, they should still see info in the log that helps them get to the root of the problem, but I've changed it from warn to info so it will be a little less noisy for those who choose to ignore it. This solution was discussed in https://github.com/openhab/openhab-core/issues/2037 and https://community.openhab.org/t/timestamps-not-rendering-consistently-in-ui-3-0-2/121891/2 Thank you to @Rossko57 and @cweitkamp for their help in figuring it out, and in suggesting the solution. Signed-off-by: Brian Warner <brian@bdwarner.com> |
||
---|---|---|
bom | ||
bundles | ||
features | ||
itests | ||
licenses/epl-2.0 | ||
tools | ||
.gitattributes | ||
.gitignore | ||
CODEOWNERS | ||
CONTRIBUTING.md | ||
crowdin.yml | ||
LICENSE | ||
NOTICE | ||
pom.xml | ||
README.md |
openHAB Core
This project contains core bundles of the openHAB runtime.
Building and running the project is fairly easy if you follow the steps detailed below.
Please note that openHAB Core is not a product itself, but a framework to build solutions on top. It is picked up by the main openHAB distribution.
This means that what you build is primarily an artifact repository of OSGi bundles that can be used within smart home products.
1. Prerequisites
The build infrastructure is based on Maven. If you know Maven already then there won't be any surprises for you. If you have not worked with Maven yet, just follow the instructions and everything will miraculously work ;-)
What you need before you start:
- Java SE Development Kit 11
- Maven 3 from https://maven.apache.org/download.html
Make sure that the mvn
command is available on your path
2. Checkout
Checkout the source code from GitHub, e.g. by running:
git clone https://github.com/openhab/openhab-core.git
3. Building with Maven
To build this project from the sources, Maven takes care of everything:
- set
MAVEN_OPTS
to-Xms512m -Xmx1024m
- change into the openhab-core directory (
cd openhab-core
) - run
mvn clean install
to compile and package all sources
If there are tests that are failing occasionally on your local build, run mvn -DskipTests=true clean install
instead to skip them.
How to contribute
If you want to become a contributor to the project, please read about contributing and check our guidelines first.