Skip to content

Commit

Permalink
add some comments
Browse files Browse the repository at this point in the history
  • Loading branch information
dvdgeisler committed Nov 25, 2022
1 parent b57061d commit d18e734
Showing 1 changed file with 55 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,39 +42,6 @@ public SceneTriggers(final DirigeraApi dapi, final ClientApi capi, final ObjectM
this.json = json;
}

private static SceneTriggerController createTrigger(final Device device, final int buttonIndex) {
return new SceneTriggerController( // trigger for button 0 (turn light on)
null, false, null, null,
new SceneTriggerControllerTrigger(
null,
DeviceType.SHORTCUT_CONTROLLER,
buttonIndex,
device.id));
}

private Scene createDummyScene(final Device device, final int button) {
final Scene scene;
final String name;

name = String.format("%s button %d", device.attributes.state.customName, button);

scene = this.dapi.scene.create(name, "Icon")
.doOnSuccess(s -> log.info("Created Scene {}: name={}, icon={}", s.id, s.attributes.info.name, s.attributes.info.icon))
.block(); // create dummy scene

return this.dapi.scene.setTrigger(scene, List.of(
new SceneTriggerApp(null, null, null, null),
createTrigger(device, button))
).block();
}

private Stream<Scene> createDummyScenes(final Device device) {
return Stream.of(
this.createDummyScene(device, 0),
this.createDummyScene(device, 1),
this.createDummyScene(device, 2)); // button 3 raises an error on the dirigera
}

@Bean
public CommandLineRunner run() {
return (String... args) -> {
Expand Down Expand Up @@ -117,13 +84,68 @@ public CommandLineRunner run() {
log.error(e.getMessage());
}

// clean up
scenes.stream()
.peek(scene -> log.info("Delete scene {}", scene.attributes.info.name))
.map(this.dapi.scene::delete)
.forEach(Mono::block);
};
}

/**
* Create button for dedicaterd trigger for specific button
* @param device
* @param buttonIndex
* @return
*/
private static SceneTriggerController createTrigger(final Device device, final int buttonIndex) {
return new SceneTriggerController(
null, false, null, null,
new SceneTriggerControllerTrigger(
null,
DeviceType.SHORTCUT_CONTROLLER,
buttonIndex,
device.id));
}

/**
* Create a dummy scene to catch the given button press
* @param device
* @param button
* @return
*/
private Scene createDummyScene(final Device device, final int button) {
final Scene scene;
final String name;

name = String.format("%s button %d", device.attributes.state.customName, button);

scene = this.dapi.scene.create(name, "Icon")
.doOnSuccess(s -> log.info("Created Scene {}: name={}, icon={}", s.id, s.attributes.info.name, s.attributes.info.icon))
.block(); // create dummy scene

return this.dapi.scene.setTrigger(scene, List.of(
new SceneTriggerApp(null, null, null, null),
createTrigger(device, button))
).block();
}

/**
* Create dummy scenes for all possible buttons
* @param device
* @return
*/
private Stream<Scene> createDummyScenes(final Device device) {
return Stream.of(
this.createDummyScene(device, 0),
this.createDummyScene(device, 1),
this.createDummyScene(device, 2)); // button 3 raises an error on the dirigera
}

/**
* Log the button press
* @param s
*/
private void logButtonPress(final String s) {
final Map json, data, info;
final String type;
Expand Down

0 comments on commit d18e734

Please sign in to comment.