
スマートメーターのメーターの測定値を読み取り、データベースに書き込み、視覚化するプロジェクト。



その後、データベースに入力されたプライベートの古いメーターを備えたdataフォルダー。 pythonには、メータースタンドの読み取りに使用されるPythonスクリプトが含まれています。
ラズベリーPIモデルAが使用されます。 2人のIRリーダーがUSBを介してこれに接続されています。ここで注文:Weidmann Elektronikは、EMH会社のEHZです。
Raspberry Pi Image Raspberry Pi Image(Raspbian)をSDカード(Min。8GB)に取り付けます。手順は、時間に関する標準設定を作成し、メモリを拡張します。
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+ここで、どのオビスインジケーターが認識されているかを見ていきます。通常、これはリファレンス01-08-01および配信02-08-01用である必要があります。例では、これは3行:77070100 020801 FF0101621E5600020F37E201で、必要な値はff56と01間にあります: 00020f37e2 。この16進値は、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そのため、太陽光発電システムが1日に行ったこと、または家が1日あたり電気で消費することを手に入れ、後で視覚化されたもの全体を提示することができます。
sudo apt-get mysql-server mysql-client apache2 php5-cgi php5-mysql-mysqlユーザーはユーザーを作成してデータベースを作成します-sql -mysqlアクセスデータにpythonスクリプト / index.phpとapi.phpにアクセス
データベースには、カウンターを保存するテーブルが含まれています。カウンターには、ID、名前、オフセットがあります。オフセットは、新しいカウンターが使用されるときにカウンター状態を保存するために使用されます。したがって、古いカウンターのオフセット=メータースケールを備えた新しいカウンターを作成します。したがって、正確に計算を正確に作成できます。
また、メーターID、タイムスタンプ、メーター状態が保存されるカバーと配信のテーブルもあります。必要に応じて、カウンターの現在の値、つまり現在のパフォーマンス /テーブルへの参照を毎秒書き込むスクリプトを実行することもできます。もちろん、それを別の方法で解決することもできます。
todo create-sql
視覚化のために、たとえば、JSON形式で年間の値または年間値を返す小さなAPIを書きました。その後、全体を表示するには、oss chart.jsを使用します。次に、AJAXを使用してAPIに値を取得させます。
?q=yearlyの価値(配達)
?q=yearlybezug (参照)
?q=year&y=xxxx年の月に1つの値xxxx
?q=year
?q=cメータースケールの現在の値を返します(配信 +カバー)
?q=w最後の7日前の値を与えます
http://wiki.volkszaehler.org/sml http://www.kabza.de/rpi.html https://github.com/chart.js/releases https://jquery.com