You need to sign in before continuing.
Commit 2638bcb8f7db3e7d11cb4855765ebe46da4c1b6e
Committed by
Moritz Wirger
1 parent
3719728f
Add null check in group light ids for luminaires.
Showing
1 changed file
with
7 additions
and
4 deletions
src/Group.cpp
| ... | ... | @@ -37,7 +37,11 @@ std::vector<int> Group::getLightIds() const |
| 37 | 37 | ids.reserve(lights.size()); |
| 38 | 38 | for (const nlohmann::json& id : lights) |
| 39 | 39 | { |
| 40 | - ids.push_back(std::stoi(id.get<std::string>())); | |
| 40 | + // Luminaires can have null ids if not all light have been added | |
| 41 | + if (!id.is_null()) | |
| 42 | + { | |
| 43 | + ids.push_back(std::stoi(id.get<std::string>())); | |
| 44 | + } | |
| 41 | 45 | } |
| 42 | 46 | return ids; |
| 43 | 47 | } |
| ... | ... | @@ -141,8 +145,7 @@ std::string Group::getActionColorMode() const |
| 141 | 145 | StateTransaction Group::transaction() |
| 142 | 146 | { |
| 143 | 147 | // Do not pass state, because it is not the state of ALL lights in the group |
| 144 | - return StateTransaction( | |
| 145 | - state.getCommandAPI(), "/groups/" + std::to_string(id) + "/action", nullptr); | |
| 148 | + return StateTransaction(state.getCommandAPI(), "/groups/" + std::to_string(id) + "/action", nullptr); | |
| 146 | 149 | } |
| 147 | 150 | |
| 148 | 151 | void Group::setOn(bool on, uint8_t transition) |
| ... | ... | @@ -256,6 +259,6 @@ nlohmann::json CreateGroup::getRequest() const |
| 256 | 259 | CreateGroup::CreateGroup( |
| 257 | 260 | const std::vector<int>& lights, const std::string& name, const std::string& type, const std::string& roomType) |
| 258 | 261 | : lights(lights), name(name), type(type), roomType(roomType) |
| 259 | -{} | |
| 262 | +{ } | |
| 260 | 263 | |
| 261 | 264 | } // namespace hueplusplus | ... | ... |