首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何在树莓派上安装MyEMS开源能源管理系统(下)

如何在树莓派上安装MyEMS开源能源管理系统(下)

原创
作者头像
开源能源管理系统
发布2025-05-14 13:24:12
发布2025-05-14 13:24:12
3220
举报

前面步骤在(上)中所示,继续如下操作。

第5步 myems-cleaning

在此步骤中,您将安装myems-cleaning服务。

代码语言:javascript
复制
sudo cp -r ~/myems/myems-cleaning /myems-cleaning

复制

代码语言:javascript
复制
cd /myems-cleaning

复制

为了避免 'error: externally-managed-environment', 创建一个虚拟环境配置目录:

代码语言:javascript
复制
sudo python -m venv venv

复制

开始使用虚拟环境

代码语言:javascript
复制
source venv/bin/activate

复制

安装依赖库

代码语言:javascript
复制
sudo venv/bin/pip install -r requirements.txt

复制

关闭虚拟环境

代码语言:javascript
复制
deactivate

复制

将exmaple.ev文件复制到.env并修改.env文件:

代码语言:javascript
复制
sudo cp /myems-cleaning/example.env /myems-cleaning/.env

复制

代码语言:javascript
复制
sudo nano /myems-cleaning/.env

复制

修改myems-cleaning.service中的python路径

代码语言:javascript
复制
sudo nano /myems-cleaning/myems-cleaning.service

复制

代码语言:javascript
复制
[Unit]Description=myems-cleaning daemonAfter=network.target
[Service]User=rootGroup=rootExecStart=/myems-modbus-tcp/venv/bin/python3 /myems-cleaning/main.pyExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s TERM $MAINPIDPrivateTmp=trueRestart=always
[Install]WantedBy=multi-user.target

复制

安装systemd服务:

代码语言:javascript
复制
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

复制

启用服务:

代码语言:javascript
复制
sudo systemctl enable myems-cleaning.service

复制

启动服务:

代码语言:javascript
复制
sudo systemctl start myems-cleaning.service

复制

监控服务:

代码语言:javascript
复制
udo systemctl status myems-cleaning.service

复制

查看日志:

代码语言:javascript
复制
cat /myems-cleaning.log

复制

第6步 myems-normalization

在此步骤中,您将安装myems-normalization服务。

代码语言:javascript
复制
sudo cp -r ~/myems/myems-normalization /myems-normalization

复制

代码语言:javascript
复制
cd /myems-normalization

复制

为了避免 'error: externally-managed-environment', 创建一个虚拟环境配置目录:

代码语言:javascript
复制
sudo python -m venv venv

复制

开始使用虚拟环境

代码语言:javascript
复制
source venv/bin/activate

复制

安装依赖库

代码语言:javascript
复制
sudo venv/bin/pip install -r requirements.txt

复制

关闭虚拟环境

代码语言:javascript
复制
deactivate

复制

将exmaple.ev文件复制到.env并修改.env文件:

代码语言:javascript
复制
sudo cp /myems-normalization/example.env /myems-normalization/.env

复制

代码语言:javascript
复制
sudo nano /myems-normalization/.env

复制

修改myems-normalization.service中的python路径

代码语言:javascript
复制
sudo nano myems-normalization.service

复制

代码语言:javascript
复制
[Unit]Description=myems-normalization daemonAfter=network.target
[Service]User=rootGroup=rootExecStart=/myems-normalization/venv/bin/python3 /myems-normalization/main.pyExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s TERM $MAINPIDPrivateTmp=trueRestart=always
[Install]WantedBy=multi-user.target

复制

安装systemd服务

代码语言:javascript
复制
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

复制

启用服务:

代码语言:javascript
复制
sudo systemctl enable myems-normalization.service

复制

启动服务:

代码语言:javascript
复制
sudo systemctl start myems-normalization.service

复制

监控服务:

代码语言:javascript
复制
sudo systemctl status myems-normalization.service

复制

查看日志:

代码语言:javascript
复制
cat /myems-normalization.log

复制

第7步 myems-aggregation

在此步骤中,您将安装myems-aggregation服务。

代码语言:javascript
复制
sudo cp -r ~/myems/myems-aggregation /myems-aggregation

复制

代码语言:javascript
复制
cd /myems-aggregation

复制

为了避免 'error: externally-managed-environment', 创建一个虚拟环境配置目录:

代码语言:javascript
复制
sudo python -m venv venv

复制

开始使用虚拟环境

代码语言:javascript
复制
source venv/bin/activate

复制

安装依赖库

代码语言:javascript
复制
sudo venv/bing/pip install -r requirements.txt

复制

关闭虚拟环境

代码语言:javascript
复制
deactivate

复制

将exmaple.ev文件复制到.env并修改.env文件:

代码语言:javascript
复制
sudo cp /myems-aggregation/example.env /myems-aggregation/.env

复制

代码语言:javascript
复制
sudo nano /myems-aggregation/.env

复制

修改myems-aggregation.service中的python路径

代码语言:javascript
复制
sudo nano myems-aggregation.service

复制

代码语言:javascript
复制
[Unit]Description=myems-aggregation daemonAfter=network.target
[Service]User=rootGroup=rootExecStart=/myems-aggregation/venu/bin/python3 /myems-aggregation/main.pyExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s TERM $MAINPIDPrivateTmp=trueRestart=always
[Install]WantedBy=multi-user.target

复制

安装systemd服务

代码语言:javascript
复制
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

复制

启用服务:

代码语言:javascript
复制
sudo systemctl enable myems-aggregation.service

复制

启动服务:

代码语言:javascript
复制
sudo systemctl start myems-aggregation.service

复制

监控服务:

代码语言:javascript
复制
sudo systemctl status myems-aggregation.service

复制

查看日志:

代码语言:javascript
复制
cat /myems-aggregation.log

复制

第8步 myems-web

在此步骤中,您将安装myems-web服务。

  • 安装 NGINX 服务器 (如在myems-admin中已安装,可以忽略) 参考 http://nginx.org/en/docs/install.html
  • 配置 NGINX
代码语言:javascript
复制
sudo nano /etc/nginx/nginx.conf

复制

在 'http' 结构中添加一些指令 (如在myems-admin中已配置,可以忽略)

代码语言:javascript
复制
http {    client_header_timeout 600;    client_max_body_size 512M;    gzip on;    gzip_min_length 512;    gzip_proxied any;    gzip_types *;    gzip_vary on;    proxy_buffering off;    ...
}

复制

在 'http' 结构中添加一个新的 'server' 结构,其指令如下:

代码语言:javascript
复制
server {      listen                 80;      server_name     myems-web;      location / {          root    /var/www/myems-web;          index index.html index.htm;          # add try_files directive to avoid 404 error while refreshing pages          try_files $uri  /index.html;      }      ## To avoid CORS issue, use Nginx to proxy myems-api to path /api      ## Add another location /api in 'server'      ## NOTE: replace dafault address http://127.0.0.1:8000/ with actual IP or URL      location /api {          proxy_pass http://127.0.0.1:8000/;          proxy_connect_timeout 75;          proxy_read_timeout 600;          send_timeout 600;      }  }

复制

  • 安装 MyEMS Web UI:

安装NodeJS:

代码语言:javascript
复制
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -

复制

代码语言:javascript
复制
sudo apt-get install -y nodejs

复制

修改配置文件:

备注

从 https://mapbox.com 获取 mapboxToken 然后设置 showOnlineMap 为 true. 如果要关闭在线地图功能,设置 showOnlineMap 为 false

代码语言:javascript
复制
cd ~/myems/myems-web

复制

代码语言:javascript
复制
sudo nano src/config.js

复制

编译和压缩:

代码语言:javascript
复制
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps

复制

代码语言:javascript
复制
sudo npm run build

复制

安装

代码语言:javascript
复制
sudo mv build  /var/www/myems-web

复制

重启 NGINX

代码语言:javascript
复制
sudo systemctl restart nginx

复制

将端口添加到防火墙:

代码语言:javascript
复制
sudo ufw allow 80

复制

安装后

祝贺您现在可以登录MyEMS Admin UI和Web UI。

默认端口

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

默认密码

Admin UI

代码语言:javascript
复制
administrator

复制

代码语言:javascript
复制
!MyEMS1

复制

Web UI

代码语言:javascript
复制
administrator@myems.io

复制

代码语言:javascript
复制
!MyEMS1

复制

感谢各位支持。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 前面步骤在(上)中所示,继续如下操作。
  • 第5步 myems-cleaning
  • 第6步 myems-normalization
  • 第7步 myems-aggregation
  • 第8步 myems-web
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档