[Konnected] Taking configured onValue into account when sending status to actuator (#13360)

* Taking configured onvalue into account when sending status to actuator
* Added documentation for onValue configuration

Signed-off-by: Haavar Valeur <haavar@haavar.com>
This commit is contained in:
Haavar Valeur
2022-09-09 23:48:03 -07:00
committed by GitHub
parent ce6b0a876d
commit 9c534e37a8
2 changed files with 13 additions and 17 deletions

View File

@@ -92,10 +92,7 @@ public class KonnectedHandler extends BaseThingHandler {
if (channelType.contains(CHANNEL_SWITCH)) {
logger.debug("A command was sent to a sensor type so we are ignoring the command");
} else {
int sendCommand = (OnOffType.OFF.compareTo((OnOffType) command));
logger.debug("The command being sent to zone {} for channel:{} is {}", zone, channelUID.getAsString(),
sendCommand);
sendActuatorCommand(sendCommand, zone, channelUID);
sendActuatorCommand((OnOffType) command, zone, channelUID);
}
} else if (command instanceof RefreshType) {
// check to see if handler has been initialized before attempting to get state of pin, else wait one minute
@@ -404,10 +401,10 @@ public class KonnectedHandler extends BaseThingHandler {
/**
* Sends a command to the module via {@link KonnectedHTTPUtils}
*
* @param scommand the string command, either 0 or 1 to send to the actutor pin on the Konnected module
* @param command the state to send to the actuator
* @param zone the zone to send the command to on the Konnected Module
*/
private void sendActuatorCommand(Integer scommand, String zone, ChannelUID channelId) {
private void sendActuatorCommand(OnOffType command, String zone, ChannelUID channelId) {
try {
Channel channel = getThing().getChannel(channelId.getId());
if (channel != null) {
@@ -415,23 +412,17 @@ public class KonnectedHandler extends BaseThingHandler {
channelId.getId(), channelId.getGroupId(), channelId);
ZoneConfiguration zoneConfig = channel.getConfiguration().as(ZoneConfiguration.class);
KonnectedModuleGson payload = new KonnectedModuleGson();
payload.setState(scommand);
payload.setZone(thingID, zone);
// check to see if this is an On Command type, if so add the momentary, pause, times to the payload if
// they exist on the configuration.
if (scommand == zoneConfig.onValue) {
if (command == OnOffType.ON) {
payload.setState(zoneConfig.onValue);
payload.setTimes(zoneConfig.times);
logger.debug("The times configuration was set to: {} for channelID: {}.", zoneConfig.times,
channelId);
payload.setMomentary(zoneConfig.momentary);
logger.debug("The momentary configuration set to: {} channelID: {}.", zoneConfig.momentary,
channelId);
payload.setPause(zoneConfig.pause);
logger.debug("The pause configuration was set to: {} for channelID: {}.", zoneConfig.pause,
channelId);
} else {
payload.setState(zoneConfig.onValue == 1 ? 0 : 1);
}
String payloadString = gson.toJson(payload);
logger.debug("The command payload is: {}", payloadString);
String path = "";