This example reads the username and mac address from a config file.
51 std::ifstream stream(filename);
54 nlohmann::json result = nlohmann::json::object();
61 catch (
const nlohmann::json::exception&)
64 return nlohmann::json::object();
71void saveConfigFile(
const std::string& filename,
const nlohmann::json& config)
73 std::ofstream stream(filename);
74 stream << std::setw(4) << config;
86 std::vector<hue::BridgeFinder::BridgeIdentification> bridges = finder.findBridges();
88 for (
const auto& bridge : bridges)
90 std::cout <<
"Bridge: " << bridge.mac <<
" at " << bridge.ip <<
'\n';
94 std::cout <<
"Found no bridges\n";
95 throw std::runtime_error(
"no bridges found");
100 std::cout <<
"No bridge given, connecting to first one.\n";
101 return finder.getBridge(bridges.front());
107 auto it = std::find_if(
108 bridges.begin(), bridges.end(), [&](
const auto& identification) { return identification.mac == macAddress; });
109 if (it == bridges.end())
111 std::cout <<
"Given bridge not found\n";
112 throw std::runtime_error(
"bridge not found");
114 return finder.getBridge(*it);
123int main(
int argc,
char** argv)
126 const std::string filename =
"config.json";
131 const std::string
username = config.value(
"username",
"");
132 const std::string
macAddress = config.value(
"mac",
"");
136 config[
"username"] =
hue.getUsername();
137 config[
"mac"] =
hue.config().getMACAddress();
140 std::cout <<
"Connected to bridge. IP: " <<
hue.getBridgeIP() <<
", username: " <<
hue.getUsername() <<
'\n';
145 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
nlohmann::json readConfigFile(const std::string &filename)
Definition UsernameConfig.cpp:49
void saveConfigFile(const std::string &filename, const nlohmann::json &config)
Definition UsernameConfig.cpp:71
Bridge class for a bridge.
Definition Bridge.h:139
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