#751 boot time when NTP connected

This commit is contained in:
proddy
2022-11-28 21:14:38 +01:00
parent 12b027110e
commit d5592e5662
6 changed files with 115 additions and 102 deletions

View File

@@ -1,5 +1,5 @@
{
"adapter": "react",
"baseLocale": "pl",
"$schema": "https://unpkg.com/typesafe-i18n@5.17.0/schema/typesafe-i18n.json"
"$schema": "https://unpkg.com/typesafe-i18n@5.17.1/schema/typesafe-i18n.json"
}

View File

@@ -11,8 +11,8 @@
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@msgpack/msgpack": "^2.8.0",
"@mui/icons-material": "^5.10.15",
"@mui/material": "^5.10.15",
"@mui/icons-material": "^5.10.16",
"@mui/material": "^5.10.16",
"@table-library/react-table-library": "4.0.23",
"@types/lodash": "^4.14.190",
"@types/node": "^18.11.9",
@@ -34,7 +34,7 @@
"react-router-dom": "^6.4.3",
"react-scripts": "5.0.1",
"sockette": "^2.0.6",
"typesafe-i18n": "^5.17.0",
"typesafe-i18n": "^5.17.1",
"typescript": "^4.9.3"
},
"devDependencies": {
@@ -3091,14 +3091,14 @@
}
},
"node_modules/@mui/base": {
"version": "5.0.0-alpha.107",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.107.tgz",
"integrity": "sha512-HX/BD8CSe+Y/dpbZ5aKJScJhKQ/Hw6du2yd68Upv2cO67bwixyZ64h3aNcdDu7RQzI7nrZQm0JykffP1Orgq0g==",
"version": "5.0.0-alpha.108",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.108.tgz",
"integrity": "sha512-KjzRUts2i/ODlMfywhFTqTzQl+Cr9nlDSZxJcnYjrbOV/iRyQNBTDoiFJt+XEdRi0fZBHnk74AFbnP56ehybsA==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@emotion/is-prop-valid": "^1.2.0",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"@popperjs/core": "^2.11.6",
"clsx": "^1.2.1",
"prop-types": "^15.8.1",
@@ -3123,18 +3123,18 @@
}
},
"node_modules/@mui/core-downloads-tracker": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.15.tgz",
"integrity": "sha512-xFcS0LpdF0Q1qJrrNsYUv9PU+ovvhCEPTOMw2jcpEFtl3CA87dLpvztORR5oE2UBFjWF7qLQLOwboQU1+xC7Cw==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.16.tgz",
"integrity": "sha512-eK9+olw2ZbXX+vGrtKnN01/vLP1aX0Lq0xok35bqWM1aB93Dcmky/xPNf8h31oJ/C+IzJBjZaZMEDzVZg4Qc0A==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui"
}
},
"node_modules/@mui/icons-material": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.15.tgz",
"integrity": "sha512-fXkz7CtYTt4AH4YYT67VFhM/A3YCUqZGGLp/3BlzRPQRNEfFKknw3MgG1S5UYrY5weti8jxMx3mwwfhVP8OMhQ==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz",
"integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==",
"dependencies": {
"@babel/runtime": "^7.20.1"
},
@@ -3157,16 +3157,16 @@
}
},
"node_modules/@mui/material": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.15.tgz",
"integrity": "sha512-OqoHfUtVMppFHgk2M95j+pR8MWfLKhzSdz4aKEfIpFrHIHbYang+oY7Iy/exX+vqpZSEGHgHQ0cGX0hGTGx9cg==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.16.tgz",
"integrity": "sha512-JSHcDQQ+k30NKkCM/0KX6jq4F5LOrbFKZpS+cEl7scZWOCJpUPH5ccAT5a7O8wzrgNZ8Y9PnwzNvWBrfShpJFw==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@mui/base": "5.0.0-alpha.107",
"@mui/core-downloads-tracker": "^5.10.15",
"@mui/system": "^5.10.15",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/base": "5.0.0-alpha.108",
"@mui/core-downloads-tracker": "^5.10.16",
"@mui/system": "^5.10.16",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"@types/react-transition-group": "^4.4.5",
"clsx": "^1.2.1",
"csstype": "^3.1.1",
@@ -3201,12 +3201,12 @@
}
},
"node_modules/@mui/private-theming": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.15.tgz",
"integrity": "sha512-l7CsUj5kYdYz118/JHSvZZTYE9WnIWwln0td5jYATnYw9cNX4ygD6AkKOUYZ1Jitp1YLJqcO8jCP9E5/Nql9IQ==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz",
"integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@mui/utils": "^5.10.15",
"@mui/utils": "^5.10.16",
"prop-types": "^15.8.1"
},
"engines": {
@@ -3227,9 +3227,9 @@
}
},
"node_modules/@mui/styled-engine": {
"version": "5.10.14",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz",
"integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz",
"integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@emotion/cache": "^11.10.5",
@@ -3258,15 +3258,15 @@
}
},
"node_modules/@mui/system": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.15.tgz",
"integrity": "sha512-WZmgmpYTMXAaD++QetaaM/miwhNh1JJY1dH7MJH/3Fuv3r3gnhfzE6A55lDqWxkQmlWUO2DCn/cnNZ0FkSdZUg==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.16.tgz",
"integrity": "sha512-OqI9B1jZ9zQ/dmoqseku4CzdEs9DbLiiMOaWxC3WeAJxM1UavlCgXz0encqm93LIlmSL7TjuHN1/rW8BJCnU8A==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@mui/private-theming": "^5.10.15",
"@mui/styled-engine": "^5.10.14",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/private-theming": "^5.10.16",
"@mui/styled-engine": "^5.10.16",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"clsx": "^1.2.1",
"csstype": "^3.1.1",
"prop-types": "^15.8.1"
@@ -3297,9 +3297,9 @@
}
},
"node_modules/@mui/types": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz",
"integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==",
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz",
"integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==",
"peerDependencies": {
"@types/react": "*"
},
@@ -3310,9 +3310,9 @@
}
},
"node_modules/@mui/utils": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.15.tgz",
"integrity": "sha512-6AW4MLBUijJi31hxx+6utTJM2q/4hbO+QiMdtwM+f4Iy+BfFnh/elhb08apxNYLfuugPnXXpkDmzEjg+8uDU9g==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz",
"integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==",
"dependencies": {
"@babel/runtime": "^7.20.1",
"@types/prop-types": "^15.7.5",
@@ -16424,9 +16424,9 @@
}
},
"node_modules/typesafe-i18n": {
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/typesafe-i18n/-/typesafe-i18n-5.17.0.tgz",
"integrity": "sha512-YRy/WdQizZfrW21v5dzsOOTuEmkaMx4Z2G0QjgxWBgS0TNf10Sk/rPwqtcnR9VOAyRCJt/GtZqgDzFRvdsB3zA==",
"version": "5.17.1",
"resolved": "https://registry.npmjs.org/typesafe-i18n/-/typesafe-i18n-5.17.1.tgz",
"integrity": "sha512-SWgsOPHsewtzo4O197cvLPOk8iv7VX/5W+DoM42SoP6HTUQxz610BJSSYaSsu0Yx1ilCLvBtKtBVTzA54A2qTQ==",
"bin": {
"typesafe-i18n": "cli/typesafe-i18n.mjs"
},
@@ -19640,14 +19640,14 @@
"integrity": "sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ=="
},
"@mui/base": {
"version": "5.0.0-alpha.107",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.107.tgz",
"integrity": "sha512-HX/BD8CSe+Y/dpbZ5aKJScJhKQ/Hw6du2yd68Upv2cO67bwixyZ64h3aNcdDu7RQzI7nrZQm0JykffP1Orgq0g==",
"version": "5.0.0-alpha.108",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.108.tgz",
"integrity": "sha512-KjzRUts2i/ODlMfywhFTqTzQl+Cr9nlDSZxJcnYjrbOV/iRyQNBTDoiFJt+XEdRi0fZBHnk74AFbnP56ehybsA==",
"requires": {
"@babel/runtime": "^7.20.1",
"@emotion/is-prop-valid": "^1.2.0",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"@popperjs/core": "^2.11.6",
"clsx": "^1.2.1",
"prop-types": "^15.8.1",
@@ -19655,29 +19655,29 @@
}
},
"@mui/core-downloads-tracker": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.15.tgz",
"integrity": "sha512-xFcS0LpdF0Q1qJrrNsYUv9PU+ovvhCEPTOMw2jcpEFtl3CA87dLpvztORR5oE2UBFjWF7qLQLOwboQU1+xC7Cw=="
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.16.tgz",
"integrity": "sha512-eK9+olw2ZbXX+vGrtKnN01/vLP1aX0Lq0xok35bqWM1aB93Dcmky/xPNf8h31oJ/C+IzJBjZaZMEDzVZg4Qc0A=="
},
"@mui/icons-material": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.15.tgz",
"integrity": "sha512-fXkz7CtYTt4AH4YYT67VFhM/A3YCUqZGGLp/3BlzRPQRNEfFKknw3MgG1S5UYrY5weti8jxMx3mwwfhVP8OMhQ==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.16.tgz",
"integrity": "sha512-jjCc0IF6iyLiucQCu5igg3fOscSqbbvRCmyRxXgzOcLR56B0sg2L8o+ZfJ0dAg59+wvgtXaxvjze/mJg0B4iWA==",
"requires": {
"@babel/runtime": "^7.20.1"
}
},
"@mui/material": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.15.tgz",
"integrity": "sha512-OqoHfUtVMppFHgk2M95j+pR8MWfLKhzSdz4aKEfIpFrHIHbYang+oY7Iy/exX+vqpZSEGHgHQ0cGX0hGTGx9cg==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.16.tgz",
"integrity": "sha512-JSHcDQQ+k30NKkCM/0KX6jq4F5LOrbFKZpS+cEl7scZWOCJpUPH5ccAT5a7O8wzrgNZ8Y9PnwzNvWBrfShpJFw==",
"requires": {
"@babel/runtime": "^7.20.1",
"@mui/base": "5.0.0-alpha.107",
"@mui/core-downloads-tracker": "^5.10.15",
"@mui/system": "^5.10.15",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/base": "5.0.0-alpha.108",
"@mui/core-downloads-tracker": "^5.10.16",
"@mui/system": "^5.10.16",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"@types/react-transition-group": "^4.4.5",
"clsx": "^1.2.1",
"csstype": "^3.1.1",
@@ -19687,19 +19687,19 @@
}
},
"@mui/private-theming": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.15.tgz",
"integrity": "sha512-l7CsUj5kYdYz118/JHSvZZTYE9WnIWwln0td5jYATnYw9cNX4ygD6AkKOUYZ1Jitp1YLJqcO8jCP9E5/Nql9IQ==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz",
"integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==",
"requires": {
"@babel/runtime": "^7.20.1",
"@mui/utils": "^5.10.15",
"@mui/utils": "^5.10.16",
"prop-types": "^15.8.1"
}
},
"@mui/styled-engine": {
"version": "5.10.14",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz",
"integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz",
"integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==",
"requires": {
"@babel/runtime": "^7.20.1",
"@emotion/cache": "^11.10.5",
@@ -19708,30 +19708,30 @@
}
},
"@mui/system": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.15.tgz",
"integrity": "sha512-WZmgmpYTMXAaD++QetaaM/miwhNh1JJY1dH7MJH/3Fuv3r3gnhfzE6A55lDqWxkQmlWUO2DCn/cnNZ0FkSdZUg==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.16.tgz",
"integrity": "sha512-OqI9B1jZ9zQ/dmoqseku4CzdEs9DbLiiMOaWxC3WeAJxM1UavlCgXz0encqm93LIlmSL7TjuHN1/rW8BJCnU8A==",
"requires": {
"@babel/runtime": "^7.20.1",
"@mui/private-theming": "^5.10.15",
"@mui/styled-engine": "^5.10.14",
"@mui/types": "^7.2.1",
"@mui/utils": "^5.10.15",
"@mui/private-theming": "^5.10.16",
"@mui/styled-engine": "^5.10.16",
"@mui/types": "^7.2.2",
"@mui/utils": "^5.10.16",
"clsx": "^1.2.1",
"csstype": "^3.1.1",
"prop-types": "^15.8.1"
}
},
"@mui/types": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz",
"integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==",
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz",
"integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==",
"requires": {}
},
"@mui/utils": {
"version": "5.10.15",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.15.tgz",
"integrity": "sha512-6AW4MLBUijJi31hxx+6utTJM2q/4hbO+QiMdtwM+f4Iy+BfFnh/elhb08apxNYLfuugPnXXpkDmzEjg+8uDU9g==",
"version": "5.10.16",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz",
"integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==",
"requires": {
"@babel/runtime": "^7.20.1",
"@types/prop-types": "^15.7.5",
@@ -29109,9 +29109,9 @@
}
},
"typesafe-i18n": {
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/typesafe-i18n/-/typesafe-i18n-5.17.0.tgz",
"integrity": "sha512-YRy/WdQizZfrW21v5dzsOOTuEmkaMx4Z2G0QjgxWBgS0TNf10Sk/rPwqtcnR9VOAyRCJt/GtZqgDzFRvdsB3zA==",
"version": "5.17.1",
"resolved": "https://registry.npmjs.org/typesafe-i18n/-/typesafe-i18n-5.17.1.tgz",
"integrity": "sha512-SWgsOPHsewtzo4O197cvLPOk8iv7VX/5W+DoM42SoP6HTUQxz610BJSSYaSsu0Yx1ilCLvBtKtBVTzA54A2qTQ==",
"requires": {}
},
"typescript": {

View File

@@ -7,8 +7,8 @@
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@msgpack/msgpack": "^2.8.0",
"@mui/icons-material": "^5.10.15",
"@mui/material": "^5.10.15",
"@mui/icons-material": "^5.10.16",
"@mui/material": "^5.10.16",
"@table-library/react-table-library": "4.0.23",
"@types/lodash": "^4.14.190",
"@types/node": "^18.11.9",
@@ -30,7 +30,7 @@
"react-router-dom": "^6.4.3",
"react-scripts": "5.0.1",
"sockette": "^2.0.6",
"typesafe-i18n": "^5.17.0",
"typesafe-i18n": "^5.17.1",
"typescript": "^4.9.3"
},
"scripts": {

View File

@@ -50,7 +50,7 @@ void NTPSettingsService::configureNTP() {
emsesp::EMSESP::system_.ntp_connected(false);
if (connected_ && _state.enabled) {
emsesp::EMSESP::logger().info("Starting NTP");
sntp_set_sync_interval(3600000); // onehour
sntp_set_sync_interval(3600000); // one hour
sntp_set_time_sync_notification_cb(ntp_received);
configTzTime(_state.tzFormat.c_str(), _state.server.c_str());
} else {
@@ -83,4 +83,5 @@ void NTPSettingsService::configureTime(AsyncWebServerRequest * request, JsonVari
void NTPSettingsService::ntp_received(struct timeval * tv) {
// emsesp::EMSESP::logger().info("NTP sync to %d sec", tv->tv_sec);
emsesp::EMSESP::system_.ntp_connected(true);
emsesp::EMSESP::system_.send_info_mqtt("connected");
}

View File

@@ -540,6 +540,16 @@ void System::send_info_mqtt(const char * event_str) {
StaticJsonDocument<EMSESP_JSON_SIZE_MEDIUM> doc;
doc["event"] = event_str;
doc["version"] = EMSESP_APP_VERSION;
// if NTP is enabled send the boot_time in local time in ISO 8601 format (eg: 2022-11-15 20:46:38)
// https://github.com/emsesp/EMS-ESP32/issues/751
if (ntp_connected()) {
char time_string[25];
time_t now = time(nullptr); // grab the current instant in unix seconds
strftime(time_string, 25, "%F %T", localtime(&now));
doc["boot_time"] = time_string;
}
#ifndef EMSESP_STANDALONE
if (EMSESP::system_.ethernet_connected()) {
doc["connection"] = "ethernet";
@@ -582,7 +592,7 @@ bool System::heartbeat_json(JsonObject & output) {
output["uptime"] = uuid::log::format_timestamp_ms(uuid::get_uptime_ms(), 3);
output["uptime_sec"] = uuid::get_uptime_sec();
bool value_b = EMSESP::system_.ntp_connected();
bool value_b = ntp_connected();
if (Mqtt::ha_enabled()) {
char s[12];
output["ntp_status"] = Helpers::render_boolean(s, value_b); // for HA always render as string
@@ -1404,10 +1414,19 @@ std::string System::reset_reason(uint8_t cpu) const {
// set NTP status
void System::ntp_connected(bool b) {
if (b != ntp_connected_) {
LOG_INFO(b ? "NTP connected" : "NTP disconnected");
LOG_INFO(b ? "NTP connected" : "NTP disconnected"); // if changed report it
}
ntp_connected_ = b;
ntp_last_check_ = b ? uuid::get_uptime_sec() : 0;
}
// get NTP status
bool System::ntp_connected() {
// timeout 2 hours, ntp sync is normally every hour.
if ((uuid::get_uptime_sec() - ntp_last_check_ > 7201) && ntp_connected_) {
ntp_connected(false);
}
return ntp_connected_;
}
} // namespace emsesp

View File

@@ -180,14 +180,7 @@ class System {
}
void ntp_connected(bool b);
bool ntp_connected() {
// timeout 2 hours, ntp sync is normally every hour.
if ((uuid::get_uptime_sec() - ntp_last_check_ > 7201) && ntp_connected_) {
ntp_connected(false);
}
return ntp_connected_;
}
bool ntp_connected();
bool network_connected() {
#ifndef EMSESP_STANDALONE