/** {@inheritDoc} */ @Override public List<SerialMessage> executeRefresh(ZWaveThingChannel channel, ZWaveNode node) { ZWaveMeterCommandClass commandClass = (ZWaveMeterCommandClass) node.resolveCommandClass(ZWaveCommandClass.CommandClass.METER, channel.getEndpoint()); if (commandClass == null) { return null; } logger.debug( "NODE {}: Generating poll message for {}, endpoint {}", node.getNodeId(), commandClass.getCommandClass().getLabel(), channel.getEndpoint()); SerialMessage serialMessage; // Don't refresh channels that are the reset button if ("true".equalsIgnoreCase(channel.getArguments().get("reset"))) { return null; } String meterScale = channel.getArguments().get("type"); logger.debug( "NODE {}: Generating poll message for {}, endpoint {}", node.getNodeId(), commandClass.getCommandClass().getLabel(), channel.getEndpoint()); if (meterScale != null) { serialMessage = node.encapsulate( commandClass.getMessage(MeterScale.getMeterScale(meterScale)), commandClass, channel.getEndpoint()); } else { serialMessage = node.encapsulate(commandClass.getValueMessage(), commandClass, channel.getEndpoint()); } List<SerialMessage> response = new ArrayList<SerialMessage>(1); response.add(serialMessage); return response; }
/** {@inheritDoc} */ @Override public SerialMessage executeRefresh( ZWaveNode node, ZWaveMeterCommandClass commandClass, int endpointId, Map<String, String> arguments) { String meterScale = arguments.get("meter_scale"); logger.debug( "NODE {}: Generating poll message for {}, endpoint {}", node.getNodeId(), commandClass.getCommandClass().getLabel(), endpointId); if (meterScale != null) { return node.encapsulate( commandClass.getMessage(MeterScale.getMeterScale(meterScale)), commandClass, endpointId); } else { return node.encapsulate(commandClass.getValueMessage(), commandClass, endpointId); } }