本帖最后由 yuqiuyi99 于 2021-4-2 21:06 编辑
文章标题不够长啊,本来拟好的是是《家庭总体能耗电压电流功率用电度数检测,以及进阶Influxdb、Grafana应用》
来论坛半年左右了,收获还是很大的。以前玩过乐联的空气检测,和modbus电表,用lua编过东西,也玩过中移动的麒麟座,还有上海合宙的gprs开发板,这些东西都依赖云,而hass刚好可以满足自己建数据库,加上外公网IP可以外网访问,所以我很多东西都转到了hass。
前一段有个帖子里,说米家智能插座增强版可以看功率,我提到了只看一个插座的功率没太大意义,要看就看整个家庭的用电。说了一句:“家里整体功耗才是王道”引得网友回复……这下好了,自己挖的坑自己得埋!论坛里前一段也有人发过测电压电流,用的是modbus协议改的,费用有点高(modbus检测模块一般70起步)而且需要编lua。这里,我班门弄斧,说说入户电压电流功率用电数检测的一种尽量简单的方法,算是共同学习吧。
家庭用电检测是个很方便的东西。第一可以节省能源,因为你知道你功率为什么有时候有变化,从而改变你的用电习惯,做到有的放矢,而不是盲目的省用电。第二是了解自己家的用电情况。例如,我知道了做饭的时候功率经常2000-4000w变化(电磁炉抽油烟机压力锅等),晚上空调的运作情况等。而且,通过历史图表或者Grafana,你可以看到一周或者一个月或者一年的用电变化,不仅是功率,每天每个星期每个月的用电量都可以显示出来,简直不要太方便。
先上图: 1.在首页可以加一个6小时的曲线图,有人问怎么这么多瞬间大功率的,呵呵,很多电气启动瞬间的功率都是很高的,例如冰箱之类的。
2.在组里可以看到家庭总用电量(电度数)(当然是安装之后才开始累积的),也可以看到功率,功率因数,电亚电流之类的。这里简单科普一下:电压乘电流不是功率,交流电么,有功率因数,家庭电器一般纯阻性的很少(电炉子),大部分都是感性的,还有小部分容性的。想详细了解,请移步学习小学《自然》三年级上册第二课—青春期少女心理学!
3.高端用法:Grafana应用显示历史,看着比hass自带的好看多了吧,而且功能也多啊,而且速度也快啊。可是,这货需要Influxdb或其他数据库,没办法安装吧。
好了废话不多说,开始洗洗睡吧!啊不对,开始洗洗手干吧!
声明:强电危险,需在配电箱空气开关处接线,出现意外后果自负!!!人生苦短,珍爱生命! 原材料 1.培正检测模块PZEM-004T 自己搜:“PEACEFAIR品牌交流电压电流功率电能表电工仪器仪表TTL串口通信”,35元(厂家应该是宁波宇洁电子-宁波培正电子科技)。价格不贵量又足,质量不错功能也够用。不要贪多买4路8路检测的,不能检测用电量,那些其实是一个东西,加了个4052之类的端口复用芯片.
另:35元配的是闭口互感器,需要断电把入户电源火线从空气开关上拆掉套上去,再把入户电源火线装回!危险是有的,所以一定要慎重!慎重!再慎重!当然你也可以跟店老板说换个开口互感器,直接卡上去最方便也快,而且可以随时换到不同的线上检测,就是要再加8块钱(我就是加了8块钱呐,不是怕电,而是已经有个闭口互感器了,想换个开口的看准不准,后来发现一样准确) 2.220v交流转5v直流模块,自己搜“开关电源5v700ma”模块,3.4块钱左右。想省钱可以找个不用的手机充电器(质量要可靠,别在电箱里自燃了)拆开自己接线也可。
测量模块用5v电压,但esp-01或12e/f都是3.3v供电,需要一个ams1117-3.3模块(5毛钱左右)把5v转成3.3v,当然因为电路简单也可以自己用ams1117(几分钱)做一个。如果运气好,买的5v模块有两个版本,有个版本上面留着ams1117空位,自己焊接上芯片直接出来5v3.3v双电压更方便!
3.esp-01模块,用esp-12e/f也行,用nodemcu也行,因为就用一组txrx端口, esp-01就够用了,7块够便宜,杀鸡用不着牛刀!发热量不大,不用担心!
硬件制作。
自己不怎么会画图,之前家里有个modbus电表一直在用,上次加装004t模块时一起组合到一个盒子里了。我两个检测模块用了两个5v电源模块供电,一个给modbus检测模块,一个给这次的主角培正检测模块。这个modbus检测模块(我用的是LT-109 60A也不贵)是上传乐联网用的,他们的网站前端做的不错,看着很直观,而且还有app,他家的空气检测还可以用微信关注,最重要的是,乐为物联一般自己家用的话活雷锋不收费哈哈哈,反正随口提一句不花钱,顺便给乐为物联做个广告哈哈哈。
先上我自己最早modbus测量模块的图(用了插接头,主要是取下来方便。注意:互感器不得开路,拔下后连起来让两根线短路,不然阻抗无穷大电压会变很大的) 再上我现在用的 接好线之后,怎能少了妖艳的夜景哈哈哈 两个模块的电路图如下
放到电箱旁边是这样 唉,为了大家只装一个004t模块方便,我重新画了一个图给大家示意: 004T的螺丝接线柱那头介绍里有图自己看,注意强电!白色卡扣那头就是vcc(5v)、tx、tx、gnd,连到esp01上即可。不会连,那就别往下看了,这个东西很看天赋的! 注意:危险1模块要用220v电,危险2要套入户火线 没办法,为了科普,搬板凳拍照
互感器怎么接,看图
软件部分:
另外也可以用官方推荐的Arduino ide,直接设定好wifi和密码以及时区。当然要说简单还是数ESPFlashDownloadTool简单直接用! 在SONOFF网页的控制台,使用Timezone +8 命令,将SONOFF的时间设置时区+8,这样就与现实时间同步了,机子本身的,今日电量数据就会准确了。 2.设置Tasmota见图
Tasmota 默认3分钟上传一次,但短时间功率有大范围变化了也上传,默认的就好,别瞎折腾了哈哈哈。
如果没问题的话,就出现如下:
3.hass代码部分,Packages如下: sensor: - platform: mqtt name: "zong" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Total }}" unit_of_measurement: "KWH" - platform: mqtt name: "zuotian" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Yesterday }}" unit_of_measurement: "KWH" - platform: mqtt name: "jintian" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Today }}" unit_of_measurement: "KWH" - platform: mqtt name: "gonglv" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Power }}" unit_of_measurement: "W" - platform: mqtt name: "yinshu" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Factor }}" unit_of_measurement: " " - platform: mqtt name: "dianya" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Voltage }}" unit_of_measurement: "V" - platform: mqtt name: "dianliu" state_topic: "tele/sonoff/SENSOR" value_template: "{{value_json['ENERGY'].Current }}" unit_of_measurement: "A" history_graph: #首页显示曲线图 gl1: name: 6H entities: hours_to_show: 6 refresh: 0 homeassistant: customize: sensor.zong: friendly_name: 总用电量 icon: mdi:chart-bar-stacked sensor.zuotian: friendly_name: 昨日电量 icon: mdi:chart-bar-stacked sensor.jintian: friendly_name: 今日电量 icon: mdi:chart-bar-stacked sensor.gonglv: friendly_name: 功率 icon: mdi:chart-bar sensor.yinshu: friendly_name: 功率因数 icon: mdi:chart-bar sensor.dianya: friendly_name: 电压 icon: mdi:flash sensor.dianliu: friendly_name: 电流 icon: mdi:flash-auto group: dianli: name:电表 control: hidden view: no entities: - sensor.zong - sensor.zuotian - sensor.jintian - sensor.gonglv - sensor.yinshu - sensor.dianya - sensor.dianliu 一顿操作猛如虎,此刻,点下一根烟,看看,你的hass页面是不是已经出现了电压电流啥的,恩,要得!
是不是很有成就感?!!!
分割线
以下为进阶部分,可能导致双目失明,慎重慎重!!! 你以为仅仅这样就能满足了吗?当然不能!远远不能让人达到“贤者时间”! 这参数也太多了吧。啥电压电流我要他干啥?记录也太多了,我仅仅只需要功率和用电度数的记录啊,那么可以在recorder里改一下就行了 recorder: include: entities: - sensor.gonglv - sensor.zong 可是,这数据增长的也太多了吧,而且,而且最主要的是,不能主观的显示每天、每星期、每个月的用电度数啊,这时候,Influxdb出场了,Influxdb是个时间序列的数据库,非常方便hass的使用! 我的数据库是这么设置的,hass本身保留7天或者30天,重要的数据同时发送给Influxdb数据库保留1年或者永久。有的人tf卡太小怎么办,这个涉及Influxdb更高级功能,下采样和数据保留策略,一次不说这么多了,吃得太多容易吐啊……
Influxdb安装和设置就不多说了,这不是科普贴啊,再说精力有限,这个帖子我都推迟了1个月了因为太懒。如何把重要的数据传给Influxdb,需要配置如下: Influxdb: host: 192.168.1.xxx #自己数据库IP,如果装在树莓派里,就输树莓派IP port: 8086 database: homeassistant username: xxx password: xxxxxx max_retries: 3 default_measurement: state include: #需要传给Influxdb的重要数据实体贴进去,不重要的不传 entities: - sensor.gonglv - sensor.zong - sensor.xxx - sensor.xxx 。。。。。。
本身Influxdb自带的就有图形显示界面,看着还行!
但……怎么说呢,术业有专攻,还是不好显示每天每周每月的用电,不够直观,最后--还是请出Grafana这个专业图标显示的吧
Grafana设置 展示一下我的界面,我没有分几个大面板,直接一个面板显示完了所有我的重要数据。里面有左上角的家里人在家情况,右边是空气质量情况,左边的功率以及由电度数换算出来的每天每月用电量。
怎么换算?注意看,电度数在限定时间内用最多的减最少的,不就得出了限定时间内的用电度数了么。Grafana面板右上角可以设置显示的时间区间,也可以在小面板中单独设置时间范围,这个又属于高级使用方法了,呵呵呵,你们自己研究吧,发太多教程容易吐啊……我发个Grafana的设置代码在文末,你们导入后再自己研究吧。----擦,怎么上传附件啊?(我在研究怎么收金币哈哈哈)
以下纯属无病呻吟,以展示我文人的气质,以及感伤我那忧郁的眼神! 我浪费了大量的时间和精力在计算机和电子这方面,经常半夜3点才休息,却没有空多陪陪家人。有时候回想一下,值得吗,得到什么了?那么多的时间,去做点其他事儿不好么?这时候脑子里蹦出个小人,一直在呼喊:生命在于折腾!生命在于折腾!!!是啊,生命不全是挣钱和工作,也有自己的兴趣啊。每天行尸走肉的生活多没意思,吃饭,上班,休息,再吃饭,再上班,日复一日。 可是,可是,有时候很多人很多时候走入了误区,为了玩而玩,玩到不知所措……
如果再给我一次机会,我会说:我还会玩儿这类东西,只不过我不要这么沉迷,不要这么浪费时间!共勉吧
15楼有Grafana面板代码文件。密码么:nb很多人想用espeasy来连接这个模块,我从国外论坛里扒了两个espeasy固件,有兴趣的试试,密码test
|