
一个项目,以读取智能电表的仪表读数,在数据库中写入并可视化。



随后输入数据库的data文件夹,带有私人旧电表。 python包含用于读取仪表支架的Python脚本。
使用Raspberry Pi模型A。两名IR读者通过USB连接到此。在这里订购:Weidmann Elektronik提供的智能电表是EMH Company的EHZ。
在SD卡(最小8GB)上安装Raspberry Pi图像Raspberry Pi Image(Raspbian)。说明使标准设置是关于时间并扩大内存的时间:
sudo raspi-config
sudo apt-get upgrade all将Python脚本python复制到Raspberry。例如通过FTP。我将数据复制到homepiDocumentsEHZ文件夹中。
现在,您仍然必须调整Python脚本。要测试哪些消息,电表发送了所有内容,以便您可以调用脚本pythonSensortest.py 。在此之前,您应该确保在此处输入正确的模拟连接。当然,您还必须关注奇偶校验并停止碎屑。默认情况下,IR读取头与devttyUSB0绑定。看着您可以在以下设备下在其前面搜索:
cd dev pythonSensortest.py之后,应该出现不同的消息。但是,仅发出包括仪表读数的相关领口。
# 77078181c78203ff0101010104454d4801
# 77070100000009ff010101010b06454d480104c56ec5bd01
# 77070100020800ff6400000001621e52ff5600020f37e201
# 77070100020801ff0101621e52ff5600020f37e201 //Zählerstand
# 77070100100700ff0101621b52ff550000000001 //momentaner Bezug / Leistung
# 77078181c78205ff01726201650136ece901018302739899a4350308b2be3a7022b69067cf0a021eb85e02a2f95810a06a6a1f5e48ed56bc3a53e771f68d66540c260e6d1c010101+现在,您查看那里的OBIS指标在那里被识别。通常,这应该是参考01-08-01和交付02-08-01 。在示例中,这是在3。行中:77070100 020801 FF0101621E5600020F37E201您想要的值在ff56和01之间: 00020f37e2 。然后将该十六进制值转换为10^4的整数值。然后,您将获得所需的结果。
如果您找到了相应的值,您会注意到OBIS指标的数字序列。例如: 77070100020801ff 。然后将其作为搜索参数输入到脚本中。我的脚本基于亚历山大·卡布扎(Alexander Kabza)的脚本。我已经处理了这样的方式,即一旦读取消息,该值就会写在数据库中。然后,我将有关Python脚本的可执行外壳脚本。
外壳脚本:
#! /bin/bash
sudo python /home/pi/Documents/EHZ/strombezug.py使可执行
chmod +x strombezug.sh然后,我让脚本在晚上11:59运行一次。由Cronjob。 Cronjobs阅读
crontab -e创建 /修改。并与
crontab -l您可以显示所有Cronjobs。
59 23 * * * /home/pi/Documents/EHZ/stromlieferung.sh
59 23 * * * /home/pi/Documents/EHZ/strombezug.sh因此,我明白了光伏系统每天所做的事情或房屋每天消耗的电力,然后可以呈现整个事物以后可视化。
sudo apt-get mysql-server mysql-client apache2 php5-cgi php5-mysql-mysql用户创建用户并创建数据库-greate sql -mysql访问数据到python脚本 / save / in index.php和api.php中
数据库包含一个保存计数器的表。计数器具有ID,名称和偏移。使用新计数器时,该偏移用于保存计数器状态。因此,您可以创建一个新的计数器,其中offset =旧计数器的仪表比例。因此,您可以稍后精确地进行计算。
还有一张用于盖子和交付的桌子,其中仪表ID,时间戳和仪表状态保存。如果需要,您还可以运行一个脚本,该脚本写入计数器的当前值,即每秒每秒的当前性能 /引用。当然,您也可以对此进行不同的解决。
todo create-sql
为了进行可视化,我写了一个小的API,例如,该API每月返回每月的值或JSON格式的值。为了显示整体,我使用oss Chart.js。然后让API使用AJAX获取值。
?q=yearly每年的价值(交货)
?q=yearlybezug一个价值(参考)
?q=year&y=xxxx年度为每年一个值xxxx
?q=year所有现有年度每月的价值
?q=c返回仪表量表的当前值(交付 +盖)
?q=w给出了最后7天的值
http://wiki.volkszaehler.org/sml http://www.kabza.de/myhome/rpi.html