
Проект по считыванию показаний счетчиков интеллектуального счетчика, написания в базе данных и визуализации.



data Папка с частными старыми счетчиками, которые впоследствии были введены в базу данных. python содержит сценарии Python , которые используются для считывания метра.
Используется модель A Raspberry Pi . Два читателя IR связаны с этим через USB. Заказ здесь: Weidmann Elektronik меблированные интеллектуальные счетчики - это EHZ от компании EMH.
Установите изображение Raspberry Pi Raspberry Pi (Raspbian) на SD -карту (мин. 8 ГБ). Инструкции устанавливают стандартные настройки, чтобы быть примерно время и расширить память:
sudo raspi-config
sudo apt-get upgrade all Скопируйте сценарии Python python на малину. Например, через 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 . Затем это вводится в сценарий как параметр поиска. Мои сценарии основаны на сценарии Александра Кабзы. Я обработал его таким образом, чтобы, как только будет прочитано сообщение, значение записано в базе данных. Затем я делаю исполняемый сценарий оболочки о сценарии Python.
Скрипт оболочки:
#! /bin/bash
sudo python /home/pi/Documents/EHZ/strombezug.pyСделать исполняемый файл:
chmod +x strombezug.shЗатем я позволил сценарию работать один раз в 11:59 вечера. Кронджоб. 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 Пользователь Создайте пользователь и создайте базу данных -Create SQL -MysQL Доступ к доступу в Python Scripts / Save / In index.php и Api.php
База данных содержит таблицу, которая сохраняет счетчик. Счетчик имеет идентификатор, имя и смещение. Смещение используется для сохранения состояния счетчика, когда используется новый счетчик. Таким образом, вы создаете новый счетчик со смещением = масштаб измерителя старого счетчика. Таким образом, вы можете сделать расчет точно позже.
Существует также таблица для обложки и доставки, в которой сохраняется идентификатор счетчика, метка времени и состояние счетчика. Если вы хотите, вы также можете запустить сценарий, который записывает текущее значение счетчика, то есть текущая производительность / ссылка на таблицу каждую секунду. Конечно, вы также можете решить это по -другому.
Todo Create-Sql
Для визуализации я написал небольшой 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 https://github.com/chart.js/releases https://jquery.com