Skip to content

Commit

Permalink
Merge pull request emsesp#2035 from MichaelDvP/dev
Browse files Browse the repository at this point in the history
some fixes
  • Loading branch information
proddy authored Sep 21, 2024
2 parents cf9bd4d + d255870 commit 4905047
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 28 deletions.
25 changes: 17 additions & 8 deletions interface/src/app/main/Customizations.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,16 @@ const Customizations = () => {

const formatName = (de: DeviceEntity, withShortname: boolean) =>
(de.n && de.n[0] === '!'
? LL.COMMAND(1) + ': ' + de.n.slice(1)
? de.t
? LL.COMMAND(1) + ': ' + de.t + ' ' + de.n.slice(1)
: LL.COMMAND(1) + ': ' + de.n.slice(1)
: de.cn && de.cn !== ''
? de.cn
: de.n) + (withShortname ? ' ' + de.id : '');
? de.t
? de.t + ' ' + de.cn
: de.cn
: de.t
? de.t + ' ' + de.n
: de.n) + (withShortname ? ' ' + de.id : '');

const getMaskNumber = (newMask: string[]) => {
let new_mask = 0;
Expand Down Expand Up @@ -449,11 +455,14 @@ const Customizations = () => {
<MenuItem disabled key={-1} value={-1}>
{LL.SELECT_DEVICE()}...
</MenuItem>
{devices.devices.map((device: Device) => (
<MenuItem key={device.id} value={device.id}>
{device.n}&nbsp;({device.tn})
</MenuItem>
))}
{devices.devices.map(
(device: Device) =>
device.id < 90 && (
<MenuItem key={device.id} value={device.id}>
{device.n}&nbsp;({device.tn})
</MenuItem>
)
)}
</TextField>
)}
{selectedDevice !== -1 &&
Expand Down
1 change: 1 addition & 0 deletions interface/src/app/main/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ export interface DeviceEntity {
v?: unknown; // value, in any format, optional
n?: string; // fullname, optional
cn?: string; // custom fullname, optional
t?: string; // tag for name
m: DeviceEntityMask; // mask
w: boolean; // writeable
mi?: number; // min value
Expand Down
20 changes: 7 additions & 13 deletions src/command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -561,11 +561,7 @@ void Command::show(uuid::console::Shell & shell, uint8_t device_type, bool verbo
}
}

// non EMS devices always have an info, commands and values
bool show_info = (device_type == EMSdevice::DeviceType::TEMPERATURESENSOR || device_type == EMSdevice::DeviceType::ANALOGSENSOR
|| device_type == EMSdevice::DeviceType::SCHEDULER || device_type == EMSdevice::DeviceType::CUSTOM);

if (!verbose && show_info) {
if (!verbose) {
sorted_cmds.push_back(F_(info));
sorted_cmds.push_back(F_(commands));
sorted_cmds.push_back(F_(values));
Expand All @@ -587,14 +583,12 @@ void Command::show(uuid::console::Shell & shell, uint8_t device_type, bool verbo
shell.printfln("\n%s%s %s:%s", COLOR_BOLD_ON, COLOR_YELLOW, EMSdevice::device_type_2_device_name(device_type), COLOR_RESET);

// we hard code 'info' and 'commands' commands so print them first
if (show_info) {
shell.printf(" info:\t\t\t\t%slist all values %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);
shell.printf(" commands:\t\t\t%slist all commands %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);
shell.printf(" values:\t\t\t%slist all values %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);
}
shell.printf(" info \t\t\t\t%slist all values %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);
shell.printf(" commands \t\t\t%slist all commands %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);
shell.printf(" values \t\t\t%slist all values %s*", COLOR_BRIGHT_CYAN, COLOR_BRIGHT_GREEN);
shell.println(COLOR_RESET);

for (const auto & cl : sorted_cmds) {
// find and print the description
Expand Down
2 changes: 1 addition & 1 deletion src/console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ static void setup_commands(std::shared_ptr<Commands> & commands) {
if (return_code == CommandRet::OK) {
if (json.size()) {
if (json["api_data"].is<std::string>()) {
String data = json["api_data"];
std::string data = json["api_data"];
shell.println(data.c_str());
return;
}
Expand Down
9 changes: 6 additions & 3 deletions src/emsdevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1080,7 +1080,8 @@ void EMSdevice::generate_values_web_customization(JsonArray output) {
auto fullname = Helpers::translated_word(dv.fullname);
if (dv.type != DeviceValueType::CMD) {
if (fullname) {
obj["n"] = dv.has_tag() ? std::string(tag_to_string(dv.tag)) + " " + fullname : fullname; // prefix tag
// obj["n"] = dv.has_tag() ? std::string(tag_to_string(dv.tag)) + " " + fullname : fullname; // prefix tag
obj["n"] = fullname;

// TAG https://github.com/emsesp/EMS-ESP32/issues/1338
// obj["n"] = (dv.has_tag()) ? fullname + " " + tag_to_string(dv.tag) : fullname; // suffix tag
Expand All @@ -1094,7 +1095,9 @@ void EMSdevice::generate_values_web_customization(JsonArray output) {
} else {
obj["n"] = "!" + std::string(fullname); // prefix commands with a !
}

if (dv.has_tag()) {
obj["t"] = tag_to_string(dv.tag);
}
obj["m"] = dv.state >> 4; // send back the mask state. We're only interested in the high nibble
obj["w"] = dv.has_cmd; // if writable

Expand Down Expand Up @@ -1681,7 +1684,7 @@ bool EMSdevice::generate_values(JsonObject output, const int8_t tag_filter, cons
}

// do not overwrite
if (json[name].is<const char *>()) {
if (json[name].is<JsonVariantConst>()) {
#if defined(EMSESP_DEBUG)
EMSESP::logger().debug("warning: double json key: %s", name);
#endif
Expand Down
6 changes: 3 additions & 3 deletions src/web/WebCustomEntityService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,9 @@ StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & web
if (entityItem.writeable && !entityItem.name.empty()) {
Command::add(
EMSdevice::DeviceType::CUSTOM,
entityItem.name.c_str(),
[entityItem](const char * value, const int8_t id) {
return EMSESP::webCustomEntityService.command_setvalue(value, id, entityItem.name.c_str());
webCustomEntity.customEntityItems.back().name.c_str(),
[webCustomEntity](const char * value, const int8_t id) {
return EMSESP::webCustomEntityService.command_setvalue(value, id, webCustomEntity.customEntityItems.back().name.c_str());
},
FL_(entity_cmd),
CommandFlag::ADMIN_ONLY);
Expand Down

0 comments on commit 4905047

Please sign in to comment.