mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
@@ -24,12 +24,12 @@
|
||||
"@babel/core": "^7.23.7",
|
||||
"@emotion/react": "^11.11.3",
|
||||
"@emotion/styled": "^11.11.0",
|
||||
"@mui/icons-material": "^5.15.3",
|
||||
"@mui/material": "^5.15.3",
|
||||
"@mui/icons-material": "^5.15.4",
|
||||
"@mui/material": "^5.15.4",
|
||||
"@table-library/react-table-library": "4.1.7",
|
||||
"@types/imagemin": "^8.0.5",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^20.10.7",
|
||||
"@types/node": "^20.11.0",
|
||||
"@types/react": "^18.2.47",
|
||||
"@types/react-dom": "^18.2.18",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
@@ -42,8 +42,8 @@
|
||||
"react": "latest",
|
||||
"react-dom": "latest",
|
||||
"react-dropzone": "^14.2.3",
|
||||
"react-icons": "^4.12.0",
|
||||
"react-router-dom": "^6.21.1",
|
||||
"react-icons": "^5.0.1",
|
||||
"react-router-dom": "^6.21.2",
|
||||
"react-toastify": "^9.1.3",
|
||||
"sockette": "^2.0.6",
|
||||
"typesafe-i18n": "^5.26.2",
|
||||
@@ -52,8 +52,8 @@
|
||||
"devDependencies": {
|
||||
"@preact/compat": "^17.1.2",
|
||||
"@preact/preset-vite": "^2.8.1",
|
||||
"@typescript-eslint/eslint-plugin": "^6.18.0",
|
||||
"@typescript-eslint/parser": "^6.18.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.18.1",
|
||||
"@typescript-eslint/parser": "^6.18.1",
|
||||
"concurrently": "^8.2.2",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
|
||||
@@ -401,12 +401,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.23.6":
|
||||
version: 7.23.6
|
||||
resolution: "@babel/runtime@npm:7.23.6"
|
||||
"@babel/runtime@npm:^7.23.7":
|
||||
version: 7.23.8
|
||||
resolution: "@babel/runtime@npm:7.23.8"
|
||||
dependencies:
|
||||
regenerator-runtime: "npm:^0.14.0"
|
||||
checksum: 4c4ab16f0361c59fb23956e4d0a29935f1f8a64aa8dd37876ce38355b6f4d8f0e54237aacb89c73b1532def60539ddde2d651523c8fa887b30b19a8cf0c465b0
|
||||
checksum: ec8f1967a36164da6cac868533ffdff97badd76d23d7d820cc84f0818864accef972f22f9c6a710185db1e3810e353fc18c3da721e5bb3ee8bc61bdbabce03ff
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -841,41 +841,41 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/core@npm:^1.4.2":
|
||||
version: 1.5.0
|
||||
resolution: "@floating-ui/core@npm:1.5.0"
|
||||
dependencies:
|
||||
"@floating-ui/utils": "npm:^0.1.3"
|
||||
checksum: 3182715a30493f44a32158f4d77ab5b6c212064b160cb84b5b8405ec2845bd8a9167c25292709e841cad9e70c6b9efdc30f876044e3b0909139fea8eca00c631
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/dom@npm:^1.5.1":
|
||||
"@floating-ui/core@npm:^1.5.3":
|
||||
version: 1.5.3
|
||||
resolution: "@floating-ui/dom@npm:1.5.3"
|
||||
resolution: "@floating-ui/core@npm:1.5.3"
|
||||
dependencies:
|
||||
"@floating-ui/core": "npm:^1.4.2"
|
||||
"@floating-ui/utils": "npm:^0.1.3"
|
||||
checksum: d2d5ae7a0949c0ebf7fbf97a21612bf94dbd29cb6c847e00588b8e2a5575ade27c47cb19f5d230fc21a571d99aa0c714b301c9221d33921047408c0ed9d91a30
|
||||
"@floating-ui/utils": "npm:^0.2.0"
|
||||
checksum: 7d9feaca2565a2a71bf03d23cd292c03def63097d7fde7d62909cdb8ddb84664781f3922086bcf10443f3310cb92381a0ecf745b2774edb917fa74fe61015c56
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/react-dom@npm:^2.0.4":
|
||||
version: 2.0.4
|
||||
resolution: "@floating-ui/react-dom@npm:2.0.4"
|
||||
"@floating-ui/dom@npm:^1.5.4":
|
||||
version: 1.5.4
|
||||
resolution: "@floating-ui/dom@npm:1.5.4"
|
||||
dependencies:
|
||||
"@floating-ui/dom": "npm:^1.5.1"
|
||||
"@floating-ui/core": "npm:^1.5.3"
|
||||
"@floating-ui/utils": "npm:^0.2.0"
|
||||
checksum: 3ba02ba2b4227c1e18df6ccdd029a1c100058db2e76ca1dac60a593ec72b2d4d995fa5c2d1639a5c38adb17e12398fbfe4f6cf5fd45f2ee6170ed0cf64acea06
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/react-dom@npm:^2.0.5":
|
||||
version: 2.0.5
|
||||
resolution: "@floating-ui/react-dom@npm:2.0.5"
|
||||
dependencies:
|
||||
"@floating-ui/dom": "npm:^1.5.4"
|
||||
peerDependencies:
|
||||
react: ">=16.8.0"
|
||||
react-dom: ">=16.8.0"
|
||||
checksum: 4240a718502c797fd2e174cd06dcd7321a6eda9c8966dbaf61864b9e16445e95649a59bfe7c19ee13f68c11f3693724d7970c7e618089a3d3915bd343639cfae
|
||||
checksum: b4fc008c725149b9565949184d844c914a8fa2687636c3c1166a1d52ca58537b3ba9b0a0e2945cf424662c846e60b173df0d325af7e700a31550e5e0b346070a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@floating-ui/utils@npm:^0.1.3":
|
||||
version: 0.1.6
|
||||
resolution: "@floating-ui/utils@npm:0.1.6"
|
||||
checksum: 450ec4ecc1dd8161b1904d4e1e9d95e653cc06f79af6c3b538b79efb10541d90bcc88646ab3cdffc5b92e00c4804ca727b025d153ad285f42dbbb39aec219ec9
|
||||
"@floating-ui/utils@npm:^0.2.0":
|
||||
version: 0.2.1
|
||||
resolution: "@floating-ui/utils@npm:0.2.1"
|
||||
checksum: 33c9ab346e7b05c5a1e6a95bc902aafcfc2c9d513a147e2491468843bd5607531b06d0b9aa56aa491cbf22a6c2495c18ccfc4c0344baec54a689a7bb8e4898d6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -970,16 +970,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/base@npm:5.0.0-beta.30":
|
||||
version: 5.0.0-beta.30
|
||||
resolution: "@mui/base@npm:5.0.0-beta.30"
|
||||
"@mui/base@npm:5.0.0-beta.31":
|
||||
version: 5.0.0-beta.31
|
||||
resolution: "@mui/base@npm:5.0.0-beta.31"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@floating-ui/react-dom": "npm:^2.0.4"
|
||||
"@mui/types": "npm:^7.2.12"
|
||||
"@mui/utils": "npm:^5.15.3"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@floating-ui/react-dom": "npm:^2.0.5"
|
||||
"@mui/types": "npm:^7.2.13"
|
||||
"@mui/utils": "npm:^5.15.4"
|
||||
"@popperjs/core": "npm:^2.11.8"
|
||||
clsx: "npm:^2.0.0"
|
||||
clsx: "npm:^2.1.0"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
"@types/react": ^17.0.0 || ^18.0.0
|
||||
@@ -988,22 +988,22 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 55e18d59ac96f5bbfbfdadd907751f5e6a4f74f611b5e99fe5f8002c76fa117b62c159f52ea0f12574a66460d62734082438cff19cb73e3fca9dc22f82f6eaf2
|
||||
checksum: 0fddfad690e6ed9e022e269e29632f975f69c04179f564627a266fbd23457832704a819a36314438083322da4e52827fd6b1b248b058b7d18b4c8322cb60fedb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/core-downloads-tracker@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/core-downloads-tracker@npm:5.15.3"
|
||||
checksum: 002451af1aa555c0163c0ffacde5c15062e0ae0f30b81945e1a0befe7b6c5d14924a2b068b7b5f713c177ee3eecca4fc250d590d11206a6b5465700c399a34d1
|
||||
"@mui/core-downloads-tracker@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/core-downloads-tracker@npm:5.15.4"
|
||||
checksum: 89662279a89fb48ef9d6bd7914adca095d59fef2b70e288e965b4a959b623d6604ab809ca7b5fe0aae8df026693307043da66cc8280c8f78b89d364003a075e2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/icons-material@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/icons-material@npm:5.15.3"
|
||||
"@mui/icons-material@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/icons-material@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
peerDependencies:
|
||||
"@mui/material": ^5.0.0
|
||||
"@types/react": ^17.0.0 || ^18.0.0
|
||||
@@ -1011,22 +1011,22 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 2393a9dcd0834cdda728b8ebca5d8f6acbfc34316346aaea257e32961abf7cf578419df196b50223b89b3e2556098aea283786ca4eeedaf58be3d204f499f6bc
|
||||
checksum: 1c9be5d3e23a6b565a36d36065e8a2480feebfb497ea7367f7fd32f90164e46420e5be8117fcfd05f2a3c1940b8fa48f56caccc19da78849fc8bda037f186954
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/material@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/material@npm:5.15.3"
|
||||
"@mui/material@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/material@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@mui/base": "npm:5.0.0-beta.30"
|
||||
"@mui/core-downloads-tracker": "npm:^5.15.3"
|
||||
"@mui/system": "npm:^5.15.3"
|
||||
"@mui/types": "npm:^7.2.12"
|
||||
"@mui/utils": "npm:^5.15.3"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@mui/base": "npm:5.0.0-beta.31"
|
||||
"@mui/core-downloads-tracker": "npm:^5.15.4"
|
||||
"@mui/system": "npm:^5.15.4"
|
||||
"@mui/types": "npm:^7.2.13"
|
||||
"@mui/utils": "npm:^5.15.4"
|
||||
"@types/react-transition-group": "npm:^4.4.10"
|
||||
clsx: "npm:^2.0.0"
|
||||
clsx: "npm:^2.1.0"
|
||||
csstype: "npm:^3.1.2"
|
||||
prop-types: "npm:^15.8.1"
|
||||
react-is: "npm:^18.2.0"
|
||||
@@ -1044,16 +1044,16 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: fe8d318aed036b649a82e4833254f833ece028b6a25cec001991e6864d9e520752df6a746b6ca856c0310cc9aae16697aa77ddf53a85c889bb5d04c5aa5c1dcb
|
||||
checksum: e089f3994d4dcfd19976994f251369b2e978f3405503d23a7ac2b8617cedb8b5dd7a7bb6ea523402b5c7a9467f0b604bf11f2a515bf460498dc1b1afff58b490
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/private-theming@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/private-theming@npm:5.15.3"
|
||||
"@mui/private-theming@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/private-theming@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@mui/utils": "npm:^5.15.3"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@mui/utils": "npm:^5.15.4"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
"@types/react": ^17.0.0 || ^18.0.0
|
||||
@@ -1061,15 +1061,15 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 4404a7d9545974631b329f391df72fa54edb5aefa6d32d9656b200284613e8ea1bdd3d0add2abe7278f1343dd5cf7552c7e4d2aaf5593f292c7db3cd63ddff21
|
||||
checksum: 925d46ae20a451d32d3ba5b262260e2655dcef68846e1d546014adb9b6abc490a1a40f59b8224770663d10790003ac0163923b206263722f52c00550b424f447
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/styled-engine@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/styled-engine@npm:5.15.3"
|
||||
"@mui/styled-engine@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/styled-engine@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@emotion/cache": "npm:^11.11.0"
|
||||
csstype: "npm:^3.1.2"
|
||||
prop-types: "npm:^15.8.1"
|
||||
@@ -1082,20 +1082,20 @@ __metadata:
|
||||
optional: true
|
||||
"@emotion/styled":
|
||||
optional: true
|
||||
checksum: 6775f92cda9f17428baf5b95e5849f31eead92485e332902ff29bd49bd03fbe2f5e762ebcdd122f7f31e102ec42cda29cbb5fdef79f5d03f416705d119b69e75
|
||||
checksum: 0b3737c8934d41742ada477ee283e0fbbeaed0032a3f97bbebfa7f5788987d882b7f60c7b49a10367db6a3ed24ed3ae76df0f202d0f3e4872c0cee2dc40b2542
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/system@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/system@npm:5.15.3"
|
||||
"@mui/system@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/system@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@mui/private-theming": "npm:^5.15.3"
|
||||
"@mui/styled-engine": "npm:^5.15.3"
|
||||
"@mui/types": "npm:^7.2.12"
|
||||
"@mui/utils": "npm:^5.15.3"
|
||||
clsx: "npm:^2.0.0"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@mui/private-theming": "npm:^5.15.4"
|
||||
"@mui/styled-engine": "npm:^5.15.4"
|
||||
"@mui/types": "npm:^7.2.13"
|
||||
"@mui/utils": "npm:^5.15.4"
|
||||
clsx: "npm:^2.1.0"
|
||||
csstype: "npm:^3.1.2"
|
||||
prop-types: "npm:^15.8.1"
|
||||
peerDependencies:
|
||||
@@ -1110,27 +1110,27 @@ __metadata:
|
||||
optional: true
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 7b71cad3c3b4f8136cf51a9e7040440073201618eaa5d0fcbd8830e3c3f35eb8a38303bb2bc9da84e0c95844193fdb4238af50e1f1d74a8e9fa79500a49c31db
|
||||
checksum: 4408bb70e74d851e29e50411283eb06596a62f9b0b46fc6ce0727122b89fe52ba56a27f209e52b09c8c85f4db8000db845205fa42ae393f7da34e507fbbf15cb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/types@npm:^7.2.12":
|
||||
version: 7.2.12
|
||||
resolution: "@mui/types@npm:7.2.12"
|
||||
"@mui/types@npm:^7.2.13":
|
||||
version: 7.2.13
|
||||
resolution: "@mui/types@npm:7.2.13"
|
||||
peerDependencies:
|
||||
"@types/react": ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: 7d3ef53fee7eddc063d2083dc129f7d6d38b472a9196c3522fc5a75e66849fbf2b824be3f6aee11dc02c4475864e544026e6051ffb9d33f5dc1fc2a2279a8b72
|
||||
checksum: a35bff025f715073329bd7cbe11ef4ce331ea377adffc0c5cd264bea47283590ce928d1fdbbc27506d1d462151325c81e71f2378ac4335feef3042010bbf3fcd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mui/utils@npm:^5.15.3":
|
||||
version: 5.15.3
|
||||
resolution: "@mui/utils@npm:5.15.3"
|
||||
"@mui/utils@npm:^5.15.4":
|
||||
version: 5.15.4
|
||||
resolution: "@mui/utils@npm:5.15.4"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.23.6"
|
||||
"@babel/runtime": "npm:^7.23.7"
|
||||
"@types/prop-types": "npm:^15.7.11"
|
||||
prop-types: "npm:^15.8.1"
|
||||
react-is: "npm:^18.2.0"
|
||||
@@ -1140,7 +1140,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@types/react":
|
||||
optional: true
|
||||
checksum: c4d66e34332f448527c6dea66a7011f95dc230ccaf5a3ee898a6fd69b77a3584af1fd644d095dc7edb2d480e5c050db06f9b9ec9dea3bc5091a80cf8b676f709
|
||||
checksum: 8e940d2be7365adee51a33e6e8ee889fd8d7aa2d246c80ff28daa949125199cfb1a6b39aa86af5ceda434e7edc2ffe19015f0e9297275de1f22dc9662d19ffef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1277,10 +1277,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@remix-run/router@npm:1.14.1":
|
||||
version: 1.14.1
|
||||
resolution: "@remix-run/router@npm:1.14.1"
|
||||
checksum: caed61639006444a66ca832f1e500bac2fcf02695183e967ff1452d3172f888f2bb40591b239c85f9003b9628383cfd4c8ef55cde800d14276905c7031c9f0b9
|
||||
"@remix-run/router@npm:1.14.2":
|
||||
version: 1.14.2
|
||||
resolution: "@remix-run/router@npm:1.14.2"
|
||||
checksum: 422844e88b985f1e287301b302c6cf8169c9eea792f80d40464f97b25393bb2e697228ebd7a7b61444d5a51c5873c4a637aad20acde5886a5caf62e833c5ceee
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1568,12 +1568,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^20.10.7":
|
||||
version: 20.10.7
|
||||
resolution: "@types/node@npm:20.10.7"
|
||||
"@types/node@npm:^20.11.0":
|
||||
version: 20.11.0
|
||||
resolution: "@types/node@npm:20.11.0"
|
||||
dependencies:
|
||||
undici-types: "npm:~5.26.4"
|
||||
checksum: 4a1ba3fb7fc0a262c6b2d5ec763cec7abf5b5d6b2d277798ddbf05227f5778f9a806987821fd4d3eacd6f37c946ac61a9c64fb79ae4b84daaec12354158835a3
|
||||
checksum: 8da60a8ccb65181c3d6f7686ddc5f1b1616cafa14d9e520a866adff82c17cc99336a78dd7ce7bee8f54e2332946f678b0e3aa377fbaaf751d3c05b64600872c6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1691,15 +1691,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/eslint-plugin@npm:^6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:6.18.0"
|
||||
"@typescript-eslint/eslint-plugin@npm:^6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/eslint-plugin@npm:6.18.1"
|
||||
dependencies:
|
||||
"@eslint-community/regexpp": "npm:^4.5.1"
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.0"
|
||||
"@typescript-eslint/type-utils": "npm:6.18.0"
|
||||
"@typescript-eslint/utils": "npm:6.18.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.1"
|
||||
"@typescript-eslint/type-utils": "npm:6.18.1"
|
||||
"@typescript-eslint/utils": "npm:6.18.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.1"
|
||||
debug: "npm:^4.3.4"
|
||||
graphemer: "npm:^1.4.0"
|
||||
ignore: "npm:^5.2.4"
|
||||
@@ -1712,44 +1712,44 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 7810a84f6d9cb735f6848aa4a7ef64c77740812afc0248fda63ec182910a1d045cd9a32d8e49b0e5323266db6da12a2fe50171147927b3186815a56f12c16ee7
|
||||
checksum: 451abba1f784539ba38cbe40af26c461facd848e90cbf0c440a98ca2a770ff74a794bafe1df7240e52a97e7cd72bade97d5de751dffbac269643460ad65e3b19
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/parser@npm:^6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/parser@npm:6.18.0"
|
||||
"@typescript-eslint/parser@npm:^6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/parser@npm:6.18.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.0"
|
||||
"@typescript-eslint/types": "npm:6.18.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.1"
|
||||
"@typescript-eslint/types": "npm:6.18.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.1"
|
||||
debug: "npm:^4.3.4"
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 6798332819f839454a8405e31cfaa0fe908d5966be929bef55e78ac51a0ff3868feb42b38e7772cedf88277f6b2841b3d91f6c573eacb945e2741ecae94047c7
|
||||
checksum: b853d39dcf886668f9aa9ea12094e722d35be20855dc7f01c80ee847bf4f7e27aa74693c3a33d4d813705214bda28be1d6c7ca29e590233f894f556203171d29
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:6.18.0"
|
||||
"@typescript-eslint/scope-manager@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/scope-manager@npm:6.18.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.18.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.0"
|
||||
checksum: c2c465e6803f78d3300142167a8a79dd2613c64cf464a40a9cf6b13a2c10c3d82ca30bb9c2d26aba7f054b8740b38e1d25f377fcdf917aba489d5b5ea2550858
|
||||
"@typescript-eslint/types": "npm:6.18.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.1"
|
||||
checksum: ab75663cda67a2c95267f240f2e062a0aafab0df6d625043a134c8e1d61e193c0d3cfa49c802bd554b3fd80f4b7df5ea3f86ef2eb6994ba8b5e0790cc9868c84
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/type-utils@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/type-utils@npm:6.18.0"
|
||||
"@typescript-eslint/type-utils@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/type-utils@npm:6.18.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.0"
|
||||
"@typescript-eslint/utils": "npm:6.18.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.1"
|
||||
"@typescript-eslint/utils": "npm:6.18.1"
|
||||
debug: "npm:^4.3.4"
|
||||
ts-api-utils: "npm:^1.0.1"
|
||||
peerDependencies:
|
||||
@@ -1757,23 +1757,23 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: 9f4a392fe7b7f6b1fb02acbdaa331e764775f6404c29ca66774419e39552523d878227020526ca9c438d997555a99600f8d711496e9a435fb14a779e25ed094e
|
||||
checksum: f775011c35aef10b11e7cffde698fca8b06b313785cd44422c60a40b6643d85a38cbd9a3cbdef011d963680d65383c40988d983e9dfd01258ae50a2f37f6d293
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/types@npm:6.18.0"
|
||||
checksum: fc507ca7a1bfec04467087165ff6722f7b9aa9a089ecf0c17656824a951b92ca014766e480122de850057c63a3066628985eb0681c5bbb80ab41d94e7bb52288
|
||||
"@typescript-eslint/types@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/types@npm:6.18.1"
|
||||
checksum: e304620953257a5af3b323697845d3fb41ffbb7944df2f84559675ef8ad71cc33011be30149efd8d34c5dedcbe92c6abee67cb1b95cb3dd56f15b9393b3435a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:6.18.0"
|
||||
"@typescript-eslint/typescript-estree@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:6.18.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.18.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.0"
|
||||
"@typescript-eslint/types": "npm:6.18.1"
|
||||
"@typescript-eslint/visitor-keys": "npm:6.18.1"
|
||||
debug: "npm:^4.3.4"
|
||||
globby: "npm:^11.1.0"
|
||||
is-glob: "npm:^4.0.3"
|
||||
@@ -1783,34 +1783,34 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
checksum: b65392e944baba97ed98e99a1e7122b7b05fa0d9a082b48d0190b377ae9e2ae4ed72d505a2f0f05f2ca78908f0e4b0f1acd44d345c7f4f4415fcec6bb2c57791
|
||||
checksum: 33307bc87c3270f84f149545da79a15afaafacc5671e42f4aa827947f09c35ed114705f108ffa59d6ab175f8b838aa08cf10f9efe5b7793aca0792f879bbc7ca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/utils@npm:6.18.0"
|
||||
"@typescript-eslint/utils@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/utils@npm:6.18.1"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||
"@types/json-schema": "npm:^7.0.12"
|
||||
"@types/semver": "npm:^7.5.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.0"
|
||||
"@typescript-eslint/types": "npm:6.18.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.0"
|
||||
"@typescript-eslint/scope-manager": "npm:6.18.1"
|
||||
"@typescript-eslint/types": "npm:6.18.1"
|
||||
"@typescript-eslint/typescript-estree": "npm:6.18.1"
|
||||
semver: "npm:^7.5.4"
|
||||
peerDependencies:
|
||||
eslint: ^7.0.0 || ^8.0.0
|
||||
checksum: f91798069e337ed42b7e415aabded833d540dab9adf66ae88183003428892584946f20a5496aae2dc65fc0f65b66496baed785a3470ee782b6e2dd25b9200c6c
|
||||
checksum: 967728f062ec7ef434b9d05af6b45ae59e0f8f314e4aa7cefc8e2c30a277cf269b7913f3e9f8d26a86c3faf8b2c9385ba1221cfcd856e9b228421fc6508b41bc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:6.18.0":
|
||||
version: 6.18.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:6.18.0"
|
||||
"@typescript-eslint/visitor-keys@npm:6.18.1":
|
||||
version: 6.18.1
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:6.18.1"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:6.18.0"
|
||||
"@typescript-eslint/types": "npm:6.18.1"
|
||||
eslint-visitor-keys: "npm:^3.4.1"
|
||||
checksum: bf34a357549d515607c761f385b7c7c82aaa07795cada0be2e1e3860c5103fbf731408ac07eaeb0517b51426d77ef9b194dfb94f205c776107a46e0d0027b452
|
||||
checksum: 2d6c5ffa52e89caec0b4958d7079fb4ca9f17c19b5f5d5b8446b4eef0079fd59cd9959f469cc13c4e7d72ef4c47849e561fe323f3cebafa01bc916d43082e57b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1829,19 +1829,19 @@ __metadata:
|
||||
"@babel/core": "npm:^7.23.7"
|
||||
"@emotion/react": "npm:^11.11.3"
|
||||
"@emotion/styled": "npm:^11.11.0"
|
||||
"@mui/icons-material": "npm:^5.15.3"
|
||||
"@mui/material": "npm:^5.15.3"
|
||||
"@mui/icons-material": "npm:^5.15.4"
|
||||
"@mui/material": "npm:^5.15.4"
|
||||
"@preact/compat": "npm:^17.1.2"
|
||||
"@preact/preset-vite": "npm:^2.8.1"
|
||||
"@table-library/react-table-library": "npm:4.1.7"
|
||||
"@types/imagemin": "npm:^8.0.5"
|
||||
"@types/lodash-es": "npm:^4.17.12"
|
||||
"@types/node": "npm:^20.10.7"
|
||||
"@types/node": "npm:^20.11.0"
|
||||
"@types/react": "npm:^18.2.47"
|
||||
"@types/react-dom": "npm:^18.2.18"
|
||||
"@types/react-router-dom": "npm:^5.3.3"
|
||||
"@typescript-eslint/eslint-plugin": "npm:^6.18.0"
|
||||
"@typescript-eslint/parser": "npm:^6.18.0"
|
||||
"@typescript-eslint/eslint-plugin": "npm:^6.18.1"
|
||||
"@typescript-eslint/parser": "npm:^6.18.1"
|
||||
alova: "npm:^2.16.2"
|
||||
async-validator: "npm:^4.2.5"
|
||||
concurrently: "npm:^8.2.2"
|
||||
@@ -1865,8 +1865,8 @@ __metadata:
|
||||
react: "npm:latest"
|
||||
react-dom: "npm:latest"
|
||||
react-dropzone: "npm:^14.2.3"
|
||||
react-icons: "npm:^4.12.0"
|
||||
react-router-dom: "npm:^6.21.1"
|
||||
react-icons: "npm:^5.0.1"
|
||||
react-router-dom: "npm:^6.21.2"
|
||||
react-toastify: "npm:^9.1.3"
|
||||
rollup-plugin-visualizer: "npm:^5.12.0"
|
||||
sockette: "npm:^2.0.6"
|
||||
@@ -2624,10 +2624,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"clsx@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "clsx@npm:2.0.0"
|
||||
checksum: 943766d1b02fee3538c871e56638d87f973fbc2d6291ce221215ea436fdecb9be97ad323f411839c2d52c45640c449b1a53fbfe7e8b3d529b4e263308b630c9a
|
||||
"clsx@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "clsx@npm:2.1.0"
|
||||
checksum: 2e0ce7c3b6803d74fc8147c408f88e79245583202ac14abd9691e2aebb9f312de44270b79154320d10bb7804a9197869635d1291741084826cff20820f31542b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -7202,12 +7202,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-icons@npm:^4.12.0":
|
||||
version: 4.12.0
|
||||
resolution: "react-icons@npm:4.12.0"
|
||||
"react-icons@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "react-icons@npm:5.0.1"
|
||||
peerDependencies:
|
||||
react: "*"
|
||||
checksum: 5cc20509ca0b182f1e7bf42c271846c48f688c8922e2439f48728805adc93ba18476a13588cbe91ee43a2d03b2787e0dc0b5cc4b9c4e4ae3426f4464b3c1b734
|
||||
checksum: c4458c643ae32a793ddebc5fa1235c7ec051be1b131205510e8199d15a4c89221a501f95a71fa21c2da93e8dd225290e2e24bb80abd3fb85801e43009e692098
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -7225,27 +7225,27 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-router-dom@npm:^6.21.1":
|
||||
version: 6.21.1
|
||||
resolution: "react-router-dom@npm:6.21.1"
|
||||
"react-router-dom@npm:^6.21.2":
|
||||
version: 6.21.2
|
||||
resolution: "react-router-dom@npm:6.21.2"
|
||||
dependencies:
|
||||
"@remix-run/router": "npm:1.14.1"
|
||||
react-router: "npm:6.21.1"
|
||||
"@remix-run/router": "npm:1.14.2"
|
||||
react-router: "npm:6.21.2"
|
||||
peerDependencies:
|
||||
react: ">=16.8"
|
||||
react-dom: ">=16.8"
|
||||
checksum: 2d75bd889828fa5516ad076b44506656d826c365645e7079138cd0ef899db28a1b212f708a6c6e3b543ae11b96b2031f01201cc2fe1733dd4d9c5cbdd4d734ef
|
||||
checksum: 24d1470e68f11369776c623b8873c8cf0af476d102317cb3aa6b13b48c86908f10a6e51209ce24dccf40e429538d4e23fda796c190f2ff98f894cb476d51f44d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"react-router@npm:6.21.1":
|
||||
version: 6.21.1
|
||||
resolution: "react-router@npm:6.21.1"
|
||||
"react-router@npm:6.21.2":
|
||||
version: 6.21.2
|
||||
resolution: "react-router@npm:6.21.2"
|
||||
dependencies:
|
||||
"@remix-run/router": "npm:1.14.1"
|
||||
"@remix-run/router": "npm:1.14.2"
|
||||
peerDependencies:
|
||||
react: ">=16.8"
|
||||
checksum: 1220cc75e0c915a26dde9dbb6509a8f0b0163d96e5ad591af91d9bb5a92a18401718f8d872a03d1cb366e7a6216c165a5cadd12375adf97943f37d7f5c487a90
|
||||
checksum: 08701bfe9e7b860442dd0f3c6e36d3ea6106d86db5ec9da930fd56d5782a13b82612826de7dd31bb38832f3fa76437d7a0ca36e63a76256f62d5b738f529a48c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ void ESP8266React::begin() {
|
||||
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization");
|
||||
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Credentials", "true");
|
||||
}
|
||||
DefaultHeaders::Instance().addHeader("Server", networkSettings.hostname); // TODO use hostname
|
||||
DefaultHeaders::Instance().addHeader("Server", networkSettings.hostname);
|
||||
});
|
||||
_apSettingsService.begin();
|
||||
_ntpSettingsService.begin();
|
||||
|
||||
@@ -128,14 +128,16 @@ static void setup_commands(std::shared_ptr<Commands> & commands) {
|
||||
commands->add_command(ShellContext::MAIN,
|
||||
CommandFlags::USER,
|
||||
string_vector{"test"},
|
||||
string_vector{F_(name_optional), F_(data_optional)},
|
||||
string_vector{F_(name_optional), F_(data_optional), F_(id_optional)},
|
||||
[=](Shell & shell, const std::vector<std::string> & arguments) {
|
||||
if (arguments.empty()) {
|
||||
Test::run_test(shell, "default");
|
||||
} else if (arguments.size() == 1) {
|
||||
Test::run_test(shell, arguments.front());
|
||||
} else {
|
||||
} else if (arguments.size() == 2) {
|
||||
Test::run_test(shell, arguments[0].c_str(), arguments[1].c_str());
|
||||
} else {
|
||||
Test::run_test(shell, arguments[0].c_str(), arguments[1].c_str(), arguments[2].c_str());
|
||||
}
|
||||
});
|
||||
commands->add_command(ShellContext::MAIN, CommandFlags::USER, string_vector{"t"}, [=](Shell & shell, const std::vector<std::string> & arguments) {
|
||||
|
||||
32
src/mqtt.h
32
src/mqtt.h
@@ -77,20 +77,20 @@ class Mqtt {
|
||||
static bool queue_remove_topic(const char * topic);
|
||||
|
||||
static bool publish_ha_sensor_config(DeviceValue & dv, const char * model, const char * brand, const bool remove, const bool create_device_config = false);
|
||||
static bool publish_ha_sensor_config(uint8_t type,
|
||||
uint8_t tag,
|
||||
const char * const fullname,
|
||||
const char * const en_name,
|
||||
const uint8_t device_type,
|
||||
const char * const entity,
|
||||
const uint8_t uom,
|
||||
const bool remove,
|
||||
const bool has_cmd,
|
||||
const char * const ** options,
|
||||
uint8_t options_size,
|
||||
const int16_t dv_set_min,
|
||||
const uint32_t dv_set_max,
|
||||
const int8_t num_op,
|
||||
static bool publish_ha_sensor_config(uint8_t type,
|
||||
uint8_t tag,
|
||||
const char * const fullname,
|
||||
const char * const en_name,
|
||||
const uint8_t device_type,
|
||||
const char * const entity,
|
||||
const uint8_t uom,
|
||||
const bool remove,
|
||||
const bool has_cmd,
|
||||
const char * const ** options,
|
||||
uint8_t options_size,
|
||||
const int16_t dv_set_min,
|
||||
const uint32_t dv_set_max,
|
||||
const int8_t num_op,
|
||||
const JsonObjectConst dev_json);
|
||||
|
||||
static bool publish_system_ha_sensor_config(uint8_t type, const char * name, const char * entity, const uint8_t uom);
|
||||
@@ -167,6 +167,10 @@ class Mqtt {
|
||||
return entity_format_;
|
||||
}
|
||||
|
||||
static void entity_format(uint8_t n) {
|
||||
entity_format_ = n;
|
||||
}
|
||||
|
||||
static uint8_t discovery_type() {
|
||||
return discovery_type_;
|
||||
}
|
||||
|
||||
@@ -1467,7 +1467,7 @@ bool System::command_info(const char * value, const int8_t id, JsonObject output
|
||||
#if defined(EMSESP_TEST)
|
||||
// run a test, e.g. http://ems-esp/api?device=system&cmd=test&data=boiler
|
||||
bool System::command_test(const char * value, const int8_t id) {
|
||||
return Test::run_test(value, id);
|
||||
return Test::test(value, id);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
/*
|
||||
* EMS-ESP - https://github.com/emsesp/EMS-ESP
|
||||
* Copyright 2020-2023 Paul Derbyshire
|
||||
* Copyright 2020-2023 Paul Derbyshire
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -25,12 +24,19 @@ namespace emsesp {
|
||||
|
||||
// no shell, called via the API or 'call system test' command
|
||||
// or http://ems-esp/api?device=system&cmd=test&data=boiler
|
||||
bool Test::run_test(const char * command, int8_t id) {
|
||||
if ((command == nullptr) || (strlen(command) == 0)) {
|
||||
bool Test::test(const std::string & cmd, int8_t id1, int8_t id2) {
|
||||
if (cmd.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strcmp(command, "memory") == 0) {
|
||||
if (cmd == "add") {
|
||||
Mqtt::entity_format(Mqtt::entityFormat::SINGLE_LONG); // SINGLE_LONG, SINGLE_SHORT, MULTI_SHORT
|
||||
System::test_set_all_active(true); // include all entities and give them fake values
|
||||
add_device(id1, id2);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (cmd == "memory") {
|
||||
EMSESP::logger().notice("Testing memory by adding lots of devices and entities...");
|
||||
|
||||
System::test_set_all_active(true); // include all entities and give them fake values
|
||||
@@ -43,7 +49,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "general") == 0) {
|
||||
if (cmd == "general") {
|
||||
EMSESP::logger().info("Testing general. Adding a Boiler and Thermostat");
|
||||
|
||||
// System::test_set_all_active(true); // uncomment if we want to show all entities and give them fake values
|
||||
@@ -77,7 +83,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
//
|
||||
#ifdef EMSESP_STANDALONE
|
||||
|
||||
if (strcmp(command, "heat_exchange") == 0) {
|
||||
if (cmd == "heat_exchange") {
|
||||
EMSESP::logger().info("Testing heating exchange...");
|
||||
|
||||
add_device(0x08, 219); // Greenstar HIU/Logamax kompakt WS170
|
||||
@@ -89,7 +95,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "2thermostats") == 0) {
|
||||
if (cmd == "2thermostats") {
|
||||
EMSESP::logger().info("Testing with multiple thermostats...");
|
||||
|
||||
add_device(0x08, 123); // GB072
|
||||
@@ -121,7 +127,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "310") == 0) {
|
||||
if (cmd == "310") {
|
||||
EMSESP::logger().info("Adding a GB072/RC310 combo...");
|
||||
|
||||
add_device(0x08, 123); // GB072
|
||||
@@ -148,7 +154,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "gateway") == 0) {
|
||||
if (cmd == "gateway") {
|
||||
EMSESP::logger().info("Adding a Gateway...");
|
||||
|
||||
// add 0x48 KM200, via a version command
|
||||
@@ -168,7 +174,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "mixer") == 0) {
|
||||
if (cmd == "mixer") {
|
||||
EMSESP::logger().info("Adding a mixer...");
|
||||
|
||||
// add controller
|
||||
@@ -190,7 +196,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "boiler") == 0) {
|
||||
if (cmd == "boiler") {
|
||||
EMSESP::logger().info("Adding boiler...");
|
||||
add_device(0x08, 123); // Nefit Trendline
|
||||
|
||||
@@ -207,7 +213,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "thermostat") == 0) {
|
||||
if (cmd == "thermostat") {
|
||||
EMSESP::logger().info("Adding thermostat...");
|
||||
|
||||
add_device(0x10, 192); // FW120
|
||||
@@ -220,7 +226,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "solar") == 0) {
|
||||
if (cmd == "solar") {
|
||||
EMSESP::logger().info("Adding solar...");
|
||||
|
||||
add_device(0x30, 163); // SM100
|
||||
@@ -239,7 +245,7 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strcmp(command, "heatpump") == 0) {
|
||||
if (cmd == "heatpump") {
|
||||
EMSESP::logger().info("Adding heatpump...");
|
||||
|
||||
add_device(0x38, 200); // Enviline module
|
||||
@@ -258,11 +264,13 @@ bool Test::run_test(const char * command, int8_t id) {
|
||||
}
|
||||
|
||||
// These next tests are run from the Consol via the test command, so inherit the Shell
|
||||
void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const std::string & data) {
|
||||
void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const std::string & id1_s, const std::string & id2_s) {
|
||||
shell.add_flags(CommandFlags::ADMIN); // switch to su
|
||||
|
||||
// init stuff
|
||||
Mqtt::ha_enabled(true);
|
||||
Mqtt::entity_format(Mqtt::entityFormat::SINGLE_SHORT); // SINGLE_LONG, SINGLE_SHORT, MULTI_SHORT
|
||||
|
||||
EMSESP::rxservice_.ems_mask(EMSbus::EMS_MASK_BUDERUS);
|
||||
|
||||
// EMSESP::watch(EMSESP::Watch::WATCH_RAW); // raw mode
|
||||
@@ -275,11 +283,36 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
command = cmd;
|
||||
}
|
||||
|
||||
// extract params
|
||||
int8_t id1 = -1;
|
||||
int8_t id2 = -1;
|
||||
if (!id1_s.empty()) {
|
||||
if (id1_s[0] == '0' && id1_s[1] == 'x') {
|
||||
id1 = Helpers::hextoint(id1_s.c_str());
|
||||
} else {
|
||||
id1 = Helpers::atoint(id1_s.c_str());
|
||||
}
|
||||
}
|
||||
if (!id2_s.empty()) {
|
||||
id2 = Helpers::atoint(id2_s.c_str());
|
||||
}
|
||||
|
||||
bool ok = false;
|
||||
|
||||
if (command == "add") {
|
||||
shell.printfln("Testing Adding a device (product_id %d), with all values...", id2);
|
||||
test("add", id1, id2); // e.g. 8 172
|
||||
shell.invoke_command("show values");
|
||||
ok = true;
|
||||
}
|
||||
|
||||
// TODO Fix !
|
||||
// operating time compressor heating (uptimecompheating: 0 days 3 hours 27 minutes
|
||||
// concat!!!
|
||||
|
||||
if (command == "general") {
|
||||
shell.printfln("Testing adding a boiler, thermostat and sensors...");
|
||||
run_test("general");
|
||||
test("general");
|
||||
|
||||
// add sensors
|
||||
emsesp::EMSESP::analogsensor_.test();
|
||||
@@ -296,14 +329,14 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
// https://github.com/emsesp/EMS-ESP32/issues/869
|
||||
if (command == "memory") {
|
||||
shell.printfln("Testing memory by adding lots of devices and entities...");
|
||||
run_test("memory");
|
||||
test("memory");
|
||||
shell.invoke_command("show values");
|
||||
ok = true;
|
||||
}
|
||||
|
||||
if (command == "custom_entities") {
|
||||
shell.printfln("custom entities...");
|
||||
run_test("general");
|
||||
test("general");
|
||||
|
||||
#ifdef EMSESP_STANDALONE
|
||||
AsyncWebServerRequest request;
|
||||
@@ -318,7 +351,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "coldshot") {
|
||||
shell.printfln("Testing coldshot...");
|
||||
run_test("general");
|
||||
test("general");
|
||||
|
||||
#ifdef EMSESP_STANDALONE
|
||||
AsyncWebServerRequest request;
|
||||
@@ -370,7 +403,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "modes") {
|
||||
shell.printfln("Testing thermostat modes...");
|
||||
run_test("general");
|
||||
test("general");
|
||||
shell.invoke_command("call thermostat mode auto");
|
||||
shell.invoke_command("call thermostat mode Manuell"); // DE
|
||||
shell.invoke_command("call thermostat mode 1");
|
||||
@@ -506,13 +539,13 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "gateway") {
|
||||
shell.printfln("Testing Gateway...");
|
||||
run_test("gateway");
|
||||
test("gateway");
|
||||
ok = true;
|
||||
}
|
||||
|
||||
if (command == "310") {
|
||||
shell.printfln("Testing RC310...");
|
||||
run_test("310");
|
||||
test("310");
|
||||
shell.invoke_command("show devices");
|
||||
shell.invoke_command("show values");
|
||||
shell.invoke_command("call system publish");
|
||||
@@ -522,7 +555,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "heat_exchange") {
|
||||
shell.printfln("Testing heat exchange...");
|
||||
run_test("heat_exchange");
|
||||
test("heat_exchange");
|
||||
shell.invoke_command("show devices");
|
||||
shell.invoke_command("show values");
|
||||
ok = true;
|
||||
@@ -530,7 +563,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "2thermostats") {
|
||||
shell.printfln("Testing multiple thermostats...");
|
||||
run_test("2thermostats");
|
||||
test("2thermostats");
|
||||
shell.invoke_command("show values");
|
||||
shell.invoke_command("show devices");
|
||||
ok = true;
|
||||
@@ -542,8 +575,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::enabled(false); // turn off mqtt
|
||||
Mqtt::ha_enabled(false); // turn off ha
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
|
||||
JsonDocument doc; // some absurd high number
|
||||
for (const auto & emsdevice : EMSESP::emsdevices) {
|
||||
@@ -596,7 +629,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::ha_enabled(true);
|
||||
Mqtt::nested_format(1);
|
||||
|
||||
run_test("boiler");
|
||||
test("boiler");
|
||||
shell.invoke_command("show devices");
|
||||
shell.invoke_command("show values");
|
||||
shell.invoke_command("call boiler info");
|
||||
@@ -622,7 +655,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
if (command == "shower_alert") {
|
||||
shell.printfln("Testing Shower Alert...");
|
||||
|
||||
run_test("boiler");
|
||||
test("boiler");
|
||||
|
||||
// device type, command, data
|
||||
Command::call(EMSdevice::DeviceType::BOILER, "wwtapactivated", "false");
|
||||
@@ -650,10 +683,10 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::nested_format(1); // is nested
|
||||
// Mqtt::nested_format(2); // not nested
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
run_test("solar");
|
||||
run_test("mixer");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
test("solar");
|
||||
test("mixer");
|
||||
|
||||
shell.invoke_command("call system publish");
|
||||
shell.invoke_command("show mqtt");
|
||||
@@ -672,8 +705,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::nested_format(1);
|
||||
// Mqtt::send_response(false);
|
||||
|
||||
run_test("boiler");
|
||||
// run_test("thermostat");
|
||||
test("boiler");
|
||||
// test("thermostat");
|
||||
|
||||
// 0xC2
|
||||
// [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 08 AC 00 10 31 48 30 31 15 80 95 0B 0E 10 38 00 7F FF FF FF 08 AC 00 10 09 41 30
|
||||
@@ -692,8 +725,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::nested_format(1);
|
||||
// Mqtt::send_response(false);
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
|
||||
shell.invoke_command("call boiler wwseltemp");
|
||||
shell.invoke_command("call system publish");
|
||||
@@ -745,15 +778,13 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
}
|
||||
|
||||
if (command == "healthcheck") {
|
||||
uint8_t n = 0;
|
||||
if (!data.empty()) {
|
||||
n = Helpers::atoint(data.c_str());
|
||||
}
|
||||
|
||||
// n=1 = EMSESP::system_.HEALTHCHECK_NO_BUS
|
||||
// n=2 = EMSESP::system_.HEALTHCHECK_NO_NETWORK
|
||||
shell.printfln("Testing healthcheck with %d", n);
|
||||
EMSESP::system_.healthcheck(n);
|
||||
if (id1 == -1) {
|
||||
id1 = 0;
|
||||
}
|
||||
shell.printfln("Testing healthcheck with %d", id1);
|
||||
EMSESP::system_.healthcheck(id1);
|
||||
ok = true;
|
||||
}
|
||||
|
||||
@@ -763,7 +794,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::ha_enabled(true);
|
||||
// Mqtt::send_response(false);
|
||||
|
||||
run_test("thermostat");
|
||||
test("thermostat");
|
||||
|
||||
// shell.invoke_command("call thermostat seltemp");
|
||||
// shell.invoke_command("call system publish");
|
||||
@@ -794,7 +825,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::ha_enabled(true);
|
||||
// Mqtt::send_response(false);
|
||||
|
||||
run_test("boiler");
|
||||
test("boiler");
|
||||
|
||||
shell.invoke_command("call boiler wwseltemp");
|
||||
shell.invoke_command("call system publish");
|
||||
@@ -819,7 +850,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::ha_enabled(true);
|
||||
// Mqtt::send_response(false);
|
||||
|
||||
run_test("boiler");
|
||||
test("boiler");
|
||||
|
||||
shell.invoke_command("call boiler wwseltemp");
|
||||
shell.invoke_command("call system publish");
|
||||
@@ -842,8 +873,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
// EMSESP::bool_format(BOOL_FORMAT_10); // BOOL_FORMAT_10_STR
|
||||
EMSESP::system_.bool_format(BOOL_FORMAT_TRUEFALSE); // BOOL_FORMAT_TRUEFALSE_STR
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
|
||||
AsyncWebServerRequest request;
|
||||
JsonDocument doc;
|
||||
@@ -875,8 +906,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
EMSESP::system_.bool_format(BOOL_FORMAT_10); // BOOL_FORMAT_10_STR
|
||||
// EMSESP::bool_format(BOOL_FORMAT_TRUEFALSE); // BOOL_FORMAT_TRUEFALSE_STR
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
|
||||
EMSESP::mqtt_.incoming("ems-esp/boiler/wwseltemp", "59");
|
||||
ok = true;
|
||||
@@ -887,15 +918,15 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
shell.printfln("Testing API wwmode");
|
||||
Mqtt::ha_enabled(false);
|
||||
Mqtt::nested_format(1);
|
||||
run_test("310");
|
||||
test("310");
|
||||
|
||||
AsyncWebServerRequest request;
|
||||
request.method(HTTP_POST);
|
||||
JsonDocument doc;
|
||||
JsonVariant json;
|
||||
|
||||
char data[] = "{\"value\":\"off\"}";
|
||||
deserializeJson(doc, data);
|
||||
char odata[] = "{\"value\":\"off\"}";
|
||||
deserializeJson(doc, odata);
|
||||
json = doc.as<JsonVariant>();
|
||||
request.url("/api/thermostat/wwmode");
|
||||
EMSESP::webAPIService.webAPIService_post(&request, json);
|
||||
@@ -911,8 +942,8 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
Mqtt::nested_format(1);
|
||||
// Mqtt::send_response(true);
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
|
||||
AsyncWebServerRequest requestX;
|
||||
JsonDocument docX;
|
||||
@@ -1181,10 +1212,10 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
shell.printfln("Testing nested MQTT");
|
||||
Mqtt::ha_enabled(false); // turn off HA Discovery to stop the chatter
|
||||
|
||||
run_test("boiler");
|
||||
run_test("thermostat");
|
||||
run_test("solar");
|
||||
run_test("mixer");
|
||||
test("boiler");
|
||||
test("thermostat");
|
||||
test("solar");
|
||||
test("mixer");
|
||||
|
||||
// first with nested
|
||||
Mqtt::nested_format(1);
|
||||
@@ -1201,7 +1232,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
if (command == "thermostat") {
|
||||
shell.printfln("Testing adding a thermostat FW120...");
|
||||
|
||||
run_test("thermostat");
|
||||
test("thermostat");
|
||||
shell.invoke_command("show values");
|
||||
shell.invoke_command("call system publish");
|
||||
|
||||
@@ -1229,7 +1260,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "solar") {
|
||||
shell.printfln("Testing Solar");
|
||||
run_test("solar");
|
||||
test("solar");
|
||||
|
||||
uart_telegram("30 00 FF 0A 02 6A 04"); // SM100 pump on (1)sh
|
||||
EMSESP::show_device_values(shell);
|
||||
@@ -1243,7 +1274,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
|
||||
if (command == "heatpump") {
|
||||
shell.printfln("Testing Heat Pump");
|
||||
run_test("heatpump");
|
||||
test("heatpump");
|
||||
shell.invoke_command("call");
|
||||
shell.invoke_command("call heatpump info");
|
||||
ok = true;
|
||||
@@ -1698,7 +1729,7 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd, const
|
||||
if (command == "mixer") {
|
||||
shell.printfln("Testing Mixer...");
|
||||
|
||||
run_test("mixer");
|
||||
test("mixer");
|
||||
|
||||
// check for error "No telegram type handler found for ID 0x255 (src 0x20)"
|
||||
uart_telegram({0xA0, 0x00, 0xFF, 0x00, 0x01, 0x55, 0x00, 0x1A});
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define EMSESP_TEST_H
|
||||
|
||||
#include "emsesp.h"
|
||||
|
||||
#include <ESPAsyncWebServer.h>
|
||||
|
||||
namespace emsesp {
|
||||
@@ -60,8 +61,8 @@ namespace emsesp {
|
||||
|
||||
class Test {
|
||||
public:
|
||||
static void run_test(uuid::console::Shell & shell, const std::string & command, const std::string & data = "");
|
||||
static bool run_test(const char * command, int8_t id = 0);
|
||||
static void run_test(uuid::console::Shell & shell, const std::string & command, const std::string & id1 = "", const std::string & id2 = "");
|
||||
static bool test(const std::string & command, int8_t id1 = -1, int8_t id2 = -1);
|
||||
static void dummy_mqtt_commands(const char * message);
|
||||
static void rx_telegram(const std::vector<uint8_t> & data);
|
||||
static void uart_telegram(const std::vector<uint8_t> & rx_data);
|
||||
|
||||
@@ -73,7 +73,7 @@ StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & web
|
||||
JsonDocument doc;
|
||||
deserializeJson(doc, json);
|
||||
root = doc.as<JsonObject>();
|
||||
Serial.println(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(" Using fake custom entity file: ");
|
||||
serializeJson(root, Serial);
|
||||
Serial.println(COLOR_RESET);
|
||||
|
||||
@@ -103,7 +103,7 @@ StateUpdateResult WebCustomization::update(JsonObject root, WebCustomization & c
|
||||
JsonDocument doc;
|
||||
deserializeJson(doc, json);
|
||||
root = doc.as<JsonObject>();
|
||||
Serial.println(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(" Using fake customization file: ");
|
||||
serializeJson(root, Serial);
|
||||
Serial.println(COLOR_RESET);
|
||||
|
||||
@@ -62,7 +62,7 @@ StateUpdateResult WebScheduler::update(JsonObject root, WebScheduler & webSchedu
|
||||
JsonDocument doc;
|
||||
deserializeJson(doc, json);
|
||||
root = doc.as<JsonObject>();
|
||||
Serial.println(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(COLOR_BRIGHT_MAGENTA);
|
||||
Serial.print(" Using fake scheduler file: ");
|
||||
serializeJson(root, Serial);
|
||||
Serial.println(COLOR_RESET);
|
||||
|
||||
Reference in New Issue
Block a user