Commit c6b560fb5a62144d24530a661b59c0fbbdf032a4

Authored by Jojo-1000
Committed by Moritz Wirger
1 parent fd5fa01a

Change LightsOff to turn off the lights individually.

examples/CMakeLists.txt
... ... @@ -10,4 +10,4 @@ target_link_libraries(lights_off hueplusplusstatic)
10 10  
11 11  
12 12 add_custom_target(hueplusplus_examples)
13   -add_dependencies(hueplusplus_examples bridge_setup)
14 13 \ No newline at end of file
  14 +add_dependencies(hueplusplus_examples bridge_setup lights_off)
15 15 \ No newline at end of file
... ...
examples/LightsOff.cpp
  1 +#include <thread>
1 2  
2 3 #include <hueplusplus/Bridge.h>
3 4  
... ... @@ -60,13 +61,17 @@ void lightsOff(hue::Bridge&amp; hue)
60 61  
61 62 // Save current on state of the lights
62 63 std::map<int, bool> onMap;
63   - for (const hue::Light& l : lights)
  64 + for (hue::Light& l : lights)
64 65 {
65 66 onMap.emplace(l.getId(), l.isOn());
  67 + l.Off();
66 68 }
67   -
  69 +
  70 + // This would be preferrable, but does not work because it also resets the brightness of all lights
68 71 // Group 0 contains all lights, turn all off with a transition of 1 second
69   - hue.groups().get(0).setOn(false, 10);
  72 + // hue.groups().get(0).setOn(false, 10);
  73 + // -------------------------------------
  74 +
70 75 std::cout << "Turned off all lights\n";
71 76  
72 77 std::this_thread::sleep_for(std::chrono::seconds(20));
... ... @@ -76,12 +81,6 @@ void lightsOff(hue::Bridge&amp; hue)
76 81 {
77 82 if (onMap[l.getId()])
78 83 {
79   - // Refresh, because the state change from the group is not updated in the light.
80   - // This is not strictly necessary in this case, because the state is updated
81   - // automatically every 10 seconds.
82   - // However, when the sleep above is shorter, no refresh can cause the on request
83   - // to be removed, because the light thinks it is still on.
84   - l.refresh(true);
85 84 l.on();
86 85 }
87 86 }
... ... @@ -101,8 +100,7 @@ int main(int argc, char** argv)
101 100 lightsOff(hue);
102 101 }
103 102 catch (...)
104   - {
105   - }
  103 + { }
106 104  
107 105 std::cout << "Press enter to exit\n";
108 106 std::cin.get();
... ...