ja da hab' ich schon geguckt und nun nochmal, aber kein Hinweis gefunden.
vermute dass damit das Ergebnis der Obis Zahl (also der Wert) ausgeklammert wird?!
Aber ob das so ist, bzw wie man auf die Hex kommt ist mir nicht klar.
Grüße,
Lio
Ankündigung
Einklappen
Keine Ankündigung bisher.
Zählerabfrage als Wiregate Plugin
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Die habe ich aus dem IP-SymCon Forum, link zum Thread siehe Kommentarzeile im Plugin
Einen Kommentar schreiben:
-
sieht doch gut aus?
konnte auch vieles interpretiren.
Könntest dazu noch kurz sagen, woher Du die Werte nimmst, also welche Referenz?
my $abs_ls = "ff628201621e52ff69"; # Hex-Wert um den Beginn des abolsuten Standes zu kennzeichnen
my $abs_rs = "01770700006001ff";# Hex-Wert um das Ende des abolsuten Standes zu kennzeichnen
vermute, dass an dieser Stelle auch z.B. die Spannung ausgelesen werden können.
Müsste das dann auch für den Zweirichtungszähler umbauen.
Danke und Grüße,
Lio
Einen Kommentar schreiben:
-
Ja sorry total vergessen. Mein erstes WG-Plugin "from scratch", quick and dirty...
Code:# Monitoring a eHz Reader (SML) # v0.1 # License: GPL v2 # basierend auf Untersuchungen hier: [URL="http://www.ip-symcon.de/forum/f23/stromzaehler-geht-rente-11117/"]Mein Stromzähler geht in Rente!! Und nun? - IP-Symcon Community Forum[/URL] use Device::SerialPort; use strict; my @reader; my @GA_MeterReading; my @GA_ActivePower; $reader[0] = Device::SerialPort->new("/dev/ttyUSB-1-4.7"); # USB Device erster Reader/Zähler $reader[1] = Device::SerialPort->new("/dev/ttyUSB-1-4.5"); # USB Device zweiter Reader/Zähler #$reader[2] = Device::SerialPort->new("/dev/ttyUSB-1-4.6"); # USB Device dritter Reader/Zähler $GA_MeterReading[0] = "0/0/1"; # GA für Wert (Zählerstand) erster Zähler $GA_MeterReading[1] = "0/0/2"; # GA für Wert (Zählerstand) zweiter Zähler #$GA_MeterReading[2] = "0/0/3"; # GA für Wert (Zählerstand) dritter Zähler $GA_ActivePower[0] = "0/0/4"; # GA für Wert (Zählerstand) erster Zähler $GA_ActivePower[1] = "0/0/5"; # GA für Wert (Zählerstand) zweiter Zähler #$GA_ActivePower[2] = "0/0/6"; # GA für Wert (Zählerstand) dritter Zähler my $abs_ls = "ff628201621e52ff69"; # Hex-Wert um den Beginn des abolsuten Standes zu kennzeichnen my $abs_rs = "01770700006001ff";# Hex-Wert um das Ende des abolsuten Standes zu kennzeichnen my $cur_ls = "ff628201621b52fc55";# Hex-Wert um den Beginn des derzeitigen Verbrauchs zu kennzeichnen my $cur_rs = "01010163";# Hex-Wert um das Ende des derzeitigen Verbrauchs zu kennzeichnen my $glob_timeout=20; # Timeout, vermutlich zu hoch für WG sub readSML { my $port = $_[0]; my $ls = $_[1]; my $rs = $_[2]; $port->databits(8); $port->baudrate(9600); $port->parity("none"); $port->stopbits(1); $port->purge_all(); $port->rts_active(0); $port->dtr_active(1); $port->read_char_time(0); # don't wait for each character $port->read_const_time(1000); # 1 second per unfulfilled "read" call my $abs=0; my $chars=0; my $buffer=""; my $timeout=$glob_timeout; while ($timeout>0) { my ($count,$saw)=$port->read(1); # will read _up to_ 255 chars if ($count > 0) { $chars+=$count; $buffer.=sprintf("%02x",unpack("C",$saw)); $buffer =~ /$ls(.*?)$rs/; $abs = hex($1)/10000; if ($abs != 0) { return $abs; } } else { $timeout--; } } if ($timeout==0) { die "Waited $glob_timeout seconds and got no SML message\n"; } } $plugin_info{$plugname.'_cycle'} = 60; for my $i (0 .. $#reader) { my $MeterReading = -1; my $ActivePower = -1; $MeterReading = &readSML($reader[$i],$abs_ls,$abs_rs); $ActivePower = &readSML($reader[$i],$cur_ls,$cur_rs); if ($MeterReading != -1) { update_rrd("MeterReading_$i","",$MeterReading); if ($GA_MeterReading[$i]) { knx_write( $GA_MeterReading[0] , $MeterReading, 9 ); } } if ($ActivePower != -1) { update_rrd("ActivePower_$i","",$ActivePower); if ($GA_ActivePower[$i]) { knx_write( $GA_ActivePower[0] , $ActivePower, 9 ); } } } return 0;
Unschön: das Script macht nur ein "Listen" auf dem serial, d.h. der eHZ-SML-Zähler muß von sich aus periodisch Daten senden. Das machen sie normalweise auch, aber nur wenn tatsächlich Last anliegt. Deswegen habe ich meinen dritten Zähler (Einspeisezähler-PV) derzeit noch nicht dran, der läuft ständig (mind. nachts) in ein Timeout...
Einen Kommentar schreiben:
-
Zitat von ctr Beitrag anzeigenEs funktioniert und ich werde es die nächsten Tage bei SF hochladen, sorry dass es solange dauert...
Hallo CTR,
habe nun die Köpfe hier liegen.
Könntest Du das Plugin bereitstellen? gern auch wenn es noch nicht ganz fertig ist. Könnte dann dabei gern behilflich sein.
Dank eund Grüße,
Lio
Einen Kommentar schreiben:
-
Hi CTR,
wollte kurz mal nachhacken wie weit Du mit dem Debug Ausgaben gekommen bist.
Weist DU schon ungefähr, wenn Du dein Plugin auf die Menschheit loslassen wirst?
Gruß
Einen Kommentar schreiben:
-
ganz ehrlich, ich hätte sogar noch eine Woche länger zeit, wenn das script dann gut kommentiert ist.
Da ich ausserhalb von Perl das ganze schon besser vertehe, erhoffe ich mir durch das Script tiefer in PERL einsteigen zu können und somit die Türen in andere Themen öffne.
Boa, wahsinns Erwartungshaltung-aber ich glaub das wird schon recht.
Grüße,
Lio
Einen Kommentar schreiben:
-
Ich habe schon einen Account, habe in der CV auch schon ein paar Commits gemacht, geht also.
Ich will mir nur nochmal die Debug-Ausgaben angucken bevor ich das auf die Menschheit loslasse und dafür hatte ich bisher keine Zeit ;-)
Einen Kommentar schreiben:
-
@ctr: Wem das mit SF/svn bauchweh macht (das ist wiklich nicht jedermans Sache zum Einstieg!)
-> da reicht ein Hinweis, dann schieb ich das dahin (es sollte nur eindeutig geklärt sein, wer es zu welchem Zeitpunkt dann final pflegt..)
Makki
Einen Kommentar schreiben:
-
Es funktioniert und ich werde es die nächsten Tage bei SF hochladen, sorry dass es solange dauert...
Einen Kommentar schreiben:
-
Hallo zusammen,
weis jemand ob das Plugin von crt funktioniert??
Wenn ja, wann wird das veröffentlicht??
Gruß
Einen Kommentar schreiben:
-
Fritz, danke für die Links.
EnBW wird schon nächste Woche bei mir die Zähler tauschen.
Grüße,
Lio
Einen Kommentar schreiben:
-
Hallo
@greentux
Tja, Bausatz kaufen geht leider nicht
volkszaehler.org - wiki - Controller
Gruß NetFritz
Einen Kommentar schreiben:
-
Hallo,
hab mir gerade ein paar teile bestellt und versuche damit die Schnittstelle anzuzapfen.
EnBW kommt aber nicht in die Gänge um mir den ehz in EDL21 zu wechseln.
Kann doch nicht sein.
@ctr, bist Du mit dem PERL-Script schon weiter gekommen?
Grüße,
Lio
Einen Kommentar schreiben:
Einen Kommentar schreiben: