├── package.json ├── web ├── src │ ├── app │ │ ├── pages │ │ │ ├── settings │ │ │ │ ├── SettingsPage.scss │ │ │ │ ├── SettingsPage.html │ │ │ │ └── SettingsPage.js │ │ │ ├── BasePage.js │ │ │ └── liveData │ │ │ │ ├── LiveDataPage.scss │ │ │ │ ├── LiveDataPage.html │ │ │ │ └── LiveDataPage.js │ │ ├── components │ │ │ ├── confirmation │ │ │ │ ├── Confirmation.html │ │ │ │ ├── Confirmation.scss │ │ │ │ └── Confirmation.js │ │ │ └── menu │ │ │ │ ├── Menu.scss │ │ │ │ └── Menu.js │ │ ├── mixins │ │ │ ├── NativeEventsMixin.js │ │ │ ├── EventsMixin.js │ │ │ └── NotifyUpgradableMixin.js │ │ ├── Router.js │ │ └── utils │ │ │ ├── Formatter.js │ │ │ └── WebSocketWrapper.js │ ├── statics │ │ ├── favicon.ico │ │ ├── icons-192.png │ │ ├── icons-512.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── service-worker.js │ │ ├── manifest.json │ │ └── icons-vector.svg │ ├── images │ │ ├── back.svg │ │ ├── reset.svg │ │ ├── reload.svg │ │ ├── reboot.svg │ │ ├── save.svg │ │ ├── app-spinner.svg │ │ ├── settings.svg │ │ └── menu.svg │ ├── svgo.config.js │ ├── index.js │ └── main.scss ├── package.json └── webpack.config.js ├── data ├── main.js.gz ├── main.css.gz ├── favicon.ico.gz ├── icons-192.png ├── icons-512.png ├── index.html.gz ├── favicon-16x16.png ├── favicon-32x32.png ├── manifest.json.gz ├── icons-vector.svg.gz └── service-worker.js.gz ├── env.example.json ├── .gitignore ├── README.md ├── .vscode ├── extensions.json └── settings.json ├── include ├── NodeData.h ├── Cfg.h ├── Display.h ├── TimeSync.h ├── Network.h ├── Module.h ├── Pzem.h ├── Settings.h ├── Mqtt.h └── WebServer.h ├── src ├── TimeSync.cpp ├── Module.cpp ├── Display.cpp ├── Network.cpp ├── Settings.cpp ├── Pzem.cpp ├── main.cpp ├── Mqtt.cpp └── WebServer.cpp ├── LICENSE ├── lib └── README └── platformio.ini /package.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /web/src/app/pages/settings/SettingsPage.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/main.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/main.js.gz -------------------------------------------------------------------------------- /data/main.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/main.css.gz -------------------------------------------------------------------------------- /data/favicon.ico.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/favicon.ico.gz -------------------------------------------------------------------------------- /data/icons-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/icons-192.png -------------------------------------------------------------------------------- /data/icons-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/icons-512.png -------------------------------------------------------------------------------- /data/index.html.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/index.html.gz -------------------------------------------------------------------------------- /env.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "otaHost": "192.168.0.128", 3 | "otaPwd": "OtaPassword" 4 | } -------------------------------------------------------------------------------- /data/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/favicon-16x16.png -------------------------------------------------------------------------------- /data/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/favicon-32x32.png -------------------------------------------------------------------------------- /data/manifest.json.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/manifest.json.gz -------------------------------------------------------------------------------- /data/icons-vector.svg.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/icons-vector.svg.gz -------------------------------------------------------------------------------- /data/service-worker.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/data/service-worker.js.gz -------------------------------------------------------------------------------- /web/src/statics/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/web/src/statics/favicon.ico -------------------------------------------------------------------------------- /web/src/statics/icons-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/web/src/statics/icons-192.png -------------------------------------------------------------------------------- /web/src/statics/icons-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/web/src/statics/icons-512.png -------------------------------------------------------------------------------- /web/src/statics/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/web/src/statics/favicon-16x16.png -------------------------------------------------------------------------------- /web/src/statics/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strange-v/PowerMonitor/HEAD/web/src/statics/favicon-32x32.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .pio 2 | .vscode/.browse.c_cpp.db* 3 | .vscode/c_cpp_properties.json 4 | .vscode/launch.json 5 | .vscode/ipch 6 | env.json 7 | node_modules 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PowerMonitor 2 | Yet another device that monitors power, current, voltage, frequency, power factor, and energy. The live data is available on a screen or mobile-friendly web app. 3 | 4 | More details on [hackaday.io](https://hackaday.io/project/183312-power-monitoring). 5 | -------------------------------------------------------------------------------- /web/src/images/back.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/app/components/confirmation/Confirmation.html: -------------------------------------------------------------------------------- 1 |