MyEMS

简介: MyEMS开源能源管理系统用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力实现碳达峰碳中和目标!

数据库
为MyEMS安装数据库架构和脚本。

cd myems/database/install

mysql -u root -p < myems_billing_baseline_db.sql

mysql -u root -p < myems_billing_db.sql

mysql -u root -p < myems_carbon_db.sql

mysql -u root -p < myems_energy_baseline_db.sql

mysql -u root -p < myems_energy_db.sql

mysql -u root -p < myems_energy_model_db.sql

mysql -u root -p < myems_fdd_db.sql

mysql -u root -p < myems_historical_db.sql

mysql -u root -p < myems_production_db.sql

mysql -u root -p < myems_reporting_db.sql

mysql -u root -p < myems_system_db.sql

mysql -u root -p < myems_user_db.sql

Windows上的Docker
1.安装docker,npm

2.数据库添加访问权限

mysql> CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%';
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
复制
3.在Windows上使用Docker部署MyEMS

第1步 数据库
第2步 myems-api​
在本节中,您将在Docker上安装myems-api。

将源代码复制到根目录
cp -r myems/myems-api c:\
cd c:\myems-api
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-api .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-api .
复制
运行Docker容器
在主机上,新建文件夹c:\myems-upload, 将此文件夹绑定到容器,并将.env绑定到容器:

docker run -d -p 8000:8000 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\myems-api.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-api myems/myems-api
复制
-d 在后台运行容器并打印容器ID
-p 向主机发布容器的端口,8000:8000(主机:容器)将容器的端口8000(右侧)绑定到主机的TCP端口8000(左侧)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录,-v将为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

如果您想将镜像迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-api.tar myems/myems-api
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-api.tar
复制
第3步 myems-admin​
在本节中,您将在Docker上安装myems-admin。

将源代码复制到根目录
cp -r myems/myems-admin c:\
cd c:\myems-admin
复制
警告

手动将nginx.conf中的127.00.1:8000替换为实际的HOSTIP地址和myems-api端口

notepad nginx.conf
复制
proxy_pass http://127.0.0.1:8000/;
复制
用源代码编译镜像
docker build -t myems/myems-admin .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-admin .
复制
运行Docker容器
在主机上,新建文件夹c:\myems-upload, 将此文件夹绑定挂载到容器,并绑定挂载nginx.conf到容器:

docker run -d -p 8001:8001 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\myems-admin/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-admin myems/myems-admin
复制
-d 在后台运行容器并打印容器ID
-p 将容器的端口发布到主机,8001:8001(主机:容器)将容器的8001端口(右侧)绑定到主机的TCP端口8001(左侧)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
如果您想将镜像迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-admin.tar myems/myems-admin
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-admin.tar
复制
第4步 myems-modbus-tcp​
在本节中,您将在Docker上安装myems-modbus-tcp。

将源代码复制到根目录
cp -r myems/myems-modbus-tcp c:\
cd c:\myems-modbus-tcp
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-modbus-tcp .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
复制
运行Docker容器 (以管理员身份运行)
docker run -d -v c:\myems-modbus-tcp.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-modbus-tcp myems/myems-modbus-tcp
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-modbus-tcp.tar
复制
第5步 myems-cleaning​
在本节中,您将在Docker上安装myems-cleaning。

将源代码复制到根目录
cp -r myems/myems-cleaning c:\
cd c:\myems-cleaning
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-cleaning .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-cleaning .
复制
运行Docker容器 (以管理员身份运行)
docker run -d -v c:\myems-cleaning.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-cleaning myems/myems-cleaning
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-cleaning.tar myems/myems-cleaning
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-cleaning.tar
复制
第6步 myems-normalization​
在本节中,您将在Docker上安装myems-normalization。

将源代码复制到根目录
cp -r myems/myems-normalization c:\
cd c:\myems-normalization
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-normalization .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-normalization .
复制
运行Docker容器 (以管理员身份运行)
docker run -d -v c:\myems-normalization.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-normalization myems/myems-normalization
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-normalization.tar myems/myems-normalization
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-normalization.tar
复制
第7步 myems-aggregation​
在本节中,您将在Docker上安装myems-aggregation。

将源代码复制到根目录
cp -r myems/myems-aggregation c:\
cd c:\myems-aggregation
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-aggregation .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-aggregation .
复制
运行Docker容器 (以管理员身份运行)
docker run -d -v c:\myems-aggregation.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-aggregation myems/myems-aggregation
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
将镜像导出到tarball文件
docker save --output myems-aggregation.tar myems/myems-aggregation
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-aggregation.tar
复制
第8步 myems-web​
在本节中,您将在Docker上安装myems-web。

如有必要,检查并更改配置文件:
cd myems/myems-web
notepad src/config.js
复制
警告

将nginx.conf中的127.00.1:8000替换为真正的HOST IP和myems-api端口

cd myems/myems-web
notepad nginx.conf
复制
将源代码复制到根目录
cp -r myems/myems-web c:\
cd c:\myems-web
复制
信息

您可以安全地忽略本节中的命令“npm run build”,因为它内置在Dockerfile中

用源代码编译镜像
docker build -t myems/myems-web .
docker image prune -f
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-web .
docker image prune -f
复制
运行Docker容器
在主机上,将nginx.conf绑定到容器

docker run -d -p 80:80 -v c:\myems-web/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-web myems/myems-web
复制
-d 在后台运行容器并打印容器ID
-p 向主机发布容器的端口,80:80(主机:容器)将容器的端口80(右)绑定到主机的TCP端口80(左)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
如果您想将镜像迁移到另一台计算机,

将镜像导出到tarball文件
docker save --output myems-web.tar myems/myems-web
复制
将tarball文件复制到另一台计算机,然后从tarball文件加载镜像
docker load --input .\myems-web.tar
复制
Linux上的Docker
此处以virtualbox虚拟机上的Ubuntu Server为例

1.安装virtualbox

2.在虚拟机上安装Ubuntu Server

3.修改网络,设置桥接模式

4.安装docker、npm

5.数据库添加访问权限

mysql> CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%';
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!MyEMS1';
复制
6.使用Docker部署MyEMS

第1步 数据库
第2步 myems-api​
在本节中,您将在Docker上安装myems-api。

将源代码复制到根目录
cp -r myems/myems-api /
cd /myems-api
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-api .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-api .
复制
运行Docker容器
在主机上, 创建一个共享上传文件的文件夹:

mkdir /myems-upload
复制
创建一个容器,将共享上传文件夹绑定到容器,并将.env绑定到容器:

docker run -d -p 8000:8000 -v /myems-upload:/var/www/myems-admin/upload -v /myems-api/.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-api myems/myems-api
复制
-d 在后台运行容器并打印容器ID
-p 向主机发布容器的端口,8000:8000(主机:容器)将容器的端口8000(右侧)绑定到主机的TCP端口8000(左侧)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录,-v将为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

如果您想将镜像迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-api.tar myems/myems-api
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-api.tar
复制
第3步 myems-admin​
在本节中,您将在Docker上安装myems-admin。

将源代码复制到根目录
cp -r myems/myems-admin /
cd /myems-admin
复制
警告

手动将nginx.conf中的127.00.1:8000替换为实际的主机IP地址和myems-api端口

nano nginx.conf
复制
proxy_pass http://127.0.0.1:8000/;
复制
用源代码编译镜像
docker build -t myems/myems-admin .
复制
如果为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-admin .
复制
运行Docker容器
在主机上, 创建一个共享上传文件的文件夹:

mkdir /myems-upload
复制
将共享上传文件夹绑定到容器,并将.env绑定到容器: 创建一个容器,绑定挂载共享上传文件文件夹到容器,并绑定挂载nginx.conf

docker run -d -p 8001:8001 -v /myems-upload:/var/www/myems-admin/upload -v /myems-admin/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-admin myems/myems-admin
复制
-d 在后台运行容器并打印容器ID
-p 将容器的端口发布到主机,8001:8001(主机:容器)将容器的8001端口(右侧)绑定到主机的TCP端口8001(左侧)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
如果您想将镜像迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-admin.tar myems/myems-admin
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-admin.tar
复制
第4步 myems-modbus-tcp​
在本节中,您将在Docker上安装myems-modbus-tcp。

将源代码复制到根目录
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-modbus-tcp .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
复制
运行Docker容器 (以超级用户运行)
docker run -d -v /myems-modbus-tcp/.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-modbus-tcp myems/myems-modbus-tcp
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-modbus-tcp.tar
复制
第5步 myems-cleaning​
在本节中,您将在Docker上安装myems-cleaning。

将源代码复制到根目录
cp -r myems/myems-cleaning /
cd /myems-cleaning
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-cleaning .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-cleaning .
复制
运行Docker容器 (以超级用户运行)
docker run -d -v /myems-cleaning/.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-cleaning myems/myems-cleaning
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-cleaning.tar myems/myems-cleaning
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-cleaning.tar
复制
第6步 myems-normalization​
在本节中,您将在Docker上安装myems-normalization。

将源代码复制到根目录
cp -r myems/myems-normalization /
cd /myems-normalization
复制
基于example.env文件创建.env
警告

用真实的主机IP地址手动替换127.00.1。

cp example.env .env
复制
用源代码编译镜像
docker build -t myems/myems-normalization .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-normalization .
复制
运行Docker容器 (以超级用户运行)
docker run -d -v /myems-normalization/.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-normalization myems/myems-normalization
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
为了将容器迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-normalization.tar myems/myems-normalization
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-normalization.tar
复制
第7步 myems-aggregation​
在本节中,您将在Docker上安装myems-aggregation。

将源代码复制到根目录
cp -r myems/myems-aggregation /
cd /myems-aggregation
复制
基于example.env文件创建.env
cp example.env .env
复制
警告

用真实的主机IP地址手动替换127.00.1。

用源代码编译镜像
docker build -t myems/myems-aggregation .
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-aggregation .
复制
运行Docker容器 (以超级用户运行)
docker run -d -v /myems-aggregation/.env:/code/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-aggregation myems/myems-aggregation
复制
-d 在后台运行容器并打印容器ID
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
冒号前的绝对路径表示主机上的路径,可能因系统而异。 冒号后的绝对路径用于容器上的路径,不能更改。 通过将.env作为绑定装载参数传递,您可以稍后更改配置值。 如果更改了.env文件,请重新启动容器以使更改生效。

迁移Docker容器
将镜像导出到tar文件
docker save --output myems-aggregation.tar myems/myems-aggregation
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-aggregation.tar
复制
第8步 myems-web​
在本节中,您将在Docker上安装myems-web。

如有必要,检查并更改配置文件:
cd myems/myems-web
nano src/config.js
复制
警告

将nginx.conf中的127.00.1:8000替换为真正的HOST IP和myems-api端口

cd myems/myems-web
nano nginx.conf
复制
将源代码复制到根目录
cp -r myems/myems-web /
cd /myems-web
复制
信息

您可以安全地忽略本节中的命令“npm run build”,因为它内置在Dockerfile中

用源代码编译镜像
docker build -t myems/myems-web .
docker image prune -f
复制
为多个平台构建,而不仅仅是为当前用户运行的体系结构和操作系统构建。 您可以使用buildx并设置--platform标志来指定构建输出的目标平台(例如,linux/amd64、linux/arm64或darwin/amd64)。

docker buildx build --platform=linux/amd64 -t myems/myems-web .
docker image prune -f
复制
运行Docker容器
在主机上,将nginx.conf绑定到容器

docker run -d -p 80:80 -v /myems-web/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-web myems/myems-web
复制
-d 在后台运行容器并打印容器ID
-p 向主机发布容器的端口,80:80(主机:容器)将容器的端口80(右)绑定到主机的TCP端口80(左)。
-v 如果使用-v或--volume绑定装载Docker主机上尚不存在的文件或目录, -v为您创建端点。它始终创建为目录。 ro选项(如果存在)会导致绑定装载以只读方式装载到容器中。
--log-opt max-size=2m 滚动前日志的最大大小。正整数加上表示度量单位(k、m或g)的修饰符。
--log-opt max-file=2 可以存在的最大日志文件数。如果滚动日志会创建多余的文件,则会删除最旧的文件。正整数。
--restart 重新启动策略以在容器退出时应用
--name 为容器指定名称
如果您想将镜像迁移到另一台计算机,

将镜像导出到tar文件
docker save --output myems-web.tar myems/myems-web
复制
将tar文件复制到另一台计算机,然后从tar文件加载镜像
docker load --input .\myems-web.tar
复制
myems-modbus-tcp
关于modbus协议
在myems中我们主要使用modbus-tcp

使用modbus slave和modbus poll模拟modbus-tcp通信
MyEMS Modbus TCP数据采集
下面演示Modbus TCP数据采集

1.进入Admin页面,点击数据源进行数据源和数据点的配置

2.点击左上角添加数据源,进行数据源的配置。填写名称并选择网关(默认网关1),协议填写modbus-tcp,然后填写IP地址和端口号连接数据源,最后点击保存。

3.接下来配置数据点,点击上方数据点选项

选择数据源,点击添加数据点,填写名称并选择对象类型,对象类型分为能耗量(ENERGY VALUE),模拟量(ANALOG VALUE)和数字量(DIGITAL VALUE),填写单位,高限,低限和比例系数,勾选保存趋势后数据会保存在数据库中,最后填写JSON格式的寄存起地址并填写对应属性,属性分别为从站地址(slave_id),功能码(function_code),起始地址(offset),寄存器数量(number_of_registers),数据格式(format)和字节反转(byte_swap),填写完成后点击保存。

4.重启myems-modbus-tcp容器,修改的数据源会被创建为一个采集进程

docker restart myems-modbus-tcp
docker logs -t myems-modbus-tcp
复制
5.采集完成后(默认为10分钟,可在.env中修改),可在数据库中myems_historical_db中查看

计量表
下面演示计量表的添加与在客户端中的查看

1.进入Admin页面,点击计量表进行计量表的配置

2.点击左上角添加计量表,进行计量表的配置。填写名称并选择能源分类,勾选能耗参与汇总,填写每小时最小值与最大值,选择成本中心和上级计量表,填写描述,最后点击保存。

3.接下来绑定数据点,点击绑定数据点

选择要编辑的计量表,选择数据源,并将所需数据点拖拽到中间计量表绑定的数据点中。

4.将计量表绑定至空间中。

点击空间,选择绑定计量表,选择看空间,将需要绑定的表拖拽至中间。

5.重启myems-modbus-tcp容器

6.进入Web页面,选择上方计量表数据

点击计量表实时分析,可查看当前读取到的数据

点击计量表能耗分析,选择空间,计量表,时间尺度和报告期等数据后提交可查看能耗数据

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
数据采集 人工智能 Ubuntu
MyEMS开源能源管理系统开发工具
MyEMS 是一款基于 ISO 50001 标准的开源能源管理系统,支持建筑、工厂等场景的电、水、气等能源数据采集与分析,提供光伏、储能、微电网、AI 优化等功能。系统采用开源工具开发,包括 PyCharm、VS Code、Docker、Ubuntu 等,并搭配 MySQL 数据库及 DBeaver 客户端,助力企业实现低碳发展。社区版完全免费,适合开发者学习和部署。下载地址:[https://gitee.com/myems/myems](./https://gitee.com/myems/myems)。
355 32
|
7月前
|
数据采集 Kubernetes 网络协议
MyEMS简介
MyEMS是一款领先的开源能源管理系统,基于云计算、物联网、大数据和人工智能技术构建,提供统一且功能强大的综合能源管理服务。系统由资深团队开发维护,支持多种协议(如Modbus TCP、BACnet/IP、MQTT)和多平台部署(如Docker、Kubernetes、各大云平台)。社区版功能全面,涵盖数据分析、设备管理、能耗监测等,适合各类用户需求。企业版则提供更多高级功能,如节能分析、远程控制和多协议支持。代码遵循MIT协议开源,支持品牌定制,适用于免费及商业应用场景。
358 2
|
7月前
|
IDE 数据可视化 程序员
一文讲透:低代码平台是什么?低代码平台应该如何挑选?
低代码(Low Code)是一种通过可视化和配置化方式快速开发应用的技术工具平台,旨在减少手动编码量,提升开发效率。2014年Forrester定义其为“快速交付应用并简化部署”的工具,随后Gartner推广aPaaS/iPaaS概念,进一步推动其发展。低代码平台适用于数据管理、业务逻辑处理、权限控制、审批流程、报表分析等场景,支持手机访问、版本管理和日志记录等功能。挑选低代码平台需关注数据、逻辑、权限等11个关键问题。对程序员而言,低代码不仅降低开发门槛,还助力个人向产品/项目经理转型,创造更高价值。
1288 32
|
3月前
|
数据采集 前端开发 关系型数据库
MyEMS 开源能源管理系统:安装部署、常见问题与未来趋势
MyEMS 是一款灵活、低成本的开源能源管理系统,适用于各类能源监控场景。本文详解其在 Ubuntu 系统下的安装部署流程,涵盖环境准备、数据库配置、前后端部署及设备接入,并解析使用中常见问题的排查与优化方案,助力企业高效落地能源数字化管理,同时展望其未来发展趋势与创新方向。
185 0
|
6月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
343 0
|
消息中间件 Kafka API
kafka使用教程
kafka使用教程
|
运维 数据可视化 搜索推荐
(极态/JIT)新一代软件开发平台
极态云平台,极态云,也叫Jit、极态。是一个基于全新的软件设计理论的开发平台。他继承了经典软件开发理念理论、技术和方法,结合了最新的可视化零代码开发的价值,开创性地创造了面向元素开发方法论、元素动态管理和分层机制、应用继承、通用系统模型,可扩展的可视化工具框架,彻底解决了产业界一直以来非常棘手的许多难题和冲突,大大提升业务系统软件开发和维护的效率,也必将给产业带来更加健康的发展,可以说,是近20年来,软件开发技术最重大的一次进步。
|
数据采集 BI 数据库
MyEMS的安装部署与数据读取查看
MyEMS开源能源管理系统用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力实现碳达峰碳中和目标!
|
SQL XML Java
MyBatis Plus通用CRUD与条件构造器使用及SQL自动注入原理分析
MyBatis Plus通用CRUD与条件构造器使用及SQL自动注入原理分析
570 0
|
存储 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
1029 0