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

官网 :https://myems.io

MyEMS开源社区版下载:https://gitee.com/myems/myems

本期解读:

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

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

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

概括性总结

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

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

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

  • 获取该空间的最新计费开始时间。
  • 获取自该时间以来的所有能源输入数据。
  • 获取相应的能源类别的电价。
  • 根据能源消耗和电价计算计费。
  • 将计费数据保存到计费数据库。

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

详细解析

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

2.获取空间列表:

  • 从系统数据库中查询所有空间。
  • 如果没有空间或发生错误,则记录错误并休眠60秒后继续循环。

3.遍历每个空间:

  • 对于每个空间,查询计费数据库以获取最新的计费开始时间。
  • 查询能源数据库以获取自该时间以来的能源输入数据。
  • 获取每个能源类别的电价。
  • 计算每个能源类别的计费。

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

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

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

MyEMS开源能源管理系统核心代码解读022的更多相关文章

  1. 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案

    简介 本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发 ...

  2. Hybrid----优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案-备

    本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送.接 ...

  3. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  4. 腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一)

    腾讯开源的 Paxos库 PhxPaxos 代码解读---Accept阶段(一) 在看Accept阶段代码之前, 我们再回想一下 Basic Paxos算法; 1.  Basic Paxos 算法是为 ...

  5. Android MVP模式 谷歌官方代码解读

    Google官方MVP Sample代码解读 关于Android程序的构架, 当前(2016.10)最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法. Repo ...

  6. msysGit管理GitHub代码

    msysGit管理GitHub代码   代码的管理,在日常开发中是很重要的环节,程序员的修炼三部曲——版本控制,单元测试,项目自动化. 本篇就简单的说说通过msysGit来管理GitHub中的代码,实 ...

  7. C/C++ 开源库及示例代码

    C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...

  8. Google免费的SVN服务器管理VS2010代码

    原文:Google免费的SVN服务器管理VS2010代码 前言 Google免费为我们提供了代码管理的SVN服务器.首先我这里用的Win7 64的电脑系统,用VS2010进行的代码开发.这里管理代码需 ...

  9. spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...

  10. weex官方demo weex-hackernews代码解读(上)

    一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...

随机推荐

  1. 股票技术面分析方法-K线图

    看涨吞没形态 看跌吞没形态 启明星形态       图形信号:看涨信号.第三根K线实体越长,看涨信号越强. 关键要素: 第二根K线是纺锤线或十字星 第三根K线向上能覆盖第一根K线的大半部分实体 黄昏星 ...

  2. Ubuntu使用PPA源安装及相关概念的了解

    因为在Ubuntu16.04下进行一系列工作,想着要把一些遇到的知识点记录下来,这也就有了截图的需求,所以想找一款截图工具来使用,经过知乎一圈,发现Ubuntu下大家比较推荐的截图工具是Shutter ...

  3. 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)

    1.问题描述: 集成华为一键登录的LoginWithHuaweiIDButton, 但是Button默认名字叫 "华为账号一键登录",太长无法显示,能否简写成"一键登录& ...

  4. HarmonyOS运动开发:精准估算室内运动的距离、速度与步幅

    前言 在室内运动场景中,由于缺乏 GPS 信号,传统的基于卫星定位的运动数据追踪方法无法使用.因此,如何准确估算室内运动的距离.速度和步幅,成为了运动应用开发中的一个重要挑战.本文将结合鸿蒙(Harm ...

  5. Dispatch PDI v2.0.4即将发布,历经1000+用户装机验证,稳定版震撼来袭!

    Dispatch PDI V2.0.4版本,即将登场! 亲爱的用户们: 在数据调度领域的探索之路上,我们始终致力于为大家提供更强大.更高效的工具.今天,我们怀着激动的心情宣布,Dispatch PDI ...

  6. 题解:CF1119D Frets On Fire

    大水题. 首先,若区间内只有一根弦,不会对答案有贡献. 我们思考如何对答案产生贡献.我们知道,对于每一个 \(s_i\),都会产生一段 \(s_i+r-l\) 的连续序列,在对 \(s\) 数组排序后 ...

  7. mysql练习题版本一

    有些题还没有解决 -- 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 1.1 查询同时存在" 01 "课程和" ...

  8. php链式调用

    我们经常在项目中会写到 Mode::find()->where()->orderBy()->limit(); 链式调用,那么它是怎么实现的呢? 昨天看韩天峰大佬的视频,学到了 关键点 ...

  9. EasyMR 基于国产化信创的适配实践技术详解

    国产化信创,即采用国产信息技术产品和服务,构建自主可控的信息技术体系.近年来,随着国家对网络安全和信息安全的重视程度不断提高,国产化信创已经成为国家战略的重要组成部分,并呈现出以下大趋势: ● 政策驱 ...

  10. 关于自定义比较函数 usort 如何使用 类中的方法

    http://blog.csdn.net/qdujunjie/article/details/42081137