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/12/03 08:45] – [Installation] sven_anderssoftware:controller:m-bus [2023/05/14 21:24] – [M-Bus Controller] 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 mbus
 +</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  
 +===== Konfiguration =====
  
-mkdir /etc/mbus+Den Seriellen Pegelwandler an den PC anschließen
  
-cd volkszaehler.org/misc/controller/mbus +In der Datei ''/etc/mbus/mbusconf.pm'' Einstellungen zum Port Baudrate etc. vornehmen, die Einstellungen sind dort mit # einkommentiert (die # entfernen!):
  
-evtlmkdir /usr/local/lib/site_perl+<code> 
 +$mbusPort="/dev/messbus"; # or /dev/ttyS0 .
 +$vzURL="http://host.domain/volkszaehler/middleware.php/"; 
 +$mbusBaudrate=2400;'' 
 +</code>
  
-cp mbus.pm /usr/local/lib/site_perl/+In der Datei: ''/var/lib/mbus/vzold'' werden Zählerstände gespeichert, weil der Volkszaehler z.Zt nur mit relativen Verbrauchswerten umgehen kann.
  
-cp mbus-cmd /usr/local/bin/+Jetzt auf dem Mbus nach Devices suchen. 
  
-chmod 755 /usr/local/bin/mbus-cmd+<code> 
 +./mbus-cmd --genserial 
 +</code>
  
-cp mbusconf.pm /etc/mbus+Fehlermöglichkeiten 
 +  - Serial 
 +Je nach Installation kann die Installation verschiedener perl-Bibliotheken erforderlich seinDas erkennt man daran, dass der mbus-cmd Befehl Fehlermeldungen ausgibt wie z.B.:
  
-chmod 644 /etc/mbus/mbusconf.pm+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> 
  
-===== Konfiguration =====+  - LWP 
 +Can't locate LWP.pm in @INC 
 +<code> 
 +apt-get install libwww-perl 
 +</code> 
  
-Den Seriellen Pegelwandler an den PC anschließen 
- 
-In der Datei mbusconf.pm Einstellungen zum Port Baudrate etc. vornehmen: 
  
 +  - simple LWP
 +Can't locate LWP/simple.pm in @INC
 <code> <code>
-$mbusPort="/dev/messbus"; # or /dev/ttyS0 .. +perl -MCPAN -e'install "LWP::Simple"'
-$vzURL="http://host.domain/volkszaehler/middleware.php/"+
-$vzOldFile="/root/.mbus-vzold"; +
-$mbusserial="/root/.mbusserial"; +
-$mbusBaudrate=2400;''+
 </code> </code>
 +!dieser Befehl kompiliert auch weiter PM Files und könnte etwas länger dauern
  
-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.  
  
 +  - simple Lock
 +Can't locate LockFile/simple.pm in @INC
 <code> <code>
-./mbus-cmd --genserial+perl -MCPAN -e'install "LockFile::Simple"'
 </code> </code>
  
-Die Seriellen Adressen werden in der Datei: +die entsprechende Bibliothek nachinstalliert werden muss. Wenn alles da ist, startet der Scan und die Seriellen Adressen werden in der Datei: 
-$mbusserial gespeichert.+/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 70: Zeile 108:
 $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 [[software:frontends:frontend]]
  
  
Zeile 79: 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 87: Zeile 142:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --verbose ./mbus-cmd --verbose
 </code> </code>
Zeile 93: Zeile 149:
  
 <code> <code>
 +su - mbus
 ./mbus-cmd --sql-out ./mbus-cmd --sql-out
 </code> </code>
Zeile 101: 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