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 13:57] – Config Dateien aufbereitet sven_anderssoftware: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!):
  
-''$mbusPort="/dev/messbus"; # or /dev/ttyS0 ..''+<code> 
 +$mbusPort="/dev/messbus"; # or /dev/ttyS0 .. 
 +$vzURL="http://host.domain/volkszaehler/middleware.php/"; 
 +$mbusBaudrate=2400;'' 
 +</code>
  
-''$vzURL="http://host.domain/volkszaehler/middleware.php/";''+In der Datei: ''/var/lib/mbus/vzold'' werden Zählerstände gespeichert, weil der Volkszaehler z.Zt nur mit relativen Verbrauchswerten umgehen kann.
  
-''$vzOldFile="/root/.mbus-vzold";''+Jetzt auf dem Mbus nach Devices suchen
  
-''$mbusserial="/root/.mbusserial";''+<code> 
 +./mbus-cmd --genserial 
 +</code>
  
-''$mbusBaudrate=2400;''+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.:
  
-In der DateivzOldFile werden Zählerstände gespeichert, weil der Volkszaehler z.Zt nur mit relativen Verbrauchswerten umgehen kann.+Can't locate Device/SerialPort.pm in @INC (@INC contains/etc/perl
  
-Jetzt auf dem Mbus nach Devices suchen+sucht man z.B. in Google nach dieser Fehlermeldung findet man schnell einen Hinweis, dass mit 
 +<code> 
 +apt-get install libdevice-serialport-perl 
 +</code> 
  
-''./mbus-cmd --genserial''+die entsprechende Bibliothek nachinstalliert werden mussWenn alles da ist, startet der Scan und die Seriellen Adressen werden in der Datei: 
 +/etc/mbus/serialno gespeichert.
  
-Die Seriellen Adressen werden in der Datei+Sicherstellen, das in diese Datei nur Root schreiben darf, aber mbus lesen kann.
-$mbusserial gespeichert.+
  
 Jedes M-Bus Device kann wiederum viele Zähler zurückliefen. Jedes M-Bus Device kann wiederum viele Zähler zurückliefen.
  
-''./mbus-cmd -print-busconf''+<code> 
 +./mbus-cmd -print-mbusconf 
 +</code> 
  
 Bekommt man eine Ausgabe aller Zähler Bekommt man eine Ausgabe aller Zähler
  
-''$vzUuid{"09999999-Fabriknummer"}="";# (09999999) ''+<code> 
 +$vzUuid{"09999999-Fabriknummer"}="";# (09999999)  
 +$vzUuid{"09999999-Heizenergie"}="";# (00060958)  
 +$vzUuid{"09999999-Volumen"}="";# (11245.24) 
 +$vzUuid{"09999999-Fliessgeschwindigkeit"}="";# (1.534) 
 +... 
 +</code>
  
-''$vzUuid{"09999999-Heizenergie"}="";# (00060958) '' 
  
-''$vzUuid{"09999999-Volumen"}="";# (11245.24) ''+Jetzt Zähler anlegen, z.B. mit dem [[hardware:controllers:software:clients:vzclient]]
  
-''$vzUuid{"09999999-Fliessgeschwindigkeit"}="";# (1.534) '' 
  
 +Diese Zeilen können nun mit der uuid in die bestehende mbusconf.pm übernommen werden, also z.B.:
  
-Jetzt Zähler anlegen, z.Bmit dem [[software/clients/vzclient]]+<code> 
 +$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)  
 +</code>
  
 +===== Tipp: Device Konfiguration mit udev =====
  
-Diese Zeilen können nun mit der uuid in die bestehende mbusconf.pm übernommen werden, also z.B.:+Durch das Anlegen einer Datei ''/etc/udev/rules.d/99-usb-serial.rules'' mit ungefähr dem Inhalt:
  
-''$vzUuid{"09999999-Heizenergie"}="503ad3d0-18d4-11e1-9d30-8f7c5e0b88b1";# (09999999) ''+  SUBSYSTEM=="tty",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001",ATTRS{serial}=="FTF4ADX9",OWNER="mbus",SYMLINK+="messbus"
  
-''$vzUuid{"09999999-Volumen"}="669bd360-18d4-11e1-8c33-055342b3cb21";# (11245.24''+(alles in einer Zeile!)
  
-''$vzUuid{"09999999-Fliessgeschwindigkeit"}="6c345080-18d4-11e1-8e07-7d37ae5b0848";# (1.534''+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 --p $(udevadm info -q path -n /dev/ttyUSB0) 
 +</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 76: 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