diff --git a/bundles/org.openhab.binding.epsonprojector/README.md b/bundles/org.openhab.binding.epsonprojector/README.md index e121b4016e5ef..47a9daebd69b7 100644 --- a/bundles/org.openhab.binding.epsonprojector/README.md +++ b/bundles/org.openhab.binding.epsonprojector/README.md @@ -40,7 +40,7 @@ Some notes: * The binding should work on all Epson projectors that support the ESC/VP21 protocol, however not all binding channels will be useable on all projectors. * The _source_ channel includes a dropdown with the most common source inputs. -* If your projector has a source input that is not in the dropdown, the two digit hex code to access that input will be displayed by the _source_ channel when that input is selected by the remote control. +* If your projector has a source input that is not in the dropdown, the two character hex code to access that input will be displayed by the _source_ channel when that input is selected by the remote control. * By using the sitemap mapping or a rule to send the input's code back to the _source_ channel, any source on the projector can be accessed by the binding. * The following channels _aspectratio_, _colormode_, _luminance_, _gamma_ and _background_ are pre-populated with a full set of options but not every option will be useable on all projectors. * If your projector has an option in one of the above mentioned channels that is not recognized by the binding, the channel will display 'UNKNOWN' if that un-recognized option is selected by the remote control. diff --git a/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/EpsonProjectorCommandType.java b/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/EpsonProjectorCommandType.java index 7a9ac00ef8259..0eb9f5e8196ad 100644 --- a/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/EpsonProjectorCommandType.java +++ b/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/EpsonProjectorCommandType.java @@ -12,8 +12,6 @@ */ package org.openhab.binding.epsonprojector.internal; -import java.io.InvalidClassException; - import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.items.Item; import org.openhab.core.library.items.DimmerItem; @@ -29,34 +27,34 @@ */ @NonNullByDefault public enum EpsonProjectorCommandType { - POWER("Power", SwitchItem.class), - POWER_STATE("PowerState", StringItem.class), - LAMP_TIME("LampTime", NumberItem.class), - KEY_CODE("KeyCode", StringItem.class), - VKEYSTONE("VerticalKeystone", NumberItem.class), - HKEYSTONE("HorizontalKeystone", NumberItem.class), - AKEYSTONE("AutoKeystone", SwitchItem.class), - FREEZE("Freeze", SwitchItem.class), - ASPECT_RATIO("AspectRatio", StringItem.class), - LUMINANCE("Luminance", StringItem.class), - SOURCE("Source", StringItem.class), - BRIGHTNESS("Brightness", NumberItem.class), - CONTRAST("Contrast", NumberItem.class), - DENSITY("Density", NumberItem.class), - TINT("Tint", NumberItem.class), - COLOR_TEMP("ColorTemperature", NumberItem.class), - FLESH_TEMP("FleshTemperature", NumberItem.class), - COLOR_MODE("ColorMode", StringItem.class), - HPOSITION("HorizontalPosition", NumberItem.class), - VPOSITION("VerticalPosition", NumberItem.class), - GAMMA("Gamma", StringItem.class), - VOLUME("Volume", DimmerItem.class), - MUTE("Mute", SwitchItem.class), - HREVERSE("HorizontalReverse", SwitchItem.class), - VREVERSE("VerticalReverse", SwitchItem.class), - BACKGROUND("Background", StringItem.class), - ERR_CODE("ErrCode", NumberItem.class), - ERR_MESSAGE("ErrMessage", StringItem.class),; + POWER("power", SwitchItem.class), + POWER_STATE("powerstate", StringItem.class), + LAMP_TIME("lamptime", NumberItem.class), + KEY_CODE("keycode", StringItem.class), + VKEYSTONE("verticalkeystone", NumberItem.class), + HKEYSTONE("horizontalkeystone", NumberItem.class), + AKEYSTONE("autokeystone", SwitchItem.class), + FREEZE("freeze", SwitchItem.class), + ASPECT_RATIO("aspectratio", StringItem.class), + LUMINANCE("luminance", StringItem.class), + SOURCE("source", StringItem.class), + BRIGHTNESS("brightness", NumberItem.class), + CONTRAST("contrast", NumberItem.class), + DENSITY("density", NumberItem.class), + TINT("tint", NumberItem.class), + COLOR_TEMP("colortemperature", NumberItem.class), + FLESH_TEMP("fleshtemperature", NumberItem.class), + COLOR_MODE("colormode", StringItem.class), + HPOSITION("horizontalposition", NumberItem.class), + VPOSITION("verticalposition", NumberItem.class), + GAMMA("gamma", StringItem.class), + VOLUME("volume", DimmerItem.class), + MUTE("mute", SwitchItem.class), + HREVERSE("horizontalreverse", SwitchItem.class), + VREVERSE("verticalreverse", SwitchItem.class), + BACKGROUND("background", StringItem.class), + ERR_CODE("errcode", NumberItem.class), + ERR_MESSAGE("errmessage", StringItem.class),; private final String text; private Class itemClass; @@ -75,48 +73,22 @@ public Class getItemClass() { return itemClass; } - /** - * Procedure to validate command type string. - * - * @param commandTypeText - * command string e.g. RawData, Command, Brightness - * @return true if item is valid. - * @throws IllegalArgumentException - * Not valid command type. - * @throws InvalidClassException - * Not valid class for command type. - */ - public static boolean validateBinding(String commandTypeText, Class itemClass) - throws IllegalArgumentException, InvalidClassException { - for (EpsonProjectorCommandType c : EpsonProjectorCommandType.values()) { - if (c.text.equalsIgnoreCase(commandTypeText)) { - if (c.getItemClass().equals(itemClass)) { - return true; - } else { - throw new InvalidClassException("Not valid class for command type"); - } - } - } - - throw new IllegalArgumentException("Not valid command type"); - } - /** * Procedure to convert command type string to command type class. * * @param commandTypeText * command string e.g. RawData, Command, Brightness * @return corresponding command type. - * @throws InvalidClassException - * Not valid class for command type. + * @throws IllegalArgumentException + * No valid class for command type. */ public static EpsonProjectorCommandType getCommandType(String commandTypeText) throws IllegalArgumentException { for (EpsonProjectorCommandType c : EpsonProjectorCommandType.values()) { - if (c.text.equalsIgnoreCase(commandTypeText)) { + if (c.text.equals(commandTypeText)) { return c; } } - throw new IllegalArgumentException("Not valid command type"); + throw new IllegalArgumentException("Not valid command type: " + commandTypeText); } } diff --git a/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/handler/EpsonProjectorHandler.java b/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/handler/EpsonProjectorHandler.java index 30cd57c77775d..7229deeb7020b 100644 --- a/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/handler/EpsonProjectorHandler.java +++ b/bundles/org.openhab.binding.epsonprojector/src/main/java/org/openhab/binding/epsonprojector/internal/handler/EpsonProjectorHandler.java @@ -170,7 +170,7 @@ private void updateChannelState(Channel channel) { } } } catch (IllegalArgumentException e) { - logger.warn("Unknown channel {}", channel.getUID().getId()); + logger.warn("Unknown channel {}, exception: {}", channel.getUID().getId(), e.getMessage()); } }