兴趣内容
精选
最新
家庭用电量及电费统计模块 (Home Assistant 、Node-RED、MQTT综合应
【写作说明】:看了 frLab的个人主页| 什么值得买 smzdm.com 的几篇关于 Home Assistant 的文章Home Assistant 篇一:从Node-RED与微信推送谈起_NAS存储_什么值得买 smzdm.comHome Assistant 篇二:群晖Docker安装Home Assistant_NAS存储_什么值得买 smzdm.comHome Assistant 篇三:给HA插上翅膀——HACS与MQTT_NAS存储_什么值得买 smzdm.com总想搞个事情出来,在网上找了些资料,感觉搞一个家庭用电量及电费统计模块很不错,又能就习一下Home Assistant和Node-RED,电路又很简单。总用购买了五个配件:peacefair品牌交流电压电流功率因数电能通信模块模组TTL串口通信-tmall.com锟斤拷猫 最好购买1000A开合式CT。我还买了TTL转USB线,但没有用到。首购金10元,到手 40元CH340C下载烧录器ESP8266 ESP-01 ESP-01S WIFI模块下载器 调试器-tmall.com锟斤拷猫 最好购买ESP-01S+CH340C下载烧录器,烧录器以后还可以使用。17.5元220V转5V9V12V400/500/700MA/1A隔离开关电源模块AC-DC降压模块-tmall.com锟斤拷猫 200V转5V电源模块,800ma应该够了,我买的是1A的。8元LM2596S DC-DC直流可调降压电源模块稳压板3A 12/24转12/5/3.3V-tmall.com锟斤拷猫 降压模块3.3V输出,也可以购买5V转3.3V模块,5V转3.3V的模块应该还要便宜点。3.5元40P彩色杜邦线 母对母 公对母 公对公 长10CM/20CM/30CM/40CM-tmall.com锟斤拷猫 还有这个母对母的杜邦线,家里有就没买了。2元。还要电铬铁和焊锡丝,这个没有可以到但电子产品的借用一下,也可以自己购买,我个自家有就没算成本了。总共花费71元。给大家总体展示一下。 安装软件服务首先安装 Home Assistant 、 Node-RED、QTT 和设置Node-RED的企业推送 参考 frLab 的三篇Home Assistant文章,我就不详细说了,上链接。Home Assistant 篇一:从Node-RED与微信推送谈起,Home Assistant 篇二:群晖Docker安装Home Assistant,Home Assistant 篇三:给HA插上翅膀——HACS与MQTT。硬件组装购买硬件: peacefair PZEM-004T 交流电压电流功率等信息测量通信模块。如果要测家庭总用电量请购买100A的,10A只能测2200W以下功率的电器。互感器CT最好购买开合式的,贵7元,这样就可以不用拆强电箱的进线。peacefair品牌交流电压电流功率因数电能通信模块模组TTL串口通信41元天猫精选去购买 CH340C下载烧录器+ESP-01S,CH340C下载烧录器不是必须购买,如果有一定基础可以自己用USB线烧录,以前有的可以重复使用。WIFI模块最好购买ESP-01S,ESP-01要多接两个电阻,接线也复杂很多。看电路图:CH340C下载烧录器ESP8266ESP-01ESP-01SWIFI模块下载器调试器10元天猫精选去购买 电源模块:因为peacefair PZEM-004T要5V输入,ESP-01S要3.3V输入,所有要有两个模块 220V转5V和5V转3.3V。也有些模块有5V和3.3V两种输出。220V转5V9V12V400/500/700MA/1A隔离开关电源模块AC-DC降压模块4.8元天猫精选去购买 LM2596SDC-DC直流可调降压电源模块稳压板3A12/24转12/5/3.3V3.5元天猫精选去购买 母对母杜邦线,接线用。40P彩色杜邦线母对母公对母公对公长10CM/20CM/30CM/40CM2元天猫精选去购买刷写固件:刷 Tasmota 下载固件 ota.tasmota.com/tasmota/release/ 或者 github.com 下载:tasmota-CN.bin ,这个是简体中文版下载安信可烧录软件 开发工具清单 | 安信可科技 ai-thinker.com 下载第3个 “3、烧录WiFi固件工具:ESP_DOWNLOAD_TOOL” 把ESP-01S插上烧录器并接上电脑电脑解压烧录软件并运行,运行后会自动安装驱动。如果没有安装就到 开发工具清单 | 安信可科技 ai-thinker.com 下载 "串口驱动",安装驱动后会出现一个COM设备在烧录软件里选ESP8266,develop。第一行选择刚下载的固件,并在前面打钩,在@后面输 0X000000,FLASH SIZE 选 8Mbit,COM:选刚刚在设备管理器上看到的COM口,我这是COM3,其它的看和我上面对比一下,也选一样的。点START烧录固件。显示完成表示烧录完成。到此tasmota刷写完成,关掉烧录软件。配制WIFI :配制ESP-01S的WIFI把烧录器和ESP-01S从电脑的USB接口上扯出,再从新插到电脑USB接口上,然后到手机上操作。打开手机WIFI,搜索WIF 手机上会多一个tasmota开头的WIFI,后面的字母数字和我手机上的不一样。选择并连接。连上后就会出现这个配置WIFi界面,如果没有出现,就到浏览器里面 输入 192.168.4.1 可以看到这个界面,在这里填上路由器或AP的WIF名称和密码。点击保存,会跳转显示ESP-01S获取到的IP信息页面,因为显示时间比较短,没有截到图。如果在上一步没有看到ESP-01S的IP,就到路由器DHCP客户端上去查看,一个以tasmota开头的设置。到路由器上查看DHCP客户端IP就不详说了,这个大家应该都会。到电脑浏览器里输入ESP-01S的IP(我的是192.168.222.125),如果看到这个界面说明WIFI设置成功,可以到网页上设置了。设置ESP-01S填上安装的MQTT信息,安装MQTT可以看 Home Assistant 篇三:给HA插上翅膀——HACS与MQTT_NAS存储_什么值得买 smzdm.com设置好后保存,保存后会重启。保存后会重启,重启后到主菜单,上面会多出电压电流等信息,不过数据都是0,因为还没有接上PZE-004T。现在设置好了,把ESP-01S和烧录器从电脑上扯下,再把ESP-01S从烧录器上拔下。接线:现在可以装到强电箱上去了。用电工胶把电源模块胶到PZE-004T的外壳上,把ESP-001S放到外里。互感器我是套在入户零线上,因为火线空间太小不好装。现在所有安装都完成了。到 Home Assistant 里面添加MQTT插件这装Home Assistant按 Home Assistant 篇二:群晖Docker安装Home Assistant_NAS存储_什么值得买 smzdm.com 这篇文章安装添加集成如果有需要可以把他们添加个中文别名,点想要修改的一行到这Home Assistant就可以显示电压电流功率总用电量等信息了。月初自动清零和显示电费信息编辑 /config/configuration.yaml 文件,怎么找到这个文件请查看 Home Assistant 篇二:群晖Docker安装Home Assistant_NAS存储_什么值得买 smzdm.com ,添加以下代码,用来显示电费和月初1号0点清空总电量。sensor: #本月电费 - platform: template sensors: zong_dianfei: value_template: > {% set dianlian=states"sensor.tasmota_energy_total" | float %} {% set onedianjia=0.588 %} {% set twodianjia=0.05 %} {% set threedianjia=0.25 %} {% set onedianlian=200 %} {% set twodianlian1=350 %} {% set twodianlian2=450 %} {% set two1month=[4,5,6,10,11,12] %} {% if now.month in two1month %} {% set twodianlian=twodianlian1 %} {% else %} {% set twodianlian=twodianlian2 %} {% endif %} {% if dianlian > twodianlian %} {% set threedianfei= dianlian - twodianlian * threedianjia %} {% else %} {% set threedianfei=0 %} {% endif %} {% if dianlian > onedianlian %} {% set twodianfei= dianlian - onedianlian * twodianjia %} {% else %} {% set twodianfei=0 %} {% endif %} {% set zong_dianfei=dianlian * onedianjia + twodianfei + threedianfei %} {% ifzong_dianfei>0 %} {{ zong_dianfei | round2 }} {% endif %} friendly_name: 'zong_dianfei' unit_of_measurement: "RMB" #今日电费,本月电费-本月今天以前的电费 - platform: template sensors: jintian_dianfei: value_template: > {% set dianlian=states"sensor.tasmota_energy_total" | float %} {% set jintiandianlian=states"sensor.tasmota_energy_today" | float %} {% set onedianjia=0.588 %} {% set twodianjia=0.05 %} {% set threedianjia=0.25 %} {% set onedianlian=200 %} {% set twodianlian1=350 %} {% set twodianlian2=450 %} {% set two1month=[4,5,6,10,11,12] %} {% if now.month in two1month %} {% set twodianlian=twodianlian1 %} {% else %} {% set twodianlian=twodianlian2 %} {% endif %} {% if dianlian > twodianlian %} {% set threedianfei= dianlian - twodianlian * threedianjia %} {% else %} {% set threedianfei=0 %} {% endif %} {% if dianlian > onedianlian %} {% set twodianfei= dianlian - onedianlian * twodianjia %} {% else %} {% set twodianfei=0 %} {% endif %} {% set zongdianfei= dianlian * onedianjia + twodianfei + threedianfei %} {% set before_dianliang= dianlian - jintiandianlian %} {% if before_dianliang > twodianlian %} {% set threedianfei= before_dianliang - twodianlian * threedianjia %} {% else %} {% set threedianfei=0 %} {% endif %} {% if before_dianliang > onedianlian %} {% set twodianfei= before_dianliang - onedianlian * twodianjia %} {% else %} {% set twodianfei=0 %} {% endif %} {% set before_dianfei= before_dianliang * onedianjia + twodianfei + threedianfei %} {% set jintian_dianfei=zongdianfei - before_dianfei %} {% ifjintian_dianfei>0 %} {{ jintian_dianfei | round2 }} {% endif %} friendly_name: 'jintian_dianfei' unit_of_measurement: "RMB" #昨日电费,本月今天以前的电费-本月昨天以前的电费 - platform: template sensors: zuotian_dianfei: value_template: > {% set dianlian=states"sensor.tasmota_energy_total" | float %} {% set jintiandianlian=states"sensor.tasmota_energy_today" | float %} {% set zuotiandianlian=states"sensor.tasmota_energy_yesterday" | float %} {% set onedianjia=0.588 %} {% set twodianjia=0.05 %} {% set threedianjia=0.25 %} {% set onedianlian=200 %} {% set twodianlian1=350 %} {% set twodianlian2=450 %} {% set two1month=[4,5,6,10,11,12] %} {% if now.month in two1month %} {% set twodianlian=twodianlian1 %} {% else %} {% set twodianlian=twodianlian2 %} {% endif %} {% set before_dianliang= dianlian - jintiandianlian %} {% if before_dianliang > twodianlian %} {% set threedianfei= before_dianliang - twodianlian * threedianjia %} {% else %} {% set threedianfei=0 %} {% endif %} {% if before_dianliang > onedianlian %} {% set twodianfei= before_dianliang - onedianlian * twodianjia %} {% else %} {% set twodianfei=0 %} {% endif %} {% set before_dianfei= before_dianliang * onedianjia + twodianfei + threedianfei %} {% set zuotian_before_dianliang= dianlian - jintiandianlian - zuotiandianlian %} {% if zuotian_before_dianliang > twodianlian %} {% set threedianfei= zuotian_before_dianliang - twodianlian * threedianjia %} {% else %} {% set threedianfei=0 %} {% endif %} {% if zuotian_before_dianliang > onedianlian %} {% set twodianfei= zuotian_before_dianliang - onedianlian * twodianjia %} {% else %} {% set twodianfei=0 %} {% endif %} {% set zuotian_before_dianfei= zuotian_before_dianliang * onedianjia + twodianfei + threedianfei %} {% set zuotian_dianfei = before_dianfei - zuotian_before_dianfei %} {% if zuotian_dianfei>0 %} {{ zuotian_dianfei | round2 }} {% endif %} friendly_name: 'zuotian_dianfei' unit_of_measurement: "RMB"#计量清零automation: - id: 'monitor_clear' alias: 月初清零电表 initial_state: true hide_entity: false trigger: - platform: template value_template: '{{ states"sensor.tasmota_energy_today" | round3 == 0.000 }}' condition: - condition: template value_template: '{{ now.strftime"%d" | int == 1 }}' action: - service: mqtt.publish data: topic: 'cmnd/sonoff/EnergyReset2' payload: '0' - service: mqtt.publish data: topic: 'cmnd/sonoff/EnergyReset3' payload: '0'里面的 0.588 为基本电价,0.05为二档电价-一档电价,0.25三档电价-二档电价,4,5,6,10,11,12这几个月为春秋季二档电量为350度,其它几个月为冬夏季二档电量为450度。如果不同就按照修改。这样就可以每月1号0点把总电量清零变成月电量和显示电费了。用 Node-RED 把用电信息推送到企业微信Home Assistant 篇一:从Node-RED与微信推送谈起_NAS存储_什么值得买 smzdm.com 这篇已经告诉我们怎么用Node_RED把信息推送到企业微信,现在我们要做的就是Node-RED提取Home Assistant信息处理好后再推送。Node-RED安装Home Assistant插件登录安装好的Node-RED,再到节点管理添加 node-red-contrib-home-assistant-websocket 插件 导入以下流程[ { "id": "dcbd8ed9f4179814", "type": "inject", "z": "b58a7128aa4b97b4", "name": "每天9点发送用电信息", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "00 09 * * *", "once": false, "onceDelay": 0.1, "topic": "", "payloadType": "date", "x": 460, "y": 180, "wires": [ [ "82a8fda3f504513e", "1dc399c57821bd14", "5cd3531c2512bffd", "9f24f15912873f5b" ] ] }, { "id": "82a8fda3f504513e", "type": "api-current-state", "z": "b58a7128aa4b97b4", "name": "昨天用电量", "server": "e8349c19021c66e6", "version": 2, "outputs": 1, "halt_if": "", "halt_if_type": "num", "halt_if_compare": "is", "entity_id": "sensor.tasmota_energy_yesterday", "state_type": "num", "blockInputOverrides": false, "outputProperties": [ { "property": "payload1", "propertyType": "msg", "value": "", "valueType": "entityState" }, { "property": "data1", "propertyType": "msg", "value": "", "valueType": "entity" } ], "override_topic": false, "state_location": "payload", "override_payload": "msg", "entity_location": "data", "override_data": "msg", "x": 690, "y": 120, "wires": [ [ "84eed89c4ae0a7e5" ] ] }, { "id": "96391bb46eab6444", "type": "function", "z": "b58a7128aa4b97b4", "name": "", "func": "nvar message=msg.payload;nnvar desc='本月已用电量:'+ message[2] + 'KWHrn';ndesc+='本月已用电费:'+ message[3] + '元rn';ndesc+='昨天用电量:'+ message[0] + 'KWHrn';ndesc+='昨天电费:'+ message[1] + '元';nnwechat = {n "touser" : "@all",n "msgtype": "textcard",n "textcard": {n "title": '家庭用电详情',n "description" : desc,n "url" : `Home Assistant网址和端口`,n "btntxt":"查看详情",n },n}nnmsg.payload = {};nmsg.payload = wechat;nnreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 770, "y": 420, "wires": [ [ "2252d013b647ef4f" ] ] }, { "id": "2252d013b647ef4f", "type": "bizwechat-push", "z": "b58a7128aa4b97b4", "name": "", "bizwechat": "c36787cd99e1d359", "x": 900, "y": 420, "wires": [ [] ] }, { "id": "1dc399c57821bd14", "type": "api-current-state", "z": "b58a7128aa4b97b4", "name": "昨天电费", "server": "e8349c19021c66e6", "version": 2, "outputs": 1, "halt_if": "", "halt_if_type": "str", "halt_if_compare": "is", "entity_id": "sensor.zuotian_dianfei", "state_type": "num", "blockInputOverrides": false, "outputProperties": [ { "property": "payload2", "propertyType": "msg", "value": "", "valueType": "entityState" }, { "property": "data2", "propertyType": "msg", "value": "", "valueType": "entity" } ], "override_topic": false, "state_location": "payload", "override_payload": "msg", "entity_location": "data", "override_data": "msg", "x": 680, "y": 160, "wires": [ [ "84eed89c4ae0a7e5" ] ] }, { "id": "5cd3531c2512bffd", "type": "api-current-state", "z": "b58a7128aa4b97b4", "name": "本月已用电量", "server": "e8349c19021c66e6", "version": 2, "outputs": 1, "halt_if": "", "halt_if_type": "str", "halt_if_compare": "is", "entity_id": "sensor.tasmota_energy_total", "state_type": "num", "blockInputOverrides": false, "outputProperties": [ { "property": "payload3", "propertyType": "msg", "value": "", "valueType": "entityState" }, { "property": "data3", "propertyType": "msg", "value": "", "valueType": "entity" } ], "override_topic": false, "state_location": "payload", "override_payload": "msg", "entity_location": "data", "override_data": "msg", "x": 700, "y": 200, "wires": [ [ "84eed89c4ae0a7e5" ] ] }, { "id": "9f24f15912873f5b", "type": "api-current-state", "z": "b58a7128aa4b97b4", "name": "本月已用电费", "server": "e8349c19021c66e6", "version": 2, "outputs": 1, "halt_if": "", "halt_if_type": "str", "halt_if_compare": "is", "entity_id": "sensor.zong_dianfei", "state_type": "num", "blockInputOverrides": false, "outputProperties": [ { "property": "payload4", "propertyType": "msg", "value": "", "valueType": "entityState" }, { "property": "data4", "propertyType": "msg", "value": "", "valueType": "entity" } ], "override_topic": false, "state_location": "payload", "override_payload": "msg", "entity_location": "data", "override_data": "msg", "x": 700, "y": 240, "wires": [ [ "84eed89c4ae0a7e5" ] ] }, { "id": "bbfb4fd669583aba", "type": "debug", "z": "b58a7128aa4b97b4", "name": "", "active": false, "tosidebar": true, "console": true, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload", "statusType": "auto", "x": 920, "y": 300, "wires": [] }, { "id": "a7061ef619785c6a", "type": "join", "z": "b58a7128aa4b97b4", "name": "合并成数组", "mode": "custom", "build": "array", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "n", "joinerType": "str", "accumulate": false, "timeout": "", "count": "4", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 430, "y": 420, "wires": [ [ "759804d789b42f8e", "ea66b8ca18cc54ae" ] ] }, { "id": "84eed89c4ae0a7e5", "type": "function", "z": "b58a7128aa4b97b4", "name": "合并", "func": "nreturn { payload:[msg.payload1, msg.payload2,msg.payload3,msg.payload4]};n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 890, "y": 180, "wires": [ [ "a7061ef619785c6a" ] ] }, { "id": "759804d789b42f8e", "type": "debug", "z": "b58a7128aa4b97b4", "name": "", "active": false, "tosidebar": true, "console": true, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload", "statusType": "auto", "x": 800, "y": 540, "wires": [] }, { "id": "ea66b8ca18cc54ae", "type": "function", "z": "b58a7128aa4b97b4", "name": "合并成一个数组", "func": "var redata=[0,0,0,0]nfor var x in msg.payloadn{n var data=msg.payload[x];n forvar i =0;i=i-1 && data[i] && data[i]>0{n redata[i]=data[i];n }n }n}nreturn { payload:redata};n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 620, "y": 420, "wires": [ [ "bbfb4fd669583aba", "96391bb46eab6444" ] ] }, { "id": "e8349c19021c66e6", "type": "server", "name": "Home Assistant", "version": 1, "legacy": false, "addon": false, "rejectUnauthorizedCerts": true, "ha_boolean": "y|yes|true|on|home|open", "connectionDelay": true, "cacheJson": true }, { "id": "c36787cd99e1d359", "type": "bizwechat-configurator", "name": "企业微信推送", "port": "3001", "corpid": "", "agentid": "", "corpsecret": "", "url": "", "token": "", "aeskey": "", "client_id": "", "client_secret": "" }] 最后点部署。。。。到此所有工作做完了。最后欢迎收藏、评论、点赞。
微信的“支付有优惠”如何赠送金币给好友
微信的支付有优惠小程序可以收集金币,终于换购一定金额的免费提现券,但是一个额度的兑换券一周只能兑换一次,比较麻烦,想委托身边的朋友帮忙购买,他们往往又没有金币,怎么办呢?唯一的解决办法就是把你多的金币赠送给好友一些。如何赠送呢?【1】打开微信小程序“支付有优惠”【2】在存放金币的瓶子界面,把手机头朝下倒置。平放不行,得倒置。这样会触发金币被倒出来的功能。【3】再把手机正过来,小程序就会跳出赠送金币的界面。最多赠送9个。提示:自己做测试的话用1个试,因为不管你最后选没选赠送人,系统都会默认金币被赠送了,直到12小时没人领才会给你退回来。用这个方法可以用自己的多个微信号提现,不过我没尝试,大家可以试试。


