diff --git a/mock-api/rest_server.ts b/mock-api/rest_server.ts index f40e4482f..b205e1cce 100644 --- a/mock-api/rest_server.ts +++ b/mock-api/rest_server.ts @@ -21,26 +21,19 @@ const headers = { 'Content-type': 'application/json' }; -const ESheaders = { - 'Access-Control-Allow-Origin': '*', - 'Content-type': 'text/event-stream', - 'Cache-Control': 'no-cache', - Connection: 'keep-alive' -}; - // GLOBAL VARIABLES let countWifiScanPoll = 0; // wifi network scan // FUNCTIONS -const delay = (ms) => new Promise((res) => setTimeout(res, ms)); -function delay_blocking(milliseconds) { - var start = new Date().getTime(); - for (var i = 0; i < 1e7; i++) { - if (new Date().getTime() - start > milliseconds) { - break; - } - } -} +// const delay = (ms) => new Promise((res) => setTimeout(res, ms)); +// function delay_blocking(milliseconds) { +// var start = new Date().getTime(); +// for (var i = 0; i < 1e7; i++) { +// if (new Date().getTime() - start > milliseconds) { +// break; +// } +// } +// } function updateMask(entity: any, de: any, dd: any) { const current_mask = parseInt(entity.slice(0, 2), 16); @@ -449,11 +442,12 @@ const EMSESP_CORE_DATA_ENDPOINT = REST_ENDPOINT_ROOT + 'coreData'; const EMSESP_SENSOR_DATA_ENDPOINT = REST_ENDPOINT_ROOT + 'sensorData'; const EMSESP_DEVICES_ENDPOINT = REST_ENDPOINT_ROOT + 'devices'; const EMSESP_SCANDEVICES_ENDPOINT = REST_ENDPOINT_ROOT + 'scanDevices'; -// for later -// const EMSESP_DEVICEDATA_ENDPOINT = REST_ENDPOINT_ROOT + 'deviceData/:id'; -// const EMSESP_DEVICEENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'deviceEntities/:id'; -const EMSESP_DEVICEDATA_ENDPOINT = REST_ENDPOINT_ROOT + 'deviceData'; -const EMSESP_DEVICEENTITIES_ENDPOINT = REST_ENDPOINT_ROOT + 'deviceEntities'; + +const EMSESP_DEVICEDATA_ENDPOINT1 = REST_ENDPOINT_ROOT + 'deviceData'; +const EMSESP_DEVICEDATA_ENDPOINT2 = REST_ENDPOINT_ROOT + 'deviceData/:id?'; +const EMSESP_DEVICEENTITIES_ENDPOINT1 = REST_ENDPOINT_ROOT + 'deviceEntities'; +const EMSESP_DEVICEENTITIES_ENDPOINT2 = REST_ENDPOINT_ROOT + 'deviceEntities/:id?'; + const EMSESP_BOARDPROFILE_ENDPOINT = REST_ENDPOINT_ROOT + 'boardProfile'; const EMSESP_WRITE_DEVICEVALUE_ENDPOINT = REST_ENDPOINT_ROOT + 'writeDeviceValue'; const EMSESP_WRITE_TEMPSENSOR_ENDPOINT = REST_ENDPOINT_ROOT + 'writeTemperatureSensor'; @@ -663,18 +657,18 @@ let settings = { const emsesp_devices = { devices: [ - { - i: 2, - s: 'Thermostat (RC20/Moduline 300)', - t: 5, - tn: 'thermostat' - }, { i: 7, s: 'Boiler (GBx72/Trendline/Cerapur/Greenstar Si/27i)', t: 4, tn: 'boiler' }, + { + i: 2, + s: 'Thermostat (RC20/Moduline 300)', + t: 5, + tn: 'thermostat' + }, { i: 4, s: 'Thermostat (RC100/Moduline 1000/1010)', @@ -691,7 +685,7 @@ const emsesp_coredata = { devices: [ { id: 7, - t: 4, + t: 5, tn: 'Boiler', b: 'Nefit', n: 'GBx72/Trendline/Cerapur/Greenstar Si/27i', @@ -703,7 +697,7 @@ const emsesp_coredata = { }, { id: 3, - t: 4, + t: 5, tn: 'Boiler', b: 'Buderus', n: 'GB125/GB135/MC10', @@ -714,7 +708,7 @@ const emsesp_coredata = { }, { id: 1, - t: 5, + t: 6, tn: 'Thermostat', b: 'Buderus', n: 'RC35', @@ -725,7 +719,7 @@ const emsesp_coredata = { }, { id: 2, - t: 5, + t: 6, tn: 'Thermostat', b: '', n: 'RC20/Moduline 300', @@ -736,7 +730,7 @@ const emsesp_coredata = { }, { id: 4, - t: 5, + t: 6, tn: 'Thermostat', b: 'Buderus', n: 'RC100/Moduline 1000/1010', @@ -747,7 +741,7 @@ const emsesp_coredata = { }, { id: 5, - t: 6, + t: 7, tn: 'Mixer Module', b: 'Buderus', n: 'MM10', @@ -758,7 +752,7 @@ const emsesp_coredata = { }, { id: 6, - t: 7, + t: 8, tn: 'Solar Module', b: 'Buderus', n: 'SM10', @@ -769,7 +763,7 @@ const emsesp_coredata = { }, { id: 99, - t: 17, + t: 4, tn: 'Custom', b: '', n: 'Custom Entities', @@ -2504,6 +2498,58 @@ router // // EMS-ESP Project stuff // + +function deviceData(id: number) { + if (id == 1) { + return new Response(encoder.encode(emsesp_devicedata_1), { headers }); + } + if (id == 2) { + return new Response(encoder.encode(emsesp_devicedata_2), { headers }); + } + if (id == 3) { + return new Response(encoder.encode(emsesp_devicedata_3), { headers }); + } + if (id == 4) { + return new Response(encoder.encode(emsesp_devicedata_4), { headers }); + } + if (id == 5) { + return new Response(encoder.encode(emsesp_devicedata_5), { headers }); + } + if (id == 6) { + return new Response(encoder.encode(emsesp_devicedata_6), { headers }); + } + if (id == 7) { + return new Response(encoder.encode(emsesp_devicedata_7), { headers }); + } + if (id == 99) { + return new Response(encoder.encode(emsesp_devicedata_99), { headers }); + } +} + +function deviceEntities(id: number) { + if (id == 1) { + return new Response(encoder.encode(emsesp_deviceentities_1), { headers }); + } + if (id == 2) { + return new Response(encoder.encode(emsesp_deviceentities_2), { headers }); + } + if (id == 3) { + return new Response(encoder.encode(emsesp_deviceentities_3), { headers }); + } + if (id == 4) { + return new Response(encoder.encode(emsesp_deviceentities_4), { headers }); + } + if (id == 5) { + return new Response(encoder.encode(emsesp_deviceentities_5), { headers }); + } + if (id == 6) { + return new Response(encoder.encode(emsesp_deviceentities_6), { headers }); + } + if (id == 7) { + return new Response(encoder.encode(emsesp_deviceentities_7), { headers }); + } +} + router // EMS-ESP Settings @@ -2519,61 +2565,15 @@ router .get(EMSESP_SENSOR_DATA_ENDPOINT, () => emsesp_sensordata) .get(EMSESP_DEVICES_ENDPOINT, () => emsesp_devices) .post(EMSESP_SCANDEVICES_ENDPOINT, () => status(200)) - .get(EMSESP_DEVICEDATA_ENDPOINT, (request) => { - // const id = Number(request.params.id); // TODO when using :id - const id = Number(request.query.id); - if (id == 1) { - return new Response(encoder.encode(emsesp_devicedata_1), { headers }); - } - if (id == 2) { - return new Response(encoder.encode(emsesp_devicedata_2), { headers }); - } - if (id == 3) { - return new Response(encoder.encode(emsesp_devicedata_3), { headers }); - } - if (id == 4) { - return new Response(encoder.encode(emsesp_devicedata_4), { headers }); - } - if (id == 5) { - return new Response(encoder.encode(emsesp_devicedata_5), { headers }); - } - if (id == 6) { - return new Response(encoder.encode(emsesp_devicedata_6), { headers }); - } - if (id == 7) { - return new Response(encoder.encode(emsesp_devicedata_7), { headers }); - } - if (id == 99) { - return new Response(encoder.encode(emsesp_devicedata_99), { headers }); - } - }) - .get(EMSESP_DEVICEENTITIES_ENDPOINT, (request) => { - // const id = Number(request.params.id); // TODO when using :id - const id = Number(request.query.id); - - if (id == 1) { - return new Response(encoder.encode(emsesp_deviceentities_1), { headers }); - } - if (id == 2) { - return new Response(encoder.encode(emsesp_deviceentities_2), { headers }); - } - if (id == 3) { - return new Response(encoder.encode(emsesp_deviceentities_3), { headers }); - } - if (id == 4) { - return new Response(encoder.encode(emsesp_deviceentities_4), { headers }); - } - if (id == 5) { - return new Response(encoder.encode(emsesp_deviceentities_5), { headers }); - } - if (id == 6) { - return new Response(encoder.encode(emsesp_deviceentities_6), { headers }); - } - if (id == 7) { - return new Response(encoder.encode(emsesp_deviceentities_7), { headers }); - } - }) + .get(EMSESP_DEVICEDATA_ENDPOINT1, (request) => + request.query.id ? deviceData(Number(request.query.id)) : status(404) + ) + .get(EMSESP_DEVICEDATA_ENDPOINT2, ({ params }) => (params.id ? deviceData(Number(params.id)) : status(404))) + .get(EMSESP_DEVICEENTITIES_ENDPOINT1, (request) => + request.query.id ? deviceEntities(Number(request.query.id)) : status(404) + ) + .get(EMSESP_DEVICEENTITIES_ENDPOINT2, ({ params }) => (params.id ? deviceEntities(Number(params.id)) : status(404))) // Customization .post(EMSESP_CUSTOMIZATION_ENTITIES_ENDPOINT, async (request: any) => { @@ -2660,7 +2660,7 @@ router emsesp_devicedata_99.data[objIndex].v = value; } - await delay(1000); // wait to show spinner + // await delay(1000); // wait to show spinner return status(200); }) @@ -2864,3 +2864,6 @@ router }); export default router; + +// use this with cloudflare workers instead +// export default { ...router };