mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
fix msgpack
This commit is contained in:
@@ -116,17 +116,15 @@ let system_status = {
|
|||||||
let DEV_VERSION_IS_UPGRADEABLE: boolean;
|
let DEV_VERSION_IS_UPGRADEABLE: boolean;
|
||||||
let STABLE_VERSION_IS_UPGRADEABLE: boolean;
|
let STABLE_VERSION_IS_UPGRADEABLE: boolean;
|
||||||
let THIS_VERSION: string;
|
let THIS_VERSION: string;
|
||||||
let version_test: number;
|
|
||||||
|
|
||||||
let LATEST_STABLE_VERSION = '3.7.2';
|
let LATEST_STABLE_VERSION = '3.7.2';
|
||||||
let LATEST_DEV_VERSION = '3.7.3-dev.6';
|
let LATEST_DEV_VERSION = '3.7.3-dev.6';
|
||||||
|
|
||||||
// scenarios for testing versioning
|
// scenarios for testing versioning
|
||||||
version_test = 0; // on latest stable, or switch to dev
|
let version_test = 0; // on latest stable, or switch to dev
|
||||||
// version_test = 1; // on latest dev, or switch back to stable
|
// let version_test = 1; // on latest dev, or switch back to stable
|
||||||
// version_test = 2; // upgrade an older stable to latest stable or switch to latest dev
|
// let version_test = 2; // upgrade an older stable to latest stable or switch to latest dev
|
||||||
// version_test = 3; // upgrade dev to latest, or switch to stable
|
// let version_test = 3; // upgrade dev to latest, or switch to stable
|
||||||
// version_test = 4; // downgrade to an older dev, or switch back to stable
|
// let version_test = 4; // downgrade to an older dev, or switch back to stable
|
||||||
|
|
||||||
switch (version_test as number) {
|
switch (version_test as number) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -4380,78 +4378,78 @@ router
|
|||||||
|
|
||||||
function deviceData(id: number) {
|
function deviceData(id: number) {
|
||||||
if (id == 1) {
|
if (id == 1) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_1), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_1) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 2) {
|
if (id == 2) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_2), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_2) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 3) {
|
if (id == 3) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_3), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_3) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 4) {
|
if (id == 4) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_4), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_4) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 5) {
|
if (id == 5) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_5), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_5) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 6) {
|
if (id == 6) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_6), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_6) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 7) {
|
if (id == 7) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_7), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_7) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 8) {
|
if (id == 8) {
|
||||||
// test changing the selected flow temp on a Bosch Compress 7000i AW Heat Pump (Boiler/HP)
|
// test changing the selected flow temp on a Bosch Compress 7000i AW Heat Pump (Boiler/HP)
|
||||||
emsesp_devicedata_8.nodes[4].v = Math.floor(Math.random() * 100);
|
emsesp_devicedata_8.nodes[4].v = Math.floor(Math.random() * 100);
|
||||||
return new Response(encoder.encode(emsesp_devicedata_8), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_8) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 9) {
|
if (id == 9) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_9), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_9) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 10) {
|
if (id == 10) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_10), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_10) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 11) {
|
if (id == 11) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_11), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_11) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 99) {
|
if (id == 99) {
|
||||||
return new Response(encoder.encode(emsesp_devicedata_99), { headers });
|
return new Response(encoder.encode(emsesp_devicedata_99) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function deviceEntities(id: number) {
|
function deviceEntities(id: number) {
|
||||||
if (id == 1) {
|
if (id == 1) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_1), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_1) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 2) {
|
if (id == 2) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_2), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_2) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 3) {
|
if (id == 3) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_3), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_3) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 4) {
|
if (id == 4) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_4), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_4) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 5) {
|
if (id == 5) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_5), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_5) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 6) {
|
if (id == 6) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_6), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_6) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 7) {
|
if (id == 7) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_7), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_7) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 8) {
|
if (id == 8) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_8), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_8) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 9) {
|
if (id == 9) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_9), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_9) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
if (id == 10) {
|
if (id == 10) {
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_10), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_10) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
// not found, return empty
|
// not found, return empty
|
||||||
return new Response(encoder.encode(emsesp_deviceentities_none), { headers });
|
return new Response(encoder.encode(emsesp_deviceentities_none) as BodyInit, { headers });
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare dashboard data
|
// prepare dashboard data
|
||||||
@@ -4558,8 +4556,8 @@ router
|
|||||||
}
|
}
|
||||||
|
|
||||||
// add temperature sensor data. no command c
|
// add temperature sensor data. no command c
|
||||||
let sensor_data: any[] = [];
|
if (emsesp_sensordata.ts.length > 0) {
|
||||||
sensor_data = emsesp_sensordata.ts.map((item, index) => ({
|
const sensor_data = emsesp_sensordata.ts.map((item, index) => ({
|
||||||
id: DeviceTypeUniqueID.TEMPERATURESENSOR_UID * 100 + index,
|
id: DeviceTypeUniqueID.TEMPERATURESENSOR_UID * 100 + index,
|
||||||
dv: {
|
dv: {
|
||||||
id: '00' + item.n,
|
id: '00' + item.n,
|
||||||
@@ -4572,15 +4570,14 @@ router
|
|||||||
t: DeviceType.TEMPERATURESENSOR,
|
t: DeviceType.TEMPERATURESENSOR,
|
||||||
nodes: sensor_data
|
nodes: sensor_data
|
||||||
};
|
};
|
||||||
// only add to dashboard if we have values
|
|
||||||
if ((dashboard_object.nodes ?? []).length > 0) {
|
|
||||||
dashboard_nodes.push(dashboard_object);
|
dashboard_nodes.push(dashboard_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add analog sensor data. no command c
|
// add analog sensor data. no command c
|
||||||
// remove disabled sensors first (t = 0)
|
// remove disabled sensors first (t = 0) and create data in one pass
|
||||||
sensor_data = emsesp_sensordata.as.filter((item) => item.t !== 0);
|
const enabledAnalogSensors = emsesp_sensordata.as.filter((item) => item.t !== 0);
|
||||||
sensor_data = sensor_data.map((item, index) => ({
|
if (enabledAnalogSensors.length > 0) {
|
||||||
|
const sensor_data = enabledAnalogSensors.map((item, index) => ({
|
||||||
id: DeviceTypeUniqueID.ANALOGSENSOR_UID * 100 + index,
|
id: DeviceTypeUniqueID.ANALOGSENSOR_UID * 100 + index,
|
||||||
dv: {
|
dv: {
|
||||||
id: '00' + item.n,
|
id: '00' + item.n,
|
||||||
@@ -4593,15 +4590,14 @@ router
|
|||||||
t: DeviceType.ANALOGSENSOR,
|
t: DeviceType.ANALOGSENSOR,
|
||||||
nodes: sensor_data
|
nodes: sensor_data
|
||||||
};
|
};
|
||||||
// only add to dashboard if we have values
|
|
||||||
if ((dashboard_object.nodes ?? []).length > 0) {
|
|
||||||
dashboard_nodes.push(dashboard_object);
|
dashboard_nodes.push(dashboard_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the scheduler data
|
// add the scheduler data
|
||||||
// filter emsesp_schedule with only if it has a name
|
// filter emsesp_schedule with only if it has a name and create data in one pass
|
||||||
let scheduler_data = emsesp_schedule.schedule.filter((item) => item.name);
|
const namedSchedules = emsesp_schedule.schedule.filter((item) => item.name);
|
||||||
let scheduler_data2 = scheduler_data.map((item, index) => ({
|
if (namedSchedules.length > 0) {
|
||||||
|
const scheduler_data = namedSchedules.map((item, index) => ({
|
||||||
id: DeviceTypeUniqueID.SCHEDULER_UID * 100 + index,
|
id: DeviceTypeUniqueID.SCHEDULER_UID * 100 + index,
|
||||||
dv: {
|
dv: {
|
||||||
id: '00' + item.name,
|
id: '00' + item.name,
|
||||||
@@ -4613,10 +4609,8 @@ router
|
|||||||
dashboard_object = {
|
dashboard_object = {
|
||||||
id: DeviceTypeUniqueID.SCHEDULER_UID,
|
id: DeviceTypeUniqueID.SCHEDULER_UID,
|
||||||
t: DeviceType.SCHEDULER,
|
t: DeviceType.SCHEDULER,
|
||||||
nodes: scheduler_data2
|
nodes: scheduler_data
|
||||||
};
|
};
|
||||||
// only add to dashboard if we have values
|
|
||||||
if ((dashboard_object.nodes ?? []).length > 0) {
|
|
||||||
dashboard_nodes.push(dashboard_object);
|
dashboard_nodes.push(dashboard_object);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -4660,8 +4654,12 @@ router
|
|||||||
};
|
};
|
||||||
// console.log('dashboardData: ', dashboardData);
|
// console.log('dashboardData: ', dashboardData);
|
||||||
|
|
||||||
|
// Clear references to help with garbage collection
|
||||||
|
dashboard_nodes = [];
|
||||||
|
dashboard_object = {};
|
||||||
|
|
||||||
// return dashboard_data; // if not using msgpack
|
// return dashboard_data; // if not using msgpack
|
||||||
return new Response(encoder.encode(dashboardData), { headers }); // msgpack it
|
return new Response(encoder.encode(dashboardData) as BodyInit, { headers }); // msgpack it
|
||||||
})
|
})
|
||||||
|
|
||||||
// Customizations
|
// Customizations
|
||||||
@@ -4852,10 +4850,12 @@ router
|
|||||||
} else {
|
} else {
|
||||||
if (as.deleted) {
|
if (as.deleted) {
|
||||||
emsesp_sensordata.as[objIndex].d = true;
|
emsesp_sensordata.as[objIndex].d = true;
|
||||||
var filtered = emsesp_sensordata.as.filter(function (value, index, arr) {
|
// Remove deleted items in-place to avoid creating new arrays
|
||||||
return !value.d;
|
for (let i = emsesp_sensordata.as.length - 1; i >= 0; i--) {
|
||||||
});
|
if (emsesp_sensordata.as[i].d) {
|
||||||
emsesp_sensordata.as = filtered;
|
emsesp_sensordata.as.splice(i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
emsesp_sensordata.as[objIndex].n = as.name;
|
emsesp_sensordata.as[objIndex].n = as.name;
|
||||||
emsesp_sensordata.as[objIndex].f = as.factor;
|
emsesp_sensordata.as[objIndex].f = as.factor;
|
||||||
|
|||||||
Reference in New Issue
Block a user