minor formatting

This commit is contained in:
Proddy
2022-04-04 21:44:23 +02:00
parent d9716ceb42
commit 077c20fd34
3 changed files with 14 additions and 13 deletions

View File

@@ -234,7 +234,6 @@ class Solar : public EMSdevice {
bool set_wwKeepWarm(const char * value, const int8_t id);
bool set_wwDisinfectionTemp(const char * value, const int8_t id);
bool set_wwDailyTemp(const char * value, const int8_t id);
};
} // namespace emsesp

View File

@@ -848,23 +848,26 @@ void EMSdevice::generate_values_web_all(JsonArray & output) {
}
// set mask per device entity based on the id which is prefixed with the 2 char hex mask value
// returns true if the entity has a mask set
// returns true if the entity has a mask set (not 0 the default)
bool EMSdevice::mask_entity(const std::string & entity_id) {
for (auto & dv : devicevalues_) {
std::string entity = dv.tag < DeviceValueTAG::TAG_HC1 ? read_flash_string(dv.short_name) : tag_to_string(dv.tag) + "/" + read_flash_string(dv.short_name);
if (entity == entity_id.substr(2)) {
uint8_t mask = Helpers::hextoint(entity_id.substr(0, 2).c_str()); // first character contains mask flags
if (Mqtt::ha_enabled() && (((dv.state >> 4) ^ mask) & (DeviceValueState::DV_READONLY >> 4))) {
std::string entity_name =
dv.tag < DeviceValueTAG::TAG_HC1 ? read_flash_string(dv.short_name) : tag_to_string(dv.tag) + "/" + read_flash_string(dv.short_name);
uint8_t current_mask = dv.state >> 4;
if (entity_name == entity_id.substr(2)) {
// this entity has a new mask set
uint8_t new_mask = Helpers::hextoint(entity_id.substr(0, 2).c_str()); // first character contains mask flags
if (Mqtt::ha_enabled() && ((current_mask ^ new_mask) & (DeviceValueState::DV_READONLY >> 4))) {
// remove ha config on change of dv_readonly flag
dv.remove_state(DeviceValueState::DV_HA_CONFIG_CREATED);
Mqtt::publish_ha_sensor_config(dv, "", "", true); // delete topic (remove = true)
}
dv.state = ((dv.state & 0x0F) | (mask << 4)); // set state high bits to flag
return mask; // true if entity mask is not the deafult 0
dv.state = ((dv.state & 0x0F) | (new_mask << 4)); // set state high bits to flag
return new_mask; // true if entity mask is not the deafult 0
}
}
return false;
return false; // we didn't find the entity
}
// builds json for a specific device value / entity

View File

@@ -215,7 +215,7 @@ void WebCustomizationService::device_entities(AsyncWebServerRequest * request, J
// and updates the entity list real-time
void WebCustomizationService::masked_entities(AsyncWebServerRequest * request, JsonVariant & json) {
if (json.is<JsonObject>()) {
EMSESP::logger().debug(F("Masked entities json size: %d"), measureJson(json));
// EMSESP::logger().debug(F("Masked entities json size: %d"), measureJson(json));
// find the device using the unique_id
for (const auto & emsdevice : EMSESP::emsdevices) {
if (emsdevice) {
@@ -226,17 +226,16 @@ void WebCustomizationService::masked_entities(AsyncWebServerRequest * request, J
std::vector<std::string> entity_ids;
for (const JsonVariant id : entity_ids_json) {
std::string entity_id = id.as<std::string>();
// handle the mask change and add to the list of customized entities
// if the value is different from the default (mask == 0)
// set the new mask and add to the list of customized entities if the value is different from the default (mask == 0)
if (emsdevice->mask_entity(entity_id)) {
entity_ids.push_back(entity_id);
}
}
// Save the list to the customization file
uint8_t product_id = emsdevice->product_id();
uint8_t device_id = emsdevice->device_id();
// Save the list to the customization file
EMSESP::webCustomizationService.update(
[&](WebCustomization & settings) {
// if it exists (productid and deviceid match) overwrite it