mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[nanoleaf] Bugfix: Handle non-integer panel ids (#13951)
Panel ids are sometimes returned as BigInteger We haven't been able to understand why this happens somewhere and somewhere not, but this is an sledgehammer attempt to fix it quickly to unblock users, and then we will try to understand it later. Discussions: https://community.openhab.org/t/java-lang-classcastexception-class-java-math-bigdecimal-cannot-be-cast-to-class-java-lang-integer/142035/16 https://community.openhab.org/t/nanoleaf-binding-oh3-stabilization-update/116300/61 Signed-off-by: Jørgen Austvik <jaustvik@acm.org>
This commit is contained in:
parent
d4ec220925
commit
79060f3c8f
@ -286,7 +286,21 @@ public class NanoleafPanelHandler extends BaseThingHandler implements NanoleafPa
|
||||
}
|
||||
|
||||
public Integer getPanelID() {
|
||||
return (Integer) getThing().getConfiguration().get(CONFIG_PANEL_ID);
|
||||
Object panelId = getThing().getConfiguration().get(CONFIG_PANEL_ID);
|
||||
if (panelId instanceof Integer) {
|
||||
return (Integer) panelId;
|
||||
} else if (panelId instanceof Number) {
|
||||
return ((Number) panelId).intValue();
|
||||
} else {
|
||||
// Fall back to parsing string representation of panel if it is not returning an integer
|
||||
String stringPanelId = panelId.toString();
|
||||
Integer parsedPanelId = Integer.getInteger(stringPanelId);
|
||||
if (parsedPanelId == null) {
|
||||
return 0;
|
||||
} else {
|
||||
return parsedPanelId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setPanelColor(HSBType color) {
|
||||
|
Loading…
Reference in New Issue
Block a user