Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:m-bus

Dies ist eine alte Version des Dokuments!


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

cd volkszaehler.org/misc/controller/mbus

./install.sh

erzeugt einen Benutzer mbus und packt ihn in die Gruppe dialout damit er auf die Serielle Schnittstelle zugreifen kann. Im Anschluß kopiert das Skript die Dateien in die richtigen Pfade.

Konfiguration

Den Seriellen Pegelwandler an den PC anschließen

In der Datei /etc/mbus/mbusconf.pm Einstellungen zum Port Baudrate etc. vornehmen, die Einstellungen sind dort mit # einkommentiert (die # entfernen!):

$mbusPort="/dev/messbus"; # or /dev/ttyS0 ..
$vzURL="http://host.domain/volkszaehler/middleware.php/";
$mbusBaudrate=2400;''

In der Datei: /var/lib/mbus/vzold 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: /etc/mbus/serialno gespeichert.

Sicherstellen, das in diese Datei nur Root schreiben darf, aber mbus lesen kann.

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) 

Tipp: Device Konfiguration mit udev

Durch das Anlegen einer Datei /etc/udev/rules.d/99-usb-serial.rules mit ungefähr dem Inhalt:

SUBSYSTEM=="tty",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001",ATTRS{serial}=="FTF4ADX9",OWNER="mbus",SYMLINK+="messbus"

(alles in einer Zeile!)

kann man dafür sorgen, das das richtige Device immer /dev/messbus heißt und dem Benutzer mbus gehört. Dann muss das der mbus Benutzer auch nicht in die Gruppe dialout.

Die nötigen Werte für idVendor usw. erhält man mit:

udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)

Test

su - mbus
./mbus-cmd --verbose

Ergibt eine Ausgabe der übertragenen Daten.

su - mbus
./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

/etc/cron.d/mbus:

*/3 * * * *    mbus    /usr/local/bin/mbus-cmd
software/controller/m-bus.1322899644.txt.gz · Zuletzt geändert: 2011/12/03 09:07 von sven_anders