Hallo Bastler,
hat jemand von euch schonmal einen PolluCom zerlegt ? Leider habe ich
keinen Zähler mit Erweiterung und wollte mal schauen ob man nicht
"selbst" erweitern kann. Leider bekomme ich das Gehäuse nicht
zerstörungsfrei auf wie es scheint, gibt es dort einen Trick ? Mich
würde auch interessieren wie die "optische" Schnittstelle funktioniert
und wie lange die Batterien halten wenn die dauerhaft benutzt wird.
Grüße.
Hallo Otto,
ich habe auch einige Pollucom E Wäremzähler, welche ca. 7-8 Jahre alt
sind. Nun würde ich auch gerne die Batterien wechseln und stehe vor dem
gleichen Problem wie du. Wie soll ich das Gehäuse öffnen?
Hast du noch was rausgefunden? Hast du das Gehäuse aufgebrochen und
gesehen wie die Ober und unterteile ineinander verrasten?
Wäre super, wenn du (oder auch andere) diesbezüglich weiterhelfen
könntest.
Gruß,
Christian
Ist zwar schon alt, aber dennoch.
Einfach unten Rechts in das Loch wo die Kabel reingehen mit einem dünnen
Schraubenzieher reinfahren und das Gehäuse öffnen.
Braucht etwas Druck. Sollte aber ohne große Schäden zu Öffnen gehen.
Wichtig beim Batterietausch, den Zähler auf Spannung halten!!
Dazu ein geregeltes einstellbares Netzteil anhängen, sonst ist der
Zähler Schrott!
Hat einer von Euch die Infrarot-Schnittstelle schon mal Benutzt?
Ich bekomme die nämlich nicht zum laufen!
danke
Michael
Hallo Michael,
an der IR Schnittstelle habe ich mich auch schon versucht, bin aber
nicht weit gekommen. Im Netzt finde ich einfach nichts dazu.
Hast Du schon irgenwelche Details ?
Grüße,
Markus
Beschreibungen der Zerlegung inkl. eingebaute Manipulationshürden gibt
es hier:
http://www.kriwanek.de/c-control-pro/solarmessung/103-waermemengenmessgeraet-sensus-pollucom-zerlegen.html
Ich habe einen falsch eingebauten (gebrauchten) Zähler und möchte die
Kosten für das USB Modul zur Konfigurierung sparen und die PT500
Sensoren vertauschen. Wie könnte da ein Manupulationsschutz aussehen?
Wenn ich die Fühlerleitungen abisoliere und beide parallel verbinde und
dann tausche bevor ich die Verbindung wieder trenne kann das Messwerk
nichts merken, falls wirklich nur der Widerstand gemessen wird und nicht
wie bei den DS1820 eine Adresse im Sensor hinterlegt wird.
danke im Voraus für Tipps, ggf. auch wie man zu einer kostengünstigen
USB-Lösung für den IEC870-5 kommt.
danke
Efried schrieb:> Beschreibungen der Zerlegung inkl. eingebaute Manipulationshürden gibt> es hier:> http://www.kriwanek.de/c-control-pro/solarmessung/...
Wie ist denn die Belegung der nicht benutzten Schnittstellen, hast du
die schon gemessen? Der Impulsgeber oder MBus wären ja mal was.
> Ich habe einen falsch eingebauten (gebrauchten) Zähler und möchte die> Kosten für das USB Modul zur Konfigurierung sparen und die PT500> Sensoren vertauschen. Wie könnte da ein Manupulationsschutz aussehen?
Wenn du einen Widerstand an die Platine friemelst, löten würde ja einen
Schluss nach GND verursachen, sollte es funktionieren.
> Wenn ich die Fühlerleitungen abisoliere und beide parallel verbinde und> dann tausche bevor ich die Verbindung wieder trenne kann das Messwerk> nichts merken, falls wirklich nur der Widerstand gemessen wird und nicht> wie bei den DS1820 eine Adresse im Sensor hinterlegt wird.
Wieviel Leitungen kommen denn vom PT500? Ich sehe da 4 Leitungen pro
Fühler oder ist das etwas anderes?
---
Efried schrieb:> es braucht immer noch den Optokoppler - der mir um schlanke 400€> abgeboten wurde...
Huch, welchen Optokoppler meinst du? Der fehlende Chip auf der Platine?
---
Efried schrieb:> Ich habe einen falsch eingebauten (gebrauchten) Zähler und möchte die> Kosten für das USB Modul zur Konfigurierung sparen und die PT500> Sensoren vertauschen.
Falls es noch von intresse ist, steck einfach die Fuehler ab un passend
wieder an, es interessiert das Geraet nicht. Ich habe die fuehler und
Pulsgeber ueber ein Jahr abgesteckt gehabt und er geht immer noch.
Efried schrieb:> es braucht immer noch den Optokoppler - der mir um schlanke 400€> abgeboten wurde...
Denn Koppler kannst du dir fuer ca 15,- EUR selber bauen, einfach FTDI
mit IR Sende und Empfangsdiode. Geht einwandfrei, lese mit dem Gleichen
auch meine Stromzaehler aus.
Desweiteren habe ich mir einen Schaltplan der IR Dioden und der
Steckerbelegung herausgezeichnet und mir dafuer einen Adapter auf RS485
inkl. Stromversorgung gebaut, damit kann man den Zaehler staendig
auslesen ohne in immer wieder in den Kommunikationsmodus zu versetzen
muessen.
Bisher lese ich nur über Minicom aus, möchte aber jetzt das ganze mit
Java angehen, allerdings bin ich da blutiger Anfaenger. Sollte ein
Programmierer interesse am gleichen haben wuerde ich unter umstaenden
die Anbindung an USB stellen gegen den Code stellen.
Gruss Matthias
Hallo Matthias,
auch ich möchte den Zähler dauerhaft auslesen.Könntest Du mir
freundlicherweise mit deinem Bausatz helfen.Welche Teile benötige ich
genau
und wo bekomme ich diese?Wie sieht dein Layout dafür aus?
Gruß Carsten
Hallo zusammen,
da ich einige Fragen bekommen habe, hier meine Implementierung. Das
Protokoll an sich kann z.B. unter http://www.m-bus.com/files/CBDIPW6.PDF
angeschaut werden.
Ich kann leider nur für eine Implementierung unter Linux sprechen! Unter
Windwos funktioniert der "MiniCom 3" ohne weitere Einstellungen bei mir.
Fehlerhandling habe ich der Übersicht halber gelöscht! Geht zwar alles
flexibler, habe ich aber aufgrund von zeitmangel nicht gemacht.
Unter Linux den Port richtig setzen:
stty -F /dev/ttyUSB0
1:0:9bb:0:3:1c:7f:15:4:5:0:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0
:0:0:0:0:0
Programm:
char *buf;
char in[256] = "";
ssize_t ret_out;
.... Init serielle Schnittstelle
int fd = open ("/dev/ttyUSB0", O_RDWR | O_NOCTTY );
set_interface_attribs (fd, B2400, 0); // set speed to 2,400 bps, 8n1
(no parity)
set_blocking (fd, 0 ); // set no blocking
strcpy( in,
"UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU" );
ret_out = write (fd, in, strlen(in)); // sent wakeup
usleep ((1000 + 25) * 100); // sleep enough to transmit plus
buf = read_data( fd);
// Initialisiere MBus -> ACK mit 'E5'
in[0] = 0x10;
in[1] = 0x40; // Init MBus
in[2] = 0x00;
in[3] = 0x40; // Checksumme = in[1] + in [2]
in[4] = 0x16;
ret_out = write (fd, in, 5); // sent
usleep ((1000 + 25) * 100); // sleep enough to transmit plus
buf = read_data( fd);
if( buf[5] == 0xE5 ) {
// Get Data from MBus
in[0] = 0x10;
in[1] = 0x5B; // GetData
in[2] = 0x00;
in[3] = 0x5B; // Checksumme = in[1] + in [2]
in[4] = 0x16;
ret_out = write (fd, in, 5);
usleep ((1000 + 25) * 100); // sleep enough to transmit plus
buf = read_data( fd);
// Zaehlerstand
double waerme = ((double) toInt(&buf[26])) + (100.0 * (double)
toInt(&buf[27])) + (1000.0 * (double) toInt(&buf[28])) + (10000.0 *
(double) toInt(&buf[29]));
//aktuelle Leistung
double leistung = ((double) toInt(&buf[44])) + (100.0 * (double)
toInt(&buf[45])) + (1000.0 * (double) toInt(&buf[46])) + (10000.0 *
(double) toInt(&buf[47]));
}
int toInt( char *in ) {
char out[2];
int iOut = 0;
sprintf( out, "%02x", in[0] );
iOut = atoi( out );
return iOut;
}
Gruß
Frank
Hallo Frank,
vielen Dank, dass Du Deinen Code zur Verfügung stellst. Wenn ich es
richtig verstehe, dann wertest Du die Zähler in einer eigenen Umgebung
aus und nicht über das Volkszähler-image mit VZLOGGER?
Gruß Marco
Hallo Marco,
ja, richtig. Hatte mir am Anfang den mbus controller angeschaut. Leider
habe ich dort zu viele Fehler bekommen. War mir zu aufwändig diesen ans
laufen zu bekommen. Kann ja mal schauen ob das jetzt klappt.
Gruß
Frank
Hallo Frank,
ich habe jetzt mal versucht Dein Script ans Laufen zu bekommen, bekomme
leider folgende Fehlermeldungen:
test.sh: 3: test.sh: char: not found
test.sh: 4: test.sh: char: not found
test.sh: 5: test.sh: ssize_t: not found
test.sh: 6: test.sh: Syntax error: "(" unexpected
müssen die Variablen am Anfang des scitpes noch definiert werden?
Hallo,
ich lese seit Kurzem meinen PolluCom E ebenfalls über die optische
Schnittstelle aus. Der WMZ ist jetzt ca. 1 Jahr alt. Hat jemand schon
Erfahrungen wie sich das Auslesen auf die Lebensdauer bzw. auf die
Batterie auswirkt? Ich lese derzeit den WMZ zwischen Sonnenaufgang und
Sonnenuntergang alle 5min aus. Ist das zu häufig?
Grüße,
Hannes
Hallo,
ich habe besagten WMZ mit der Mini-Bus Option, womit kabelgebunden z.B.
ein Funk- oder induktives Fernauslesemodul ("MiniPad") angeschlossen
werden kann. Auf dem Mini-Bus kommt ebenfalls das M-Bus Protokoll zum
Einsatz, jedoch arbeitet dieser offensichtlich mit etwas anderen
elektrischen Parametern.
Hat jemand entsprechend Erfahrung, wie ich den Zähler über diese
Schnittstelle auslesen kann? Konkret welche Art von "Adapter" ich hier
für den Raspberry brauche?
Besten Dank,
Andreas
Hallo Frank,
ich habe versucht Deinen Code zu kompilieren (mit GCC) - bekomme aber ne
Menge Compilerfehler (was teilweise an den zerschossenen Zeilenumbrüchen
liegt). Ich hänge es mal als Textdatei an - vielleicht kannst Du Deinen
funktionierenden Code auch als Textdatei anhängen.
hier die Fehler:
script.c:8:1: error: initializer element is not constant
script.c:9:35: error: expected ‘)’ before numeric constant
script.c:10:19: error: expected ‘)’ before numeric constant
script.c:11:13: error: expected ‘)’ before string constant
script.c:12:1: warning: data definition has no type or storage class
[enabled by default]
script.c:12:26: warning: incompatible implicit declaration of built-in
function ‘strlen’ [enabled by default]
script.c:12:1: error: initializer element is not constant
script.c:13:9: error: expected declaration specifiers or ‘...’ before
‘(’ token
script.c:14:1: warning: data definition has no type or storage class
[enabled by default]
script.c:14:1: error: conflicting types for ‘buf’
script.c:5:7: note: previous declaration of ‘buf’ was here
script.c:14:1: error: initializer element is not constant
script.c:16:1: warning: data definition has no type or storage class
[enabled by default]
script.c:16:1: error: conflicting types for ‘in’
script.c:6:6: note: previous definition of ‘in’ was here
script.c:16:1: error: invalid initializer
script.c:17:1: warning: data definition has no type or storage class
[enabled by default]
script.c:17:1: error: conflicting types for ‘in’
script.c:6:6: note: previous definition of ‘in’ was here
script.c:17:1: error: invalid initializer
script.c:18:1: warning: data definition has no type or storage class
[enabled by default]
script.c:18:1: error: conflicting types for ‘in’
script.c:6:6: note: previous definition of ‘in’ was here
script.c:18:1: error: invalid initializer
script.c:19:1: warning: data definition has no type or storage class
[enabled by default]
script.c:19:1: error: conflicting types for ‘in’
script.c:6:6: note: previous definition of ‘in’ was here
script.c:19:1: error: invalid initializer
script.c:20:1: warning: data definition has no type or storage class
[enabled by default]
script.c:20:1: error: conflicting types for ‘in’
script.c:6:6: note: previous definition of ‘in’ was here
script.c:20:1: error: invalid initializer
script.c:21:1: warning: data definition has no type or storage class
[enabled by default]
script.c:21:1: error: redefinition of ‘ret_out’
script.c:12:1: note: previous definition of ‘ret_out’ was here
script.c:21:1: error: initializer element is not constant
script.c:22:7: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘...’ token
script.c:23:1: warning: data definition has no type or storage class
[enabled by default]
script.c:23:1: error: conflicting types for ‘buf’
script.c:5:7: note: previous declaration of ‘buf’ was here
script.c:23:1: error: initializer element is not constant
script.c:24:1: error: expected identifier or ‘(’ before ‘if’
Gruß Marco
Ich habe auch einen Wärmemengenzähler vom gleichen typ zu Hause. Ich
habe mich drangesetzt und probiert den Code über Python für den
Raspberry zu schreiben. Allerdings, antwortet der Zähler nicht richtig.
Irgendwie bin ich am verzweifeln woran es liegen kann. Kann mir jemand
seinen Code zur Verfügung stellen. Das wäre super lieb. ( Der
verwendete IR ist in Ordnung, da ich hier mit Minicom kommuniziere.