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
Letzte ÜberarbeitungBeide Seiten der Revision
hardware:controllers:m-bus [2011/12/03 08:49] – [Konfiguration] sven_anderssoftware:controller:m-bus [2023/05/17 21:05] – [Installation] raptorsds
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
  
 +Standart M-Bus
 +2400Baud 8b even 1stop
 +
 +möglich auch
 + 300Baud 8b even 1stop 
 +oder selten 
 +9600Baud 8b even 1stop
 ===== Vorraussetzungen ===== ===== Vorraussetzungen =====
  
Zeile 10: Zeile 17:
  
 ===== Installation ===== ===== Installation =====
 +Quellpaket [[https://wiki.volkszaehler.org/_media/software/controller/m-bus.zip]] herunterladen und entpacken und ausführbar machen.
 +<code>
 +wget https://wiki.volkszaehler.org/_media/software/controller/m-bus.zip
 +</code>
 +<code>
 +unzip m-bus.zip
 +</code>
 +<code>
 +cd m-bus
 +</code>
 +<code>
 +chmod +x install.sh
 +</code>
 +<code>
 +./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.
  
-useradd -r -c "Messbus Cron User" -d /var/lib/mbus  -m mbus +Es kann vorkommen das man einen Neustart machen muss damit der Neue Benutzer richtig erkannt wird 
- +
-mkdir /etc/mbus +
- +
-cd volkszaehler.org/misc/controller/mbus  +
- +
-evtl. mkdir /usr/local/lib/site_perl +
- +
-cp mbus.pm /usr/local/lib/site_perl/ +
- +
-cp mbus-cmd /usr/local/bin/ +
- +
-chmod 755 /usr/local/bin/mbus-cmd +
- +
-cp mbusconf.pm /etc/mbus +
- +
-chmod 644 /etc/mbus/mbusconf.pm +
- +
 ===== Konfiguration ===== ===== Konfiguration =====
  
 Den Seriellen Pegelwandler an den PC anschließen 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!):+In der Datei ''/etc/mbus/mbusconf.pm'' Einstellungen zum Port Baudrate etc. vornehmen, die Einstellungen sind dort mit # einkommentiert (die # entfernen!):
  
 <code> <code>
Zeile 43: Zeile 49:
 </code> </code>
  
-In der Datei: /var/lib/mbus/vzold 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 51: Zeile 57:
 </code> </code>
  
 +Fehlermöglichkeiten
 +  - Serial
 +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.:
  
-Die Seriellen Adressen werden in der Datei:+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>  
 + 
 +  - LWP 
 +Can't locate LWP.pm in @INC 
 +<code> 
 +apt-get install libwww-perl 
 +</code>  
 + 
 + 
 +  - simple LWP 
 +Can't locate LWP/simple.pm in @INC 
 +<code> 
 +perl -MCPAN -e'install "LWP::Simple"' 
 +</code> 
 +!dieser Befehl kompiliert auch weiter PM Files und könnte etwas länger dauern 
 + 
 + 
 +  - simple Lock 
 +Can't locate LockFile/simple.pm in @INC 
 +<code> 
 +perl -MCPAN -e'install "LockFile::Simple"' 
 +</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. /etc/mbus/serialno gespeichert.
  
Zeile 60: Zeile 97:
  
 <code> <code>
-./mbus-cmd -print-busconf+./mbus-cmd -print-mbusconf
 </code> </code>
  
Zeile 75: Zeile 112:
  
  
-Jetzt Zähler anlegen, z.B. mit dem [[software/clients/vzclient]]+Jetzt Zähler anlegen, z.B. mit dem [[software:frontends:frontend]]
  
  
Zeile 81: Zeile 118:
  
 <code> <code>
-$vzUuid{"09999999-Heizenergie"}="503ad3d0-18d4-11e1-9d30-8f7c5e0b88b1";# (09999999+$vzUuid{"09999999-Heizenergie"}="503ad3d0-18d4-11e1-9d30-8f7c5e0b88b1";# (00060958
 $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 89: Zeile 142:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --verbose ./mbus-cmd --verbose
 </code> </code>
Zeile 95: Zeile 149:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --sql-out ./mbus-cmd --sql-out
 </code> </code>
Zeile 103: Zeile 158:
 ===== 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> <code>
-#!/bin/bash +chmod 666 /var/lib/mbus/vzold 
-cd /usr/local/m-bus +
-/usr/bin/perl mbus-cmd+
 </code> </code>
  
-/etc/cron.d/mbus:+eingeben.  
 + 
 +''/etc/cron.d/mbus'':
 <code> <code>
-*/3 * * * *    root    /usr/local/bin/mbus-cron.sh +*/3 * * * *    mbus    /usr/local/bin/mbus-cmd
 </code> </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