Added MAC address to be part of every returned message

This commit is contained in:
RZ_MINIX\rober 2025-06-24 10:51:05 -07:00
parent 554381cf2d
commit a75939b3fa
2 changed files with 94 additions and 14 deletions

View File

@ -0,0 +1,10 @@
name: New mcpServer
version: 0.0.1
schema: v1
mcpServers:
- name: New MCP server
command: npx
args:
- -y
- <your-mcp-server>
env: {}

View File

@ -24,32 +24,48 @@ char * getElementAt(int el, Parser & p, char * buffer)
bool CommandProcessor::cmdSetGroupId(Parser & p, char * buffer)
{
int value = 0;
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
if(strToInt(getElementAt(1, p, buffer), value))
{
ESP_LOGW(TAG, "new group value: %u", value);
SETTINGS.device.group_id = value;
SETTINGS_SAVE;
strcpy(m_buffer, "Z|ok");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|Z|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
strcpy(m_buffer, "Z|fail");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|Z|fail");
strcpy(m_buffer, m_rw.getBuffer());
return false;
}
bool CommandProcessor::cmdSetWorkingId(Parser & p, char * buffer)
{
int value = 0;
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
if(strToInt(getElementAt(1, p, buffer), value))
{
ESP_LOGW(TAG, "new device working id: %u", value);
SETTINGS.device.tata_id = value;
SETTINGS_SAVE;
strcpy(m_buffer, "-|ok");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|-|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
strcpy(m_buffer, "-|fail");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|-|fail");
strcpy(m_buffer, m_rw.getBuffer());
return false;
}
@ -61,18 +77,31 @@ bool CommandProcessor::cmdRestart(Parser & p, char * buffer)
bool CommandProcessor::cmdDeleteStoredSsids(Parser & p, char * buffer)
{
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
ESP_LOGW(TAG, "delete stored ssid's");
SETTINGS.wifi.num = 0;
SETTINGS_SAVE;
strcpy(m_buffer, "d|ok");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|d|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
bool CommandProcessor::cmdReturnCurrentSsid(Parser & p, char * buffer)
{
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
ESP_LOGW(TAG, "return current ssid %s and rssi %d", WiFi.SSID().c_str(), WiFi.RSSI());
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|");
m_rw.appendf("a|%s,%d", WiFi.SSID().c_str(), WiFi.RSSI());
ESP_LOGI(TAG, "'%s'", m_rw.getBuffer());
@ -83,11 +112,18 @@ bool CommandProcessor::cmdReturnCurrentSsid(Parser & p, char * buffer)
bool CommandProcessor::cmdReturnVisibleNetworks(Parser & p, char * buffer)
{
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
ESP_LOGI(TAG, "Scanning wifi networks...");
int num_networks = WiFi.scanNetworks(false, false, false, 0);
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|");
m_rw.appendf("w|%d|", num_networks);
for(int n = 0; n < num_networks; n++)
{
@ -106,6 +142,10 @@ bool CommandProcessor::cmdReturnVisibleNetworks(Parser & p, char * buffer)
bool CommandProcessor::cmdAddNetwork(Parser & p, char * buffer)
{
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
if(p.getElementAt(1, buffer, BUF_LEN))
{
ESP_LOGI(TAG, "ssid/pwd: '%s'", buffer);
@ -127,21 +167,34 @@ bool CommandProcessor::cmdAddNetwork(Parser & p, char * buffer)
SETTINGS.wifi.num = ix + 1;
SETTINGS_SAVE;
strcpy(m_buffer, "W|ok");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|W|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
}
}
}
strcpy(m_buffer, "W|fail");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|W|fail");
strcpy(m_buffer, m_rw.getBuffer());
return false;
}
bool CommandProcessor::cmdReportAllSettings(Parser & p, char * buffer)
{
int64_t up_time = esp_timer_get_time();
uint8_t wifi_mac[8];
//added mac address
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|");
m_rw.appendf("-,%u", SETTINGS.device.tata_id); //wid
m_rw.append("|");
m_rw.appendf("Z,%u", SETTINGS.device.group_id); //group id
@ -170,31 +223,48 @@ bool CommandProcessor::cmdReportAllSettings(Parser & p, char * buffer)
bool CommandProcessor::cmdSetMqttDevId(Parser & p, char * buffer)
{
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
if(p.getElementAt(1, buffer, BUF_LEN))
{
ESP_LOGI(TAG, "new mqtt dev id: '%s'", buffer);
strcpy(SETTINGS.mqtt.device_id, buffer);
SETTINGS_SAVE;
strcpy(m_buffer, "0|ok");
SETTINGS_SAVE;
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|0|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
strcpy(m_buffer, "0|fail");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|0|fail");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
bool CommandProcessor::cmdSetTemperatureOffset(Parser & p, char * buffer)
{
float value = 0;
uint8_t wifi_mac[8];
esp_read_mac(wifi_mac, ESP_MAC_WIFI_STA);
if(strToFloat(getElementAt(1, p, buffer), value))
{
ESP_LOGW(TAG, "new temp offset: %f", value);
SETTINGS.sensors.temperature.temp_offset = value;
SETTINGS_SAVE;
strcpy(m_buffer, "9|ok");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|9|ok");
strcpy(m_buffer, m_rw.getBuffer());
return true;
}
strcpy(m_buffer, "9|fail");
m_rw.reset();
m_rw.appendf("mac,%02x%02x%02x%02x%02x%02x", wifi_mac[0], wifi_mac[1], wifi_mac[2], wifi_mac[3], wifi_mac[4], wifi_mac[5]);
m_rw.append("|9|fail");
strcpy(m_buffer, m_rw.getBuffer());
return false;
}