Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:m-bus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:controller:m-bus [2011/11/27 20:59]
justinotherguy [Konfiguration] Formatierung geändert
software:controller:m-bus [2018/01/25 13:30] (aktuell)
jau Syntax
Zeile 1: Zeile 1:
-====== M-Bus Controler ​======+====== M-Bus Controller ​======
  
-Der Mbus Controler dient zur Anbindung des Meter-Bus ​http://​de.wikipedia.org/​wiki/​M-Bus_(Feldbus)an den Volkszaehler+Der Mbus Controler dient zur Anbindung des [[http://​de.wikipedia.org/​wiki/​M-Bus_(Feldbus)|Meter-Bus]] ​an den Volkszaehler
  
 ===== Vorraussetzungen ===== ===== Vorraussetzungen =====
Zeile 11: Zeile 11:
 ===== Installation ===== ===== Installation =====
  
-Die Dateien unter: ​volkszaehler.org/​misc/​controller/​mbus ​in ein beliebiges Verzeichnis (z.B. /usr/​local/​m-bus) kopieren.+<​code>​ 
 +cd /var/www/volkszaehler.org/​misc/​controller/​mbus 
 +./install.sh 
 +</​code>​
  
 +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 ===== ===== Konfiguration =====
  
 Den Seriellen Pegelwandler an den PC anschließen Den Seriellen Pegelwandler an den PC anschließen
  
-In der Datei mbusconf.pm Einstellungen zum Port Baudrate etc. vornehmen:+In der Datei ''/​etc/​mbus/​mbusconf.pm'' ​Einstellungen zum Port Baudrate etc. vornehmen, die Einstellungen sind dort mit # einkommentiert (die # entfernen!):
  
 <​code>​ <​code>​
 $mbusPort="/​dev/​messbus";​ # or /dev/ttyS0 .. $mbusPort="/​dev/​messbus";​ # or /dev/ttyS0 ..
 $vzURL="​http://​host.domain/​volkszaehler/​middleware.php/";​ $vzURL="​http://​host.domain/​volkszaehler/​middleware.php/";​
-$vzOldFile="/​root/​.mbus-vzold";​ 
-$mbusserial="/​root/​.mbusserial";​ 
 $mbusBaudrate=2400;''​ $mbusBaudrate=2400;''​
 </​code>​ </​code>​
  
-In der Datei: ​vzOldFile ​werden Zählerstände gespeichert,​ weil der Volkszaehler z.Zt nur mit relativen Verbrauchswerten umgehen kann.+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. ​ Jetzt auf dem Mbus nach Devices suchen. ​
Zeile 35: Zeile 37:
 </​code>​ </​code>​
  
-Die Seriellen Adressen werden in der Datei: +Je nach Installation kann die Installation verschiedener perl-Bibliotheken erforderlich sein. Das erkennt man daran, dass der mbus-cmd Befehl Fehlermeldungen ausgibt wie z.B.: 
-$mbusserial ​gespeichert.+ 
 +Can't locate Device/​SerialPort.pm in @INC (@INC contains: /etc/perl 
 + 
 +sucht man z.B. in Google nach dieser Fehlermeldung findet man schnell einen Hinweis, dass mit 
 +<​code>​ 
 +apt-get install libdevice-serialport-perl 
 +</​code>​  
 + 
 +die entsprechende Bibliothek nachinstalliert werden muss. Wenn alles da ist, startet der Scan und 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. Jedes M-Bus Device kann wiederum viele Zähler zurückliefen.
  
 <​code>​ <​code>​
-./mbus-cmd -print-busconf+./mbus-cmd -print-mbusconf
 </​code>​ </​code>​
  
Zeile 52: Zeile 65:
 $vzUuid{"​09999999-Volumen"​}="";#​ (11245.24) $vzUuid{"​09999999-Volumen"​}="";#​ (11245.24)
 $vzUuid{"​09999999-Fliessgeschwindigkeit"​}="";#​ (1.534) $vzUuid{"​09999999-Fliessgeschwindigkeit"​}="";#​ (1.534)
 +...
 </​code>​ </​code>​
  
  
-Jetzt Zähler anlegen, z.B. mit dem [[software/clients/vzclient]]+Jetzt Zähler anlegen, z.B. mit dem [[hardware:​controllers:​software:clients:vzclient]]
  
  
Zeile 64: Zeile 78:
 $vzUuid{"​09999999-Volumen"​}="​669bd360-18d4-11e1-8c33-055342b3cb21";#​ (11245.24) ​ $vzUuid{"​09999999-Volumen"​}="​669bd360-18d4-11e1-8c33-055342b3cb21";#​ (11245.24) ​
 $vzUuid{"​09999999-Fliessgeschwindigkeit"​}="​6c345080-18d4-11e1-8e07-7d37ae5b0848";#​ (1.534) ​ $vzUuid{"​09999999-Fliessgeschwindigkeit"​}="​6c345080-18d4-11e1-8e07-7d37ae5b0848";#​ (1.534) ​
 +</​code>​
 +
 +===== 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:
 +
 +<​code>​
 +udevadm info -a -p $(udevadm info -q path -n /​dev/​ttyUSB0)
 </​code>​ </​code>​
  
 ===== Test ===== ===== Test =====
  
-'''​./mbus-cmd --verbose'''​+<​code>​ 
 +su - mbus 
 +./mbus-cmd --verbose 
 +</​code>​
  
 Ergibt eine Ausgabe der übertragenen Daten. Ergibt eine Ausgabe der übertragenen Daten.
  
-'''​./mbus-cmd --sql-out'''​+<​code>​ 
 +su - mbus 
 +./mbus-cmd --sql-out 
 +</​code>​ 
  
 Kann man alle Zählerstände in einer MySQL Syntax abfragen um zu testen, oder die Zählerstände nochmals zusätzlich ​ zu speichern. Kann man alle Zählerstände in einer MySQL Syntax abfragen um zu testen, oder die Zählerstände nochmals zusätzlich ​ zu speichern.
Zeile 78: Zeile 115:
 ===== Regelmäßiger Aufruf im Cron ===== ===== Regelmäßiger Aufruf im Cron =====
  
-Ein Skript ​/usr/local/bin/mbus-cron.sh anlegen:+Sicherstellen,​ dass die Datei: ''​/var/lib/mbus/​vzold''​ auch im cron geschrieben werden darf, dazu 
 +<​code>​ 
 +chmod 666 /​var/​lib/​mbus/​vzold  
 +</​code>​
  
-''#​!/​bin/​bash +eingeben. ​
-cd /​usr/​local/​m-bus +
-/​usr/​bin/​perl mbus-cmd ​ ''​+
  
-*/3 * * * *    ​root    /​usr/​local/​bin/​mbus-cron.sh ​+''/​etc/​cron.d/​mbus'':​ 
 +<​code>​ 
 +*/3 * * * *    ​mbus    /​usr/​local/​bin/​mbus-cmd 
 +</​code>​
  
 +Nun sollte der Cron alle 3 Minuten laufen, dass lässt sich nun anhand des Datums der Datei ''/​var/​lib/​mbus/​vzold''​ überprüfen.
software/controller/m-bus.1322423942.txt.gz · Zuletzt geändert: 2011/11/27 20:59 von justinotherguy