Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:edl-ehz:e110

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
hardware:channels:meters:power:edl-ehz:e110 [2016/10/16 17:21] jauhardware:channels:meters:power:edl-ehz:e110 [2017/12/31 10:37] (aktuell) – verschoben jau
Zeile 1: Zeile 1:
-====== Landis & Gyr E110 ====== +#redirect hardware/channels/meters/power/edl-ehz/landisgyr_e110
-Dieser z.B. von Stedin verbaute Zähler verhält sich qua Ansprache wie der E350 ([[hardware:channels:meters:power:edl-ehz:e350|]]). +
- +
-===== Hardware ===== +
-Mit einem [[hardware:controllers:ir-schreib-lesekopf|IR-Schreib-Lesekopf]] kann der Zähler bei [[hardware:controllers:ir-schreib-lesekopf#grundlagen|300bd, 7E1]] mittels Initialisierungssequenz "/?!\r\n" die Kommunikation angestoßen werden.  +
- +
-===== Beispielantwort ==== +
-<code> +
---> "/?!\r\n" +
-/AMP45227-0614 +
---> chr(0x06).chr(0x30).chr(0x30).chr(0x30).chr(0x0D).chr(0x0A) +
-0.00.6.0(K86T0000) +
-0.00.6.1(21497110) +
-2.18.1(000000.00) +
-2.18.2(008278.78) +
-2.18.0(008278.78) +
-3.28.1(000000.00) +
-3.28.2(000000.00) +
-3.28.0(000000.00) +
-</code> +
- +
-===== Auslesen per Perl-Script ===== +
-Zum Auslesen dient eine (quick and dirty) modifizierte Version des Perl-Scripts von [[hardware:channels:meters:power:drs155m|]]. +
-Der E110 benötigt etwas mehr Zeit zum Lesen als der DRS155 (read_char_time =3, read_const_time = 10) und sendet 165 chars zurück ($port->read(165)). Der Programmiermodus hat nicht funktioniert und es scheint, dass der E110 keine aktuellen Verbrauchswerte liefert. +
- +
-<code> +
-#!/usr/bin/perl -w +
- +
-# teile von http://www.ip-symcon.de/forum/threads/21407-Stromz%C3%A4hler-mit-RS485/page2 entnommen +
-# 20130802 : ollir +
-# vereinfachte Version von http://wiki.volkszaehler.org/hardware/channels/meters/power/drs155m +
- +
-use Device::SerialPort; +
- +
- +
-my $port = Device::SerialPort->new("/dev/ttyUSB0") || die $!; +
-$port->baudrate(300); +
-$port->databits(7); +
-$port->parity("even"); +
-$port->stopbits(1); +
-$port->handshake("none"); +
-$port->write_settings; +
- +
-$port->purge_all(); +
-$port->read_char_time(3);     # don't wait for each character +
-$port->read_const_time(10); # 100 millisecond per unfulfilled "read" call +
- +
-my $verbose = 11 ; +
- +
-# ======================================== +
-sub sendgetserial { +
-  my ($cmd) = @_; +
-  my $count; +
-  my $saw; +
-  my $sawprint; +
-  my $x; +
- +
-  $port->lookclear; +
-  $port->write( $cmd ); +
- +
-  ($count,$saw)=$port->read(165);   # will read 165 chars +
-  $x=uc(unpack('H*',$saw)); # nach hex wandeln +
- $sawprint = $saw; +
- +
-  $cmd =~ s/\n/\\n/mg; +
-  $cmd =~ s/\r/\\r/mg; +
- +
-  $saw =~ s/\n/\\n/mg; +
-  $saw =~ s/\r/\\r/mg; +
- +
-  if ( $verbose>10 ) { +
-    printf "+++ sendserial\n"+
-    print  " CMD: $cmd \n";  # gibt den Befehl in ASCII aus +
-    print  " COUNT: $count \n";  # gibt die Anzahl der empfangenen Daten aus +
-    print  " HEX: $x \n";  # gibt die empfangenen Daten in Hex aus +
-    print  " ASCII:\n$sawprint \n";  # gibt die empfangenen Daten aus +
-    printf "--- sendserial\n"+
-  } +
- +
-  return $saw; +
-+
-# ======================================== +
- +
-## Variablen +
-my $cmd; +
-my $res; +
-my $counter; +
- +
-# Initialisierung +
-sendgetserial("/?!\r\n"); +
- +
-# Zählerabfrage +
-$cmd = chr(0x06).chr(0x30).chr(0x30).chr(0x30).chr(0x0D).chr(0x0A); +
-$_ = sendgetserial($cmd); +
- +
-s/2\.18\.2\(([0-9]*\.[0-9]*)\)/$1/m; +
- +
-print $1; +
-</code>+
hardware/channels/meters/power/edl-ehz/e110.1476631306.txt.gz · Zuletzt geändert: 2016/10/16 17:21 von jau