[homekit] Improve output of console's homekit show command (#13569)
* [homekit] Improve output of console's `homekit show` command * include the full JSON from all the characteristics, so you can confirm everything is configured correctly. * only use simple class names; the fully qualified package is just a distraction. * show linked services if they exist * include the class name of services, not just the GUID Signed-off-by: Cody Cutrer <cody@cutrer.us>
This commit is contained in:
parent
91383250d4
commit
68b52ee15b
@ -26,6 +26,8 @@ import org.osgi.service.component.annotations.Reference;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import io.github.hapjava.services.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Console commands for interacting with the HomeKit integration
|
* Console commands for interacting with the HomeKit integration
|
||||||
*
|
*
|
||||||
@ -119,6 +121,24 @@ public class HomekitCommandExtension extends AbstractConsoleCommandExtension {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void printService(Console console, Service service, int indent) {
|
||||||
|
console.println(" ".repeat(indent) + "Service Type: " + service.getClass().getSimpleName() + " ("
|
||||||
|
+ service.getType() + ")");
|
||||||
|
console.println(" ".repeat(indent + 2) + "Characteristics:");
|
||||||
|
service.getCharacteristics().forEach((c) -> {
|
||||||
|
try {
|
||||||
|
console.println(
|
||||||
|
" ".repeat(indent + 4) + c.getClass().getSimpleName() + ": " + c.toJson(0).get().toString());
|
||||||
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (service.getLinkedServices().isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.println(" ".repeat(indent + 2) + "Linked Services:");
|
||||||
|
service.getLinkedServices().forEach((s) -> printService(console, s, indent + 2));
|
||||||
|
}
|
||||||
|
|
||||||
private void printAccessory(String id, Console console) {
|
private void printAccessory(String id, Console console) {
|
||||||
homekit.getAccessories().forEach(v -> {
|
homekit.getAccessories().forEach(v -> {
|
||||||
try {
|
try {
|
||||||
@ -126,11 +146,7 @@ public class HomekitCommandExtension extends AbstractConsoleCommandExtension {
|
|||||||
&& (v.getName().get().toUpperCase().contains(id.toUpperCase())))) {
|
&& (v.getName().get().toUpperCase().contains(id.toUpperCase())))) {
|
||||||
console.println(v.getId() + " " + v.getName().get());
|
console.println(v.getId() + " " + v.getName().get());
|
||||||
console.println("Services:");
|
console.println("Services:");
|
||||||
v.getServices().forEach(s -> {
|
v.getServices().forEach(s -> printService(console, s, 2));
|
||||||
console.println(" Service Type: " + s.getType());
|
|
||||||
console.println(" Characteristics: ");
|
|
||||||
s.getCharacteristics().forEach(c -> console.println(" : " + c.getClass()));
|
|
||||||
});
|
|
||||||
console.println("");
|
console.println("");
|
||||||
}
|
}
|
||||||
} catch (InterruptedException | ExecutionException e) {
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user