MyEMS开源能源管理系统核心代码解读022

简介: MyEMS开源能源管理系统助力企业低碳发展,支持建筑、工厂、园区等场景的电、水、气等能源数据采集与分析,并提供光伏、储能、充电桩等智能管理功能。系统由专业团队维护,保障长期稳定运行,适用于集团、园区及能源运营商的高效能耗管理需求。

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

本期解读:

空间能源成本数据汇总计算方法:myems-aggregation/space_billing_input_category.py

源代码链接:https://gitee.com/myems/myems/blob/master/myems-aggregation/space_billing_input_category.py?sessionid=1482745319

这段代码是一个用于计算和保存能源消耗计费信息的Python脚本。它通过连接到三个不同的数据库(系统数据库、能源数据库和计费数据库)来执行其功能。以下是对代码的概括性总结和详细解析:

概括性总结

1.连接数据库: 脚本首先连接到系统数据库、能源数据库和计费数据库。

2.获取空间列表: 从系统数据库中获取所有空间的列表。

3.遍历每个空间: 对于列表中的每个空间,执行以下步骤:

  • 获取该空间的最新计费开始时间。

  • 获取自该时间以来的所有能源输入数据。

  • 获取相应的能源类别的电价。

  • 根据能源消耗和电价计算计费。

  • 将计费数据保存到计费数据库。

4.循环执行: 整个过程在一个无限循环中执行,每300秒休眠一次。

详细解析

1.连接数据库: 使用mysql.connector连接到三个数据库,并创建相应的游标。

2.获取空间列表:

  • 从系统数据库中查询所有空间。

  • 如果没有空间或发生错误,则记录错误并休眠60秒后继续循环。

3.遍历每个空间:

  • 对于每个空间,查询计费数据库以获取最新的计费开始时间。

  • 查询能源数据库以获取自该时间以来的能源输入数据。

  • 获取每个能源类别的电价。

  • 计算每个能源类别的计费。

  • 将计费数据插入计费数据库。

4.错误处理: 在每个步骤中,如果遇到异常,则记录错误信息,关闭数据库连接,并休眠60秒后继续循环。

5.休眠和继续: 在完成所有空间的处理后,脚本休眠300秒,然后继续下一个循环

相关文章
|
2月前
|
JavaScript API 数据安全/隐私保护
Vuex 插件和 Pinia 插件在使用场景上有哪些区别?
Vuex 插件和 Pinia 插件在使用场景上有哪些区别?
369 127
|
关系型数据库 数据库 PostgreSQL
PostgreSQL批量删除数据
当需要对一些不需要的历史数据进行大批量删除时, 在使用delete语句时,会发现在删除一些数据时会非常慢 比如 DELETE FROM test where id < 10000; 删除缓慢的原因主要在于外键约束,当数据库在有约束的情况下,无论进行删除或者更新操作, 都会对相关表进行一个校验,判断相关表的相关记录是否被删除或者更新。 这个检查的过程会非常慢, 尤其在外建表又关联着外建表的这种层层嵌套的情况下。
2451 0
|
6月前
|
数据采集 Kubernetes 网络协议
MyEMS简介
MyEMS是一款领先的开源能源管理系统,基于云计算、物联网、大数据和人工智能技术构建,提供统一且功能强大的综合能源管理服务。系统由资深团队开发维护,支持多种协议(如Modbus TCP、BACnet/IP、MQTT)和多平台部署(如Docker、Kubernetes、各大云平台)。社区版功能全面,涵盖数据分析、设备管理、能耗监测等,适合各类用户需求。企业版则提供更多高级功能,如节能分析、远程控制和多协议支持。代码遵循MIT协议开源,支持品牌定制,适用于免费及商业应用场景。
309 2
|
8月前
|
人工智能 自然语言处理 算法
AI替代潮下,3亿人如何逆袭?生成式人工智能(GAI)认证或是破局关键!
在AI快速发展的今天,全球职场正经历深刻变革。据IMF报告,未来五年全球可能有9200万个工作岗位被AI取代,而在中国,到2025年或有4000万人面临失业风险。然而,AI不仅带来挑战,也创造了新机遇,如AI算法工程师、数据科学家等新兴职业。生成式人工智能(GAI)认证成为提升竞争力的关键,帮助个人适应AI时代,实现职业逆袭。未来是人与AI共舞的时代,通过学习和认证,我们可在AI浪潮中抓住新机遇,创造更美好的职业前景。
|
JavaScript Java 关系型数据库
Springboot+vue的校园社团管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
Springboot+vue的校园社团管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
|
Web App开发 JavaScript 前端开发
如何使用npm创建Node.js项目?
【2月更文挑战第10天】
496 3
如何使用npm创建Node.js项目?
|
设计模式 安全 编译器
【C++ 异常】C++异常处理:掌握高效、健壮代码的秘密武器
【C++ 异常】C++异常处理:掌握高效、健壮代码的秘密武器
353 1
|
JavaScript 前端开发 开发者
浅谈Vue 3的响应式对象: ref和reactive
浅谈Vue 3的响应式对象: ref和reactive
|
机器学习/深度学习 人工智能 数据可视化
【2020-2024持续更新】Echo State Network和储层计算论文汇总!包括经典ESN、DeepESN、组合ESN和综述!
本文汇总了2020至2024年间关于Echo State Network(ESN)和储层计算的研究成果,包括综述、不同模型分类(经典ESN、DeepESN、组合ESN)、开源论文、储层计算相关研究以及ESN在各个领域的应用情况。
281 0
|
存储 前端开发 JavaScript
网站运行原理与代码实现
网站运行原理与代码实现
394 1