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 RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
hardware:controllers:m-bus [2011/11/27 20:59] – [Test] Formatierung geändert justinotherguysoftware:controller:m-bus [2018/01/25 13:30] – Syntax jau
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>
  
Zeile 69: Zeile 99:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --verbose ./mbus-cmd --verbose
 </code> </code>
Zeile 75: Zeile 106:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --sql-out ./mbus-cmd --sql-out
 </code> </code>
Zeile 83: 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.txt · Zuletzt geändert: 2023/05/17 21:06 von raptorsds