This example turns off all lights for 20 seconds, then turns them on again.
52 std::vector<hue::BridgeFinder::BridgeIdentification> bridges = finder.
findBridges();
54 for (
const auto& bridge : bridges)
56 std::cout <<
"Bridge: " << bridge.mac <<
" at " << bridge.ip <<
'\n';
60 std::cout <<
"Found no bridges\n";
61 throw std::runtime_error(
"no bridges found");
66 std::cout <<
"No bridge given, connecting to first one.\n";
73 auto it = std::find_if(
74 bridges.begin(), bridges.end(), [&](
const auto& identification) { return identification.mac == macAddress; });
75 if (it == bridges.end())
77 std::cout <<
"Given bridge not found\n";
78 throw std::runtime_error(
"bridge not found");
87 std::vector<hue::Light> lights =
hue.lights().getAll();
90 std::map<int, bool> onMap;
93 onMap.emplace(l.getId(), l.isOn());
102 std::cout <<
"Turned off all lights\n";
104 std::this_thread::sleep_for(std::chrono::seconds(20));
109 if (onMap[l.getId()])
115 std::cout <<
"Turned lights back on\n";
118int main(
int argc,
char** argv)
125 std::cout <<
"Connected to bridge. IP: " <<
hue.getBridgeIP() <<
", username: " <<
hue.getUsername() <<
'\n';
132 std::cout <<
"Press enter to exit\n";
int main(int argc, char **argv)
Definition BridgeSetup.cpp:85
hue::Bridge connectToBridge()
Definition BridgeSetup.cpp:50
const std::string macAddress
Definition BridgeSetup.cpp:46
const std::string username
Definition BridgeSetup.cpp:47
void lightsOff(hue::Bridge &hue)
Definition LightsOff.cpp:85
std::vector< BridgeIdentification > findBridges() const
Finds all bridges in the network and returns them.
Definition Bridge.cpp:43
Bridge getBridge(const BridgeIdentification &identification, bool sharedState=false)
Gets a Hue bridge based on its identification.
Definition Bridge.cpp:78
void addUsername(const std::string &mac, const std::string &username)
Function that adds a username to the usernames map.
Definition Bridge.cpp:109
Bridge class for a bridge.
Definition Bridge.h:139
Class for Hue Light fixtures.
Definition Light.h:61
Class to handle http requests and multicast requests on linux systems.
Definition LinHttpHandler.h:37
Class to handle http requests and multicast requests on windows systems.
Definition WinHttpHandler.h:37
Namespace for the hueplusplus library.
Definition Action.h:28