MyEMS开源能源管理系统适用于建筑、工厂、商场、医院、园区的电、水、气等能源数据采集、分析、报表,还有光伏、储能、充电桩、微电网、设备控制、故障诊断、工单管理、人工智能优化等可选功能。资深专业团队开发维护,保障长期支持。用开源助力企业集团、产业园区、能源运营商低碳发展!
官网 :https://myems.io
MyEMS开源社区版下载:https://gitee.com/myems/myems
本期解读:
计量表能耗数据规范化算法:myems/myems-normalization/meter.py
代码见底部
这段代码是一个用于计算和存储能源计量数据(如电表读数)的小时值的Python脚本。它主要包含两个函数:calculate_hourly 和 worker。下面是对这两个函数的详细解释:
calculate_hourly 函数
这个函数负责周期性地从数据库中查询所有电表及其相关的能源值点,并使用多进程方式并行处理每个电表的数据。
1.连接数据库: 首先尝试连接到系统数据库(cnx_system_db),如果连接失败,则记录错误并等待一段时间后重试。
2.查询电表信息: 从系统数据库中查询所有电表及其关联的能源值点信息,并将结果存储在 meter_list 中。
3.随机化处理顺序: 为了避免每次都按照相同的顺序处理电表,使用 random.shuffle 打乱 meter_list。
4.插入数据库: 将规范化后的每小时能源值插入到能源数据库中。
5.错误处理: 在整个过程中,如果遇到任何错误,将记录错误信息并返回。
总结
这段代码是一个自动化的能源数据处理脚本,它定期从数据库中获取电表的原始读数,计算每小时的能源消耗,并将结果存储回数据库。它使用了多进程来提高处理效率,并且包含了错误处理机制以确保稳定运行。