use of org.apache.commons.net.telnet.TelnetClient in project openhab1-addons by openhab.
the class DenonListener method createTelnetClient.
private TelnetClient createTelnetClient() {
TelnetClient tc = new TelnetClient();
tc.setDefaultTimeout(TIMEOUT);
return tc;
}
use of org.apache.commons.net.telnet.TelnetClient in project openhab1-addons by openhab.
the class DDWRTBinding method execute.
@Override
protected void execute() {
logger.trace("execute");
if (password == null) {
return;
} else if (StringUtils.isBlank(password)) {
logger.error("Password mustn't be empty!");
return;
}
try {
TelnetClient client = null;
for (DDWRTBindingProvider provider : providers) {
for (String item : provider.getItemNames()) {
String query = null;
String type = provider.getType(item);
if (queryMap.containsKey(type)) {
if (type.startsWith(DDWRTBindingProvider.TYPE_ROUTER_TYPE)) {
query = queryMap.get(type);
} else if (type.startsWith(DDWRTBindingProvider.TYPE_WLAN_24) && !interface_24.isEmpty()) {
query = queryMap.get(type) + " " + interface_24 + " | grep UP";
} else if (type.startsWith(DDWRTBindingProvider.TYPE_WLAN_50) && !interface_50.isEmpty()) {
query = queryMap.get(type) + " " + interface_50 + " | grep UP";
} else if (type.startsWith(DDWRTBindingProvider.TYPE_WLAN_GUEST) && !interface_guest.isEmpty()) {
query = queryMap.get(type) + " " + interface_guest + " | grep UP";
}
} else {
continue;
}
if (query == null) {
continue;
}
logger.trace("execute query ({}) ({}) ({})", query, ip, username);
if (client == null) {
client = new TelnetClient();
client.connect(ip);
if (username != null) {
receive(client);
send(client, username);
}
receive(client);
send(client, password);
receive(client);
}
send(client, query);
String answer = receive(client);
String[] lines = answer.split("\r\n");
if (lines.length >= 2) {
answer = lines[1].trim();
}
Class<? extends Item> itemType = provider.getItemType(item);
State state = null;
if (itemType.isAssignableFrom(SwitchItem.class)) {
if (lines.length > 2) {
if (lines[1].contains("UP")) {
state = OnOffType.ON;
} else {
state = OnOffType.OFF;
}
} else {
state = OnOffType.OFF;
}
} else if (itemType.isAssignableFrom(NumberItem.class)) {
state = new DecimalType(answer);
} else if (itemType.isAssignableFrom(StringItem.class)) {
state = new StringType(answer);
}
if (state != null) {
eventPublisher.postUpdate(item, state);
}
}
}
if (client != null) {
client.disconnect();
}
} catch (Exception e) {
logger.warn("Could not get item state ", e);
}
}
use of org.apache.commons.net.telnet.TelnetClient in project openhab1-addons by openhab.
the class FritzboxBinding method execute.
@Override
protected void execute() {
if (password == null) {
return;
} else if (password.trim().isEmpty()) {
return;
}
try {
TelnetClient client = null;
for (FritzboxBindingProvider provider : providers) {
for (String item : provider.getItemNames()) {
String query = null;
String type = provider.getType(item);
if (queryMap.containsKey(type)) {
query = queryMap.get(type);
} else if (type.startsWith("tam")) {
query = "ctlmgr_ctl r tam settings/" + type.toUpperCase() + "/Active";
} else if (type.startsWith("query")) {
query = type.substring(type.indexOf(":") + 1).trim();
} else {
continue;
}
if (client == null) {
client = new TelnetClient();
client.connect(ip);
if (username != null) {
receive(client);
send(client, username);
}
receive(client);
send(client, password);
receive(client);
}
send(client, query);
String answer = receive(client);
String[] lines = answer.split("\r\n");
if (lines.length >= 2) {
answer = lines[1].trim();
}
Class<? extends Item> itemType = provider.getItemType(item);
org.openhab.core.types.State state = null;
if (itemType.isAssignableFrom(SwitchItem.class)) {
if (answer.equals("1")) {
state = OnOffType.ON;
} else {
state = OnOffType.OFF;
}
} else if (itemType.isAssignableFrom(NumberItem.class)) {
state = new DecimalType(answer);
} else if (itemType.isAssignableFrom(StringItem.class)) {
state = new StringType(answer);
}
if (state != null) {
eventPublisher.postUpdate(item, state);
}
}
}
if (client != null) {
client.disconnect();
}
} catch (Exception e) {
logger.warn("Could not get item state ", e);
}
}
Aggregations