{"id":25149541,"url":"https://github.com/lucsorel/watts-app","last_synced_at":"2026-05-09T15:11:01.874Z","repository":{"id":68587425,"uuid":"46116742","full_name":"lucsorel/watts-app","owner":"lucsorel","description":"A sample application demonstrating how big data and connected objects can help energy monitoring.","archived":false,"fork":false,"pushed_at":"2017-05-24T19:11:40.000Z","size":69,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-08T21:34:18.185Z","etag":null,"topics":["energy-monitor","factory","modeling","rxjs","scikit-learn","smart-energy","socket-io","zeromq"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucsorel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-11-13T10:53:46.000Z","updated_at":"2017-11-10T03:37:14.000Z","dependencies_parsed_at":"2023-02-26T11:16:06.577Z","dependency_job_id":null,"html_url":"https://github.com/lucsorel/watts-app","commit_stats":{"total_commits":50,"total_committers":3,"mean_commits":"16.666666666666668","dds":"0.19999999999999996","last_synced_commit":"5afceb6b700567561fb9e90632990307cd8c386d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucsorel%2Fwatts-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucsorel%2Fwatts-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucsorel%2Fwatts-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucsorel%2Fwatts-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucsorel","download_url":"https://codeload.github.com/lucsorel/watts-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246961927,"owners_count":20861182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["energy-monitor","factory","modeling","rxjs","scikit-learn","smart-energy","socket-io","zeromq"],"created_at":"2025-02-08T21:29:24.557Z","updated_at":"2026-05-09T15:11:01.822Z","avatar_url":"https://github.com/lucsorel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A sample application demonstrating how big data and connected objects can help energy monitoring.\n\nThe application models a basic `factory` which is monitored by different probes, whose approximative values are aggregated in a map-reduce manner to provide an estimation of the factory temperature evolution.\n\n# Install and run Watts App\nThis project runs on a NodeJS backend. Version 4.x was used. It can be installed easily on Linux systems with:\n```bash\nsudo apt-get install curl\ncurl -sL https://deb.nodesource.com/setup_4.x | sudo bash -\nsudo apt-get install nodejs\n```\n\nWhen upgrading from an older version (check with `nodejs --version`), remove ``nodejs`` and ``npm`` beforehand:\n```bash\nsudo apt-get purge nodejs npm\n```\n\n* then clone this repository (`git clone https://github.com/lucsorel/watts-app.git`)\n* install the dependencies with `npm i`\n* two ways to start the application:\n  * start the web server with `npm start` and view the web app in your browser at [http://localhost:3030/](http://localhost:3030/)\n  * OR start the server and wrap the web app in a desktop window with `npm run desktop`. It uses the [electron.atom.io](http://electron.atom.io/) technology\n\nUnit tests can be run with `npm test`.\n\n# Modeling\nThe factory and its heat sources are modeled in a very rudimentary way. Its purposes is to create a dynamic temperature environment which will be monitored blindly by the probes.\n\n## Heat source\nA `heat source` (like a heating system, a furnace, an hydraulic press) is characterized by:\n* a `contribution temperature`: the maximum heat it brings to its environment. For example, we can assume a heating system will increase the temperature of its environment by 10°C max\n* an `inertia duration`: the time (in hours) it takes for the heating system to be at its contribution temperature. In the same manner, this duration is used to estimate the decay of the contributed heat once the source is tuned off\n* `activity` periods: laps of time (between a `start` and an `end` hours) during which the source is on\n\nThe effects of overlapping activities (for the same heat source) adds up to simulate the contribution of different heaters.\n\n## Factory\nA factory is characterized by:\n* an `idle temperature`, which is the temperature without any heat source\n* the `heat sources` installed in the factory, each one weighted by its relative contribution. For example, a furnace can be installed in the factory with a contribution heat of 20°c, but this heat will be weighted by 0.25 if we want to model that the furnace affects only 25% of the factory temperature\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucsorel%2Fwatts-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucsorel%2Fwatts-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucsorel%2Fwatts-app/lists"}