diff --git a/.github/workflows/docker-dev-build.yml b/.github/workflows/docker-dev-build.yml
index 60f0342999..1ba112d65c 100644
--- a/.github/workflows/docker-dev-build.yml
+++ b/.github/workflows/docker-dev-build.yml
@@ -10,7 +10,7 @@ on:
platforms:
description: 'Docker platform to build'
required: true
- default: 'linux/amd64,linux/arm/v7,linux/arm64/v8'
+ default: 'linux/amd64,linux/arm64/v8'
jobs:
build-front:
diff --git a/.github/workflows/docker-release-build.yml b/.github/workflows/docker-release-build.yml
index 852495f396..a9f8083713 100644
--- a/.github/workflows/docker-release-build.yml
+++ b/.github/workflows/docker-release-build.yml
@@ -168,7 +168,7 @@ jobs:
with:
context: .
file: ./docker/Dockerfile.buildx
- platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
+ platforms: linux/amd64,linux/arm64/v8
push: true
pull: true
tags: ${{ steps.docker_meta.outputs.tags }}
diff --git a/front/package-lock.json b/front/package-lock.json
index 88d9130748..915085377d 100644
--- a/front/package-lock.json
+++ b/front/package-lock.json
@@ -6,7 +6,7 @@
"": {
"name": "gladys-front",
"dependencies": {
- "@gladysassistant/gladys-gateway-js": "4.16.2",
+ "@gladysassistant/gladys-gateway-js": "4.15.0",
"@gladysassistant/theme-optimized": "^1.0.3",
"@jaames/iro": "^5.5.2",
"@yaireo/tagify": "4.5.0",
@@ -4085,9 +4085,9 @@
"dev": true
},
"node_modules/@gladysassistant/gladys-gateway-js": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.16.2.tgz",
- "integrity": "sha512-ePkq3W1nYg5rRtNnI9s4A7SXFatSf1loKV6sHJkYzOk2b1uluHI0VrW7gmLrizvomfzpzmvKcC06PJJmKk894g==",
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.15.0.tgz",
+ "integrity": "sha512-vQlycZWF0sA3/KuIlPf0/DVFJ2lbf/R+SbCrkyeuT3P+NnD/EZ9QEFKI/Xu7x1uf4pS+H7CVUT0SudzOGMBoPw==",
"dependencies": {
"@ctrlpanel/pbkdf2": "^1.0.0",
"array-buffer-to-hex": "^1.0.0",
@@ -4096,7 +4096,7 @@
"encode-utf8": "^1.0.2",
"hex-to-array-buffer": "^1.1.0",
"secure-remote-password": "^0.3.1",
- "socket.io-client": "^4.8.0"
+ "socket.io-client": "^4.5.3"
}
},
"node_modules/@gladysassistant/theme-optimized": {
@@ -11328,15 +11328,15 @@
}
},
"node_modules/engine.io-client": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz",
- "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==",
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
+ "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.2.1",
"ws": "~8.17.1",
- "xmlhttprequest-ssl": "~2.1.1"
+ "xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-client/node_modules/debug": {
@@ -23472,13 +23472,13 @@
}
},
"node_modules/socket.io-client": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz",
- "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
+ "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.6.1",
+ "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4"
},
"engines": {
@@ -28137,9 +28137,9 @@
"dev": true
},
"node_modules/xmlhttprequest-ssl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz",
- "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"engines": {
"node": ">=0.4.0"
}
@@ -31250,9 +31250,9 @@
"dev": true
},
"@gladysassistant/gladys-gateway-js": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.16.2.tgz",
- "integrity": "sha512-ePkq3W1nYg5rRtNnI9s4A7SXFatSf1loKV6sHJkYzOk2b1uluHI0VrW7gmLrizvomfzpzmvKcC06PJJmKk894g==",
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.15.0.tgz",
+ "integrity": "sha512-vQlycZWF0sA3/KuIlPf0/DVFJ2lbf/R+SbCrkyeuT3P+NnD/EZ9QEFKI/Xu7x1uf4pS+H7CVUT0SudzOGMBoPw==",
"requires": {
"@ctrlpanel/pbkdf2": "^1.0.0",
"array-buffer-to-hex": "^1.0.0",
@@ -31261,7 +31261,7 @@
"encode-utf8": "^1.0.2",
"hex-to-array-buffer": "^1.1.0",
"secure-remote-password": "^0.3.1",
- "socket.io-client": "^4.8.0"
+ "socket.io-client": "^4.5.3"
}
},
"@gladysassistant/theme-optimized": {
@@ -37015,15 +37015,15 @@
}
},
"engine.io-client": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz",
- "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==",
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
+ "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.2.1",
"ws": "~8.17.1",
- "xmlhttprequest-ssl": "~2.1.1"
+ "xmlhttprequest-ssl": "~2.0.0"
},
"dependencies": {
"debug": {
@@ -46379,13 +46379,13 @@
}
},
"socket.io-client": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz",
- "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
+ "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.6.1",
+ "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4"
},
"dependencies": {
@@ -50107,9 +50107,9 @@
"dev": true
},
"xmlhttprequest-ssl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz",
- "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
},
"xtend": {
"version": "4.0.2",
diff --git a/front/package.json b/front/package.json
index f6b49cbc7b..b317c233a2 100644
--- a/front/package.json
+++ b/front/package.json
@@ -43,7 +43,7 @@
"prettier": "^1.17.1"
},
"dependencies": {
- "@gladysassistant/gladys-gateway-js": "4.16.2",
+ "@gladysassistant/gladys-gateway-js": "4.15.0",
"@gladysassistant/theme-optimized": "^1.0.3",
"@jaames/iro": "^5.5.2",
"@yaireo/tagify": "4.5.0",
diff --git a/front/src/components/boxs/chart/EditChart.jsx b/front/src/components/boxs/chart/EditChart.jsx
index d40c59f3cd..50415bb5c0 100644
--- a/front/src/components/boxs/chart/EditChart.jsx
+++ b/front/src/components/boxs/chart/EditChart.jsx
@@ -8,7 +8,7 @@ import get from 'get-value';
import BaseEditBox from '../baseEditBox';
import Chart from './Chart';
import { getDeviceFeatureName } from '../../../utils/device';
-import { DeviceListWithDragAndDrop } from './DeviceListWithDragAndDrop';
+import { DeviceListWithDragAndDrop } from '../../drag-and-drop/DeviceListWithDragAndDrop';
import { DEVICE_FEATURE_TYPES } from '../../../../../server/utils/constants';
import withIntlAsProp from '../../../utils/withIntlAsProp';
import { DEFAULT_COLORS, DEFAULT_COLORS_NAME } from './ApexChartComponent';
@@ -129,9 +129,8 @@ class EditChart extends Component {
refreshDeviceFeaturesNames = () => {
const newDeviceFeatureNames = this.state.selectedDeviceFeaturesOptions.map(o => {
- return o.new_label !== undefined ? o.new_label : o.label;
+ return o.new_label !== undefined && o.new_label !== '' ? o.new_label : o.label;
});
-
const newDeviceFeature = this.state.selectedDeviceFeaturesOptions.map(o => {
return o.value;
});
@@ -213,7 +212,10 @@ class EditChart extends Component {
}
});
await this.setState(newState);
- this.refreshDeviceFeaturesNames();
+
+ if (name !== '') {
+ this.refreshDeviceFeaturesNames();
+ }
};
getSelectedDeviceFeaturesAndOptions = (devices, chartType = this.state.chart_type) => {
@@ -342,7 +344,7 @@ class EditChart extends Component {
}
});
await this.setState(newStateWithoutElement);
- this.refreshDeviceFeaturesNames();
+ await this.refreshDeviceFeaturesNames();
this.refreshDeviceUnitAndChartType(this.state.selectedDeviceFeaturesOptions);
};
diff --git a/front/src/components/boxs/chart/style.css b/front/src/components/boxs/chart/style.css
index c6142c85a7..5a161f0ffb 100644
--- a/front/src/components/boxs/chart/style.css
+++ b/front/src/components/boxs/chart/style.css
@@ -133,20 +133,4 @@
padding-left: 1.5rem;
padding-right: 1.5rem;
text-align: justify;
-}
-.deviceListDragAndDrop {
- cursor: 'pointer';
- user-select: 'none';
-}
-
-.deviceListDragAndDropDragging {
- opacity: 0.5;
-}
-
-.deviceListDragAndDropActive {
- background-color: #ecf0f1;
-}
-
-.deviceListRemoveButton {
- z-index: 0;
}
\ No newline at end of file
diff --git a/front/src/components/boxs/device-in-room/DeviceListWithDragAndDrop.jsx b/front/src/components/boxs/device-in-room/DeviceListWithDragAndDrop.jsx
deleted file mode 100644
index b722f0e97e..0000000000
--- a/front/src/components/boxs/device-in-room/DeviceListWithDragAndDrop.jsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { DndProvider, useDrag, useDrop } from 'react-dnd';
-import { TouchBackend } from 'react-dnd-touch-backend';
-import { HTML5Backend } from 'react-dnd-html5-backend';
-import { useRef } from 'preact/hooks';
-import cx from 'classnames';
-import style from './style.css';
-
-const DEVICE_TYPE = 'DEVICE_TYPE';
-
-const DeviceRow = ({ selectedDeviceFeature, moveDevice, index, removeDevice, updateDeviceFeatureName }) => {
- const ref = useRef(null);
- const [{ isDragging }, drag, preview] = useDrag(() => ({
- type: DEVICE_TYPE,
- item: () => {
- return { index };
- },
- collect: monitor => ({
- isDragging: !!monitor.isDragging()
- })
- }));
- const [{ isActive }, drop] = useDrop({
- accept: DEVICE_TYPE,
- collect: monitor => ({
- isActive: monitor.canDrop() && monitor.isOver()
- }),
- drop(item) {
- if (!ref.current) {
- return;
- }
- moveDevice(item.index, index);
- }
- });
- preview(drop(ref));
- const removeThisDevice = () => {
- removeDevice(index);
- };
-
- const updateThisDeviceFeatureName = e => {
- updateDeviceFeatureName(index, e.target.value);
- };
-
- return (
-
-
-
-
- );
-};
-
-const DeviceListWithDragAndDrop = ({
- selectedDeviceFeaturesOptions,
- isTouchDevice,
- moveDevice,
- removeDevice,
- updateDeviceFeatureName
-}) => (
-
- {selectedDeviceFeaturesOptions.map((selectedDeviceFeature, index) => (
-
- ))}
-
-);
-
-export { DeviceListWithDragAndDrop };
diff --git a/front/src/components/boxs/device-in-room/EditDevices.jsx b/front/src/components/boxs/device-in-room/EditDevices.jsx
index 76784fcbb2..57e0a17da2 100644
--- a/front/src/components/boxs/device-in-room/EditDevices.jsx
+++ b/front/src/components/boxs/device-in-room/EditDevices.jsx
@@ -5,7 +5,7 @@ import Select from 'react-select';
import update from 'immutability-helper';
import BaseEditBox from '../baseEditBox';
import { getDeviceFeatureName } from '../../../utils/device';
-import { DeviceListWithDragAndDrop } from './DeviceListWithDragAndDrop';
+import { DeviceListWithDragAndDrop } from '../../drag-and-drop/DeviceListWithDragAndDrop';
import withIntlAsProp from '../../../utils/withIntlAsProp';
import SUPPORTED_FEATURE_TYPES from './SupportedFeatureTypes';
@@ -24,7 +24,7 @@ class EditDevices extends Component {
refreshDeviceFeaturesNames = () => {
const newDeviceFeatureNames = this.state.selectedDeviceFeaturesOptions.map(o => {
- return o.new_label !== undefined ? o.new_label : o.label;
+ return o.new_label !== undefined && o.new_label !== '' ? o.new_label : o.label;
});
const newDeviceFeature = this.state.selectedDeviceFeaturesOptions.map(o => {
return o.value;
@@ -62,7 +62,10 @@ class EditDevices extends Component {
}
});
await this.setState(newState);
- this.refreshDeviceFeaturesNames();
+
+ if (name !== '') {
+ this.refreshDeviceFeaturesNames();
+ }
};
getSelectedDeviceFeaturesAndOptions = devices => {
diff --git a/front/src/components/boxs/device-in-room/style.css b/front/src/components/boxs/device-in-room/style.css
deleted file mode 100644
index d9711f3251..0000000000
--- a/front/src/components/boxs/device-in-room/style.css
+++ /dev/null
@@ -1,12 +0,0 @@
-.deviceListDragAndDrop {
- cursor: 'pointer';
- userselect: 'none';
-}
-
-.deviceListDragAndDropDragging {
- opacity: 0.5;
-}
-
-.deviceListDragAndDropActive {
- background-color: #ecf0f1;
-}
diff --git a/front/src/components/boxs/chart/DeviceListWithDragAndDrop.jsx b/front/src/components/drag-and-drop/DeviceListWithDragAndDrop.jsx
similarity index 83%
rename from front/src/components/boxs/chart/DeviceListWithDragAndDrop.jsx
rename to front/src/components/drag-and-drop/DeviceListWithDragAndDrop.jsx
index 5aba7997d7..65df874477 100644
--- a/front/src/components/boxs/chart/DeviceListWithDragAndDrop.jsx
+++ b/front/src/components/drag-and-drop/DeviceListWithDragAndDrop.jsx
@@ -1,7 +1,7 @@
import { DndProvider, useDrag, useDrop } from 'react-dnd';
import { TouchBackend } from 'react-dnd-touch-backend';
import { HTML5Backend } from 'react-dnd-html5-backend';
-import { useRef } from 'preact/hooks';
+import { useRef, useState } from 'preact/hooks';
import cx from 'classnames';
import style from './style.css';
@@ -35,10 +35,13 @@ const DeviceRow = ({ selectedDeviceFeature, moveDevice, index, removeDevice, upd
removeDevice(index);
};
+ const [isEmpty, setIsEmpty] = useState(selectedDeviceFeature.new_label === '');
const updateThisDeviceFeatureName = e => {
updateDeviceFeatureName(index, e.target.value);
+ setIsEmpty(e.target.value === '');
};
+ const emptyFieldAutogenerated = isEmpty && selectedDeviceFeature.new_label !== '';
return (
@@ -55,13 +58,12 @@ const DeviceRow = ({ selectedDeviceFeature, moveDevice, index, removeDevice, upd
diff --git a/front/src/components/drag-and-drop/style.css b/front/src/components/drag-and-drop/style.css
index ef4c64bc2b..abcb9ce1a4 100644
--- a/front/src/components/drag-and-drop/style.css
+++ b/front/src/components/drag-and-drop/style.css
@@ -17,3 +17,33 @@
height: 20%;
width: 100%;
}
+
+.deviceListDragAndDrop {
+ cursor: 'pointer';
+ user-select: 'none';
+}
+
+.deviceListDragAndDropDragging {
+ opacity: 0.5;
+}
+
+.deviceListDragAndDropActive {
+ background-color: #ecf0f1;
+}
+
+.deviceListDragAndDropEmpty {
+ border: 1px solid #e90a0a;
+}
+
+.deviceListDragAndDropEmptyAutoGenerated {
+ border: 1px dashed #e90a0a;
+}
+
+.deviceListDragAndDropEmpty:focus {
+ border: 1px solid #e90a0a;
+ box-shadow: 0 0 5px #e90a0a;
+}
+
+.deviceListRemoveButton {
+ z-index: 0;
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index f4e52973c1..16086682d8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "gladys",
- "version": "4.46.1",
+ "version": "4.46.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "gladys",
- "version": "4.46.1",
+ "version": "4.46.2",
"hasInstallScript": true,
"license": "Apache-2.0",
"devDependencies": {
diff --git a/package.json b/package.json
index 94371e41c6..088f55b0d8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "gladys",
- "version": "4.46.1",
+ "version": "4.46.2",
"description": "A privacy-first, open-source home assistant",
"main": "index.js",
"engines": {
diff --git a/server/package-lock.json b/server/package-lock.json
index 84b9def35c..4ccdff0528 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -8,7 +8,7 @@
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
- "@gladysassistant/gladys-gateway-js": "4.16.2",
+ "@gladysassistant/gladys-gateway-js": "4.15.0",
"@hapi/joi": "^17.1.0",
"@hapi/joi-date": "^2.0.1",
"@nlpjs/similarity": "^4.26.1",
@@ -705,9 +705,9 @@
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
},
"node_modules/@gladysassistant/gladys-gateway-js": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.16.2.tgz",
- "integrity": "sha512-ePkq3W1nYg5rRtNnI9s4A7SXFatSf1loKV6sHJkYzOk2b1uluHI0VrW7gmLrizvomfzpzmvKcC06PJJmKk894g==",
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.15.0.tgz",
+ "integrity": "sha512-vQlycZWF0sA3/KuIlPf0/DVFJ2lbf/R+SbCrkyeuT3P+NnD/EZ9QEFKI/Xu7x1uf4pS+H7CVUT0SudzOGMBoPw==",
"dependencies": {
"@ctrlpanel/pbkdf2": "^1.0.0",
"array-buffer-to-hex": "^1.0.0",
@@ -716,7 +716,7 @@
"encode-utf8": "^1.0.2",
"hex-to-array-buffer": "^1.1.0",
"secure-remote-password": "^0.3.1",
- "socket.io-client": "^4.8.0"
+ "socket.io-client": "^4.5.3"
}
},
"node_modules/@gladysassistant/gladys-gateway-js/node_modules/axios": {
@@ -4246,15 +4246,15 @@
}
},
"node_modules/engine.io-client": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz",
- "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==",
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
+ "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.2.1",
"ws": "~8.17.1",
- "xmlhttprequest-ssl": "~2.1.1"
+ "xmlhttprequest-ssl": "~2.0.0"
}
},
"node_modules/engine.io-client/node_modules/debug": {
@@ -10373,13 +10373,13 @@
}
},
"node_modules/socket.io-client": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz",
- "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
+ "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.6.1",
+ "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4"
},
"engines": {
@@ -11996,9 +11996,9 @@
"dev": true
},
"node_modules/xmlhttprequest-ssl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz",
- "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"engines": {
"node": ">=0.4.0"
}
@@ -12576,9 +12576,9 @@
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="
},
"@gladysassistant/gladys-gateway-js": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.16.2.tgz",
- "integrity": "sha512-ePkq3W1nYg5rRtNnI9s4A7SXFatSf1loKV6sHJkYzOk2b1uluHI0VrW7gmLrizvomfzpzmvKcC06PJJmKk894g==",
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/@gladysassistant/gladys-gateway-js/-/gladys-gateway-js-4.15.0.tgz",
+ "integrity": "sha512-vQlycZWF0sA3/KuIlPf0/DVFJ2lbf/R+SbCrkyeuT3P+NnD/EZ9QEFKI/Xu7x1uf4pS+H7CVUT0SudzOGMBoPw==",
"requires": {
"@ctrlpanel/pbkdf2": "^1.0.0",
"array-buffer-to-hex": "^1.0.0",
@@ -12587,7 +12587,7 @@
"encode-utf8": "^1.0.2",
"hex-to-array-buffer": "^1.1.0",
"secure-remote-password": "^0.3.1",
- "socket.io-client": "^4.8.0"
+ "socket.io-client": "^4.5.3"
},
"dependencies": {
"axios": {
@@ -15488,15 +15488,15 @@
}
},
"engine.io-client": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz",
- "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==",
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
+ "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1",
"engine.io-parser": "~5.2.1",
"ws": "~8.17.1",
- "xmlhttprequest-ssl": "~2.1.1"
+ "xmlhttprequest-ssl": "~2.0.0"
},
"dependencies": {
"debug": {
@@ -20101,13 +20101,13 @@
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
},
"socket.io-client": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz",
- "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
+ "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2",
- "engine.io-client": "~6.6.1",
+ "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4"
},
"dependencies": {
@@ -21348,9 +21348,9 @@
"dev": true
},
"xmlhttprequest-ssl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz",
- "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
},
"y18n": {
"version": "5.0.8",
diff --git a/server/package.json b/server/package.json
index cd52d81475..0ff217627a 100644
--- a/server/package.json
+++ b/server/package.json
@@ -73,7 +73,7 @@
"supertest": "^3.4.2"
},
"dependencies": {
- "@gladysassistant/gladys-gateway-js": "4.16.2",
+ "@gladysassistant/gladys-gateway-js": "4.15.0",
"@hapi/joi": "^17.1.0",
"@hapi/joi-date": "^2.0.1",
"@nlpjs/similarity": "^4.26.1",
diff --git a/server/services/zigbee2mqtt/exposes/numericType.js b/server/services/zigbee2mqtt/exposes/numericType.js
index 05c3f296e6..aa142a0ad2 100644
--- a/server/services/zigbee2mqtt/exposes/numericType.js
+++ b/server/services/zigbee2mqtt/exposes/numericType.js
@@ -689,7 +689,7 @@ module.exports = {
RELAIS: {
feature: {
category: DEVICE_FEATURE_CATEGORIES.ENERGY_SENSOR,
- type: DEVICE_FEATURE_TYPES.SENSOR.INTEGER,
+ type: DEVICE_FEATURE_TYPES.ENERGY_SENSOR.BINARY,
},
},
EAST: {
@@ -716,6 +716,14 @@ module.exports = {
max: 1000000,
},
},
+ EASF03: {
+ feature: {
+ category: DEVICE_FEATURE_CATEGORIES.ENERGY_SENSOR,
+ type: DEVICE_FEATURE_TYPES.ENERGY_SENSOR.INDEX,
+ min: 0,
+ max: 1000000,
+ },
+ },
// End of Lixee TIC device
voc: {
feature: {