Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
M-Bus Controler
Der Mbus Controler dient zur Anbindung des Meter-Bus http://de.wikipedia.org/wiki/M-Bus_(Feldbus)an den Volkszaehler
Vorraussetzungen
- M-Bus Zähler
- Serieller Pegelwandler
- PC oder ähnliches mit Perl mit Device::SerialPort Perl-Modul
Installation
Die Dateien unter: volkszaehler.org/misc/controller/mbus in ein beliebiges Verzeichnis (z.B. /usr/local/m-bus) kopieren.
Konfiguration
Den Seriellen Pegelwandler an den PC anschließen
In der Datei mbusconf.pm Einstellungen zum Port Baudrate etc. vornehmen:
$mbusPort="/dev/messbus"; # or /dev/ttyS0 .. $vzURL="http://host.domain/volkszaehler/middleware.php/"; $vzOldFile="/root/.mbus-vzold"; $mbusserial="/root/.mbusserial"; $mbusBaudrate=2400;''
In der Datei: vzOldFile werden Zählerstände gespeichert, weil der Volkszaehler z.Zt nur mit relativen Verbrauchswerten umgehen kann.
Jetzt auf dem Mbus nach Devices suchen.
./mbus-cmd --genserial
Die Seriellen Adressen werden in der Datei: $mbusserial gespeichert.
Jedes M-Bus Device kann wiederum viele Zähler zurückliefen.
./mbus-cmd -print-busconf
Bekommt man eine Ausgabe aller Zähler
$vzUuid{"09999999-Fabriknummer"}="";# (09999999) $vzUuid{"09999999-Heizenergie"}="";# (00060958) $vzUuid{"09999999-Volumen"}="";# (11245.24) $vzUuid{"09999999-Fliessgeschwindigkeit"}="";# (1.534)
Jetzt Zähler anlegen, z.B. mit dem vzclient
Diese Zeilen können nun mit der uuid in die bestehende mbusconf.pm übernommen werden, also z.B.:
$vzUuid{"09999999-Heizenergie"}="503ad3d0-18d4-11e1-9d30-8f7c5e0b88b1";# (09999999) $vzUuid{"09999999-Volumen"}="669bd360-18d4-11e1-8c33-055342b3cb21";# (11245.24) $vzUuid{"09999999-Fliessgeschwindigkeit"}="6c345080-18d4-11e1-8e07-7d37ae5b0848";# (1.534)
Test
./mbus-cmd --verbose
Ergibt eine Ausgabe der übertragenen Daten.
./mbus-cmd --sql-out
Kann man alle Zählerstände in einer MySQL Syntax abfragen um zu testen, oder die Zählerstände nochmals zusätzlich zu speichern.
Regelmäßiger Aufruf im Cron
Ein Skript /usr/local/bin/mbus-cron.sh anlegen:
#!/bin/bash cd /usr/local/m-bus /usr/bin/perl mbus-cmd
/etc/cron.d/mbus:
*/3 * * * * root /usr/local/bin/mbus-cron.sh