Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-28 Diskussionsfäden Stefan Klammer
Hallo Zusammen,

ich versuche auch gerade einen LandisGyr E230 zum laufen zu bringen und
habe nun noch folgendes Problem. Ich sende die Anforderungssequenz per
Cronjob das funktioniert auch sehr gut. Vom Zähler bekomme ich dann
folgendes:

/?!\r\n
/LGZ5ZMR120AR.K511\r\n
F.F.0()\r\n
0.0.0(00321024)\r\n
0.0.1(12620643)\r\n
1.8.1(002733.912*kWh)\r\n
1.8.2(001277.861*kWh)\r\n
0.9.1(20:22:08)\r\n
0.9.2(13-05-15)\r\n
0.2.0(K51-1-4□

Der Zähler schickt aber den letzten Datensatz nicht komplett und zwar zeigt
mir HTerm am Schluss der Übertragung folgendes an:

0.2.0(K51-1-4□

Ich glaube der vzlogger kommt dann mit diesen Daten nicht ganz klar und
kann die Zählerstände dann nicht auslesen. Oder kommt der vzlogger mit dem
Code F.F.0 nicht klar??

Leider habe ich im Moment den log vom strace nicht da aber ich bekomme den
Fehler:

Something unexpected happend: read:281!

Vielleicht kann mir jemand helfen,

Mfg Stefan


Am 20. Mai 2013 10:38 schrieb Peter Kreutzer kreutzer.pe...@gmail.com:

 hi ,

 habe nun vzlogger von peter evertz über git installiert
 meine vzlogger.conf hab eich wie folgt angepasst:


 /* vzlogger configuration
  *
  * use proper encoded JSON with javascript comments
  *
  * take a look at the wiki for detailed information:
  * http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
  */

 {
 retry : 30,   /* how long to sleep between failed
 requests, in seconds */
 //daemon: false,  /* run periodically */
 foreground : true,/* run in background */
 verbosity : 20,   /* between 0 and 15 */
 log : /var/log/vzlogger.log,/* path to logfile, optional */

 local : {
 enabled : false,  /* should we start the local HTTPd for
 serving live readings? */
 port : 80,/* the TCP port for the local HTTPd */
 index : true, /* should we provide a index listing of
 available channels? */
 timeout : 30, /* timeout for long polling comet
 requests, 0 disables comet, in seconds */
 buffer : 600  /* how long to buffer readings for the
 local interface, in seconds */
 },

 meters : [{
 enabled : true,
 device : /dev/ttyS0,
 protocol : d0,
 baudrate : 300,
 parity : 7N1,
 pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
 interval : 61, // Wartezeit bis zum nächsten Pull
 }]
 }

 Beim start sudo vzlogger --config /etc/vzlogger.conf -v 20
 bekomme ich eine Fehlermeldung:

 [May 20 10:24:35]   Start parsing configuration from /etc/vzlogger.conf
 [May 20 10:24:35][mtr0] Creating new meter with protocol d0.
 [May 20 10:24:35][d0]   Invalid baudrate: 300
 [May 20 10:24:35][d0]   Failed to parse the baudrate
 [May 20 10:24:35][] parse configuration failed due to:
 [May 20 10:24:35]   Failed to parse configuration due to: Invalid
 baudrate

 ich habe dann einfach mal meine 300 im Meter vzlogger / src / protocols /
 MeterD0.cpp
 ergänzt


   switch (baudrate) {
 case 300: _baudrate = B300; break;
   case 1200: _baudrate = B1200; break;
   case 1800: _baudrate = B1800; break;
   case 2400: _baudrate = B2400; break;
   case 4800: _baudrate = B4800; break;
   case 9600: _baudrate = B9600; break;
   case 19200: _baudrate = B19200; break;
   case 38400: _baudrate = B38400; break;
   case 57600: _baudrate = B57600; break;
   case 115200: _baudrate = B115200; break;
   case 230400: _baudrate = B230400; break;
   default:
   print(log_error, Invalid baudrate: 
 %i, name().c_str(), baudrate);
   throw vz::VZException(Invalid 
 baudrate);
   }
 scheint aber  immer noch nicht zu funktionieren.

 [May 20 10:32:47][d0]   Something unexpected happened: read:306!
 [May 20 10:32:47][mtr0] Got 0 new readings from meter:
 [May 20 10:32:47][mtr0] Next reading in 56 seconds
 [May 20 10:33:48][d0]   Something unexpected happened: read:306!
 [May 20 10:33:48][mtr0] Got 0 new readings from meter:
 [May 20 10:33:48][mtr0] Next reading in 56 seconds

  sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20  
 vzlogger.trace

  write(3, [May 20 10:35:23][mtr0] Config.local: 0\n, 40) = 40
 [pid 10271] read(4, , 1)  = 0
 [pid 10271] stat(/etc/localtime, {st_mode=S_IFREG|0644, st_size=1892, ...}) 
 = 0
 [pid 10271] getppid()   = 10269
 [pid 10271] write(2, [May 20 10:35:27][d0]   , 24[May 20 10:35:27][d0]   ) 
 = 24
 [pid 10271] write(2, Something unexpected happened: read:306!, 40Something 
 unexpected happened: read:306!) = 40
 [pid 10271] write(2, \n, 1
 )   

Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-28 Diskussionsfäden Stefan Klammer
Nochmal Hallo,

Habe da vielleicht noch ein paar wichtige Sachen vergessen. Ich versuche
das ganze auf einem RaspberryPi B Rev.1 und habe den USB Lesekopf und auch
die Erweiterung von Udo. Als Image habe ich das aus dem How-To von der Wiki
Seite genommen(2013-02-10-raspbian-vz-03-3G.img.zip). Der Zähler spricht D0
hab das ganze mit HTerm (300 Baud, 7E1) ausprobiert. Das loggen von
Temperaturwerten mit zweit DS18B20 funktioniert bereits einwandfrei.

So dann hab ich glaub alles wichtige erwähnt.
Mfg Stefan


Am 28. Mai 2013 09:37 schrieb Stefan Klammer klammerstefa...@gmail.com:

 Hallo Zusammen,

 ich versuche auch gerade einen LandisGyr E230 zum laufen zu bringen und
 habe nun noch folgendes Problem. Ich sende die Anforderungssequenz per
 Cronjob das funktioniert auch sehr gut. Vom Zähler bekomme ich dann
 folgendes:

 /?!\r\n
 /LGZ5ZMR120AR.K511\r\n
 F.F.0()\r\n
 0.0.0(00321024)\r\n
 0.0.1(12620643)\r\n
 1.8.1(002733.912*kWh)\r\n
 1.8.2(001277.861*kWh)\r\n
 0.9.1(20:22:08)\r\n
 0.9.2(13-05-15)\r\n
 0.2.0(K51-1-4□

 Der Zähler schickt aber den letzten Datensatz nicht komplett und zwar
 zeigt mir HTerm am Schluss der Übertragung folgendes an:

 0.2.0(K51-1-4□

 Ich glaube der vzlogger kommt dann mit diesen Daten nicht ganz klar und
 kann die Zählerstände dann nicht auslesen. Oder kommt der vzlogger mit dem
 Code F.F.0 nicht klar??

 Leider habe ich im Moment den log vom strace nicht da aber ich bekomme den
 Fehler:

 Something unexpected happend: read:281!

 Vielleicht kann mir jemand helfen,

 Mfg Stefan


 Am 20. Mai 2013 10:38 schrieb Peter Kreutzer kreutzer.pe...@gmail.com:

 hi ,

 habe nun vzlogger von peter evertz über git installiert
 meine vzlogger.conf hab eich wie folgt angepasst:


 /* vzlogger configuration
  *
  * use proper encoded JSON with javascript comments
  *
  * take a look at the wiki for detailed information:
  *
 http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
  */

 {
 retry : 30,   /* how long to sleep between failed
 requests, in seconds */
 //daemon: false,  /* run periodically */
 foreground : true,/* run in background */
 verbosity : 20,   /* between 0 and 15 */
 log : /var/log/vzlogger.log,/* path to logfile, optional */

 local : {
 enabled : false,  /* should we start the local HTTPd for
 serving live readings? */
 port : 80,/* the TCP port for the local HTTPd */
 index : true, /* should we provide a index listing of
 available channels? */
 timeout : 30, /* timeout for long polling comet
 requests, 0 disables comet, in seconds */
 buffer : 600  /* how long to buffer readings for the
 local interface, in seconds */
 },

 meters : [{
 enabled : true,
 device : /dev/ttyS0,
 protocol : d0,
 baudrate : 300,
 parity : 7N1,
 pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
 interval : 61, // Wartezeit bis zum nächsten Pull
 }]
 }

 Beim start sudo vzlogger --config /etc/vzlogger.conf -v 20
 bekomme ich eine Fehlermeldung:

 [May 20 10:24:35]   Start parsing configuration from
 /etc/vzlogger.conf
 [May 20 10:24:35][mtr0] Creating new meter with protocol d0.
 [May 20 10:24:35][d0]   Invalid baudrate: 300
 [May 20 10:24:35][d0]   Failed to parse the baudrate
 [May 20 10:24:35][] parse configuration failed due to:
 [May 20 10:24:35]   Failed to parse configuration due to: Invalid
 baudrate

 ich habe dann einfach mal meine 300 im Meter vzlogger / src / protocols /
 MeterD0.cpp
 ergänzt



  switch (baudrate) {

 case 300: _baudrate = B300; break;

  case 1200: _baudrate = B1200; break;

  case 1800: _baudrate = B1800; break;

  case 2400: _baudrate = B2400; break;

  case 4800: _baudrate = B4800; break;

  case 9600: _baudrate = B9600; break;

  case 19200: _baudrate = B19200; break;

  case 38400: _baudrate = B38400; break;

  case 57600: _baudrate = B57600; break;

  case 115200: _baudrate = B115200; break;

  case 230400: _baudrate = B230400; break;

  default:

  print(log_error, Invalid baudrate: 
 %i, name().c_str(), baudrate);

  throw vz::VZException(Invalid 
 baudrate);

  }

 scheint aber  immer noch nicht zu funktionieren.



 [May 20 10:32:47][d0]   Something unexpected happened: read:306!
 [May 20 10:32:47][mtr0] Got 0 new readings from meter:
 [May 20 10:32:47][mtr0] Next reading in 56 seconds
 [May 20 10:33:48][d0]   Something unexpected happened: read:306!
 [May 20 10:33:48][mtr0] Got 0 new readings 

Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-28 Diskussionsfäden Udo1

Am 28.05.2013 11:32, schrieb Stefan Klammer:

Ich sende die Anforderungssequenz per Cronjob

Hallo Stefan,

das könnte das Problem sein. Die Daten sind dann noch nicht da oder 
schon weg bevor vzlogger die mitbekommt.
Besser wäre du nutzt die vzlogger-Version von Peter Evertz, dort ist die 
Anfrage schon eingebaut:

http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html

Gruß
Udo


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-28 Diskussionsfäden Thorben Thuermer
On Tue, 28 May 2013 09:37:13 +0200
Stefan Klammer klammerstefa...@gmail.com wrote:
 ich versuche auch gerade einen LandisGyr E230 zum laufen zu bringen und
 habe nun noch folgendes Problem. Ich sende die Anforderungssequenz per
 Cronjob das funktioniert auch sehr gut. Vom Zähler bekomme ich dann
 folgendes:
 
 /?!\r\n
 /LGZ5ZMR120AR.K511\r\n
[...]
 Der Zähler schickt aber den letzten Datensatz nicht komplett und zwar zeigt
 mir HTerm am Schluss der Übertragung folgendes an:
 
 0.2.0(K51-1-4□
 
 Ich glaube der vzlogger kommt dann mit diesen Daten nicht ganz klar und
 kann die Zählerstände dann nicht auslesen. Oder kommt der vzlogger mit dem
 Code F.F.0 nicht klar??

das problem ist einfach:
der d0-parser in vzlogger ist extrem primitiv,
und wenn die daten nicht genau aussehen wie erwartet, kommt nichts
sinnvolles heraus.
da ist noch einiges an arbeit noetig.

leider ist das auch nicht so einfach zu testen, da niemand alle zaehler vor
ort verfuegbar hat.

siehe zB auch:
http://volkszaehler.org/pipermail/volkszaehler-dev/2013-January/002321.html

in einem anderen thread den ich gerade nicht finde wurde glaube ich irgendwo
eine vorhandene library zum parsen des formats erwaehnt, die sollte man mal
evaluieren.

 Leider habe ich im Moment den log vom strace nicht da aber ich bekomme den
 Fehler:
 Something unexpected happend: read:281!

wie gehabt, die meldung ist leider nicht sehr hilfreich...

 Vielleicht kann mir jemand helfen,
 Mfg Stefan

- Thorben

 Am 20. Mai 2013 10:38 schrieb Peter Kreutzer kreutzer.pe...@gmail.com:
  habe nun vzlogger von peter evertz über git installiert
  meine vzlogger.conf hab eich wie folgt angepasst:
 
  /* vzlogger configuration
   *
   * use proper encoded JSON with javascript comments
   *
   * take a look at the wiki for detailed information:
   * http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
   */
 
  {
  retry : 30,   /* how long to sleep between failed
  requests, in seconds */
  //daemon: false,  /* run periodically */
  foreground : true,/* run in background */
  verbosity : 20,   /* between 0 and 15 */
  log : /var/log/vzlogger.log,/* path to logfile, optional */
 
  local : {
  enabled : false,  /* should we start the local HTTPd for
  serving live readings? */
  port : 80,/* the TCP port for the local HTTPd */
  index : true, /* should we provide a index listing of
  available channels? */
  timeout : 30, /* timeout for long polling comet
  requests, 0 disables comet, in seconds */
  buffer : 600  /* how long to buffer readings for the
  local interface, in seconds */
  },
 
  meters : [{
  enabled : true,
  device : /dev/ttyS0,
  protocol : d0,
  baudrate : 300,
  parity : 7N1,
  pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
  interval : 61, // Wartezeit bis zum nächsten Pull
  }]
  }
 
  Beim start sudo vzlogger --config /etc/vzlogger.conf -v 20
  bekomme ich eine Fehlermeldung:
 
  [May 20 10:24:35]   Start parsing configuration from /etc/vzlogger.conf
  [May 20 10:24:35][mtr0] Creating new meter with protocol d0.
  [May 20 10:24:35][d0]   Invalid baudrate: 300
  [May 20 10:24:35][d0]   Failed to parse the baudrate
  [May 20 10:24:35][] parse configuration failed due to:
  [May 20 10:24:35]   Failed to parse configuration due to: Invalid
  baudrate
 
  ich habe dann einfach mal meine 300 im Meter vzlogger / src / protocols /
  MeterD0.cpp
  ergänzt
 
 
  switch (baudrate) {
  case 300: _baudrate = B300; break;
  case 1200: _baudrate = B1200; break;
  case 1800: _baudrate = B1800; break;
  case 2400: _baudrate = B2400; break;
  case 4800: _baudrate = B4800; break;
  case 9600: _baudrate = B9600; break;
  case 19200: _baudrate = B19200; break;
  case 38400: _baudrate = B38400; break;
  case 57600: _baudrate = B57600; break;
  case 115200: _baudrate = B115200; break;
  case 230400: _baudrate = B230400; break;
  default:
  print(log_error, Invalid baudrate: 
  %i, name().c_str(), baudrate);
  throw vz::VZException(Invalid 
  baudrate);
  }
  scheint aber  immer noch nicht zu funktionieren.
 
  [May 20 10:32:47][d0]   Something unexpected happened: read:306!
  [May 20 10:32:47][mtr0] Got 0 new readings from meter:
  [May 20 10:32:47][mtr0] Next reading in 56 seconds
  [May 20 10:33:48][d0]   Something unexpected happened: read:306!
  [May 20 10:33:48][mtr0] Got 0 new readings from meter:
  [May 20 

Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-26 Diskussionsfäden Peter Kreutzer
Hi,

Nun das mir der C und C++ Version war für nicht nicht so klar.
Da ich noch kein C++ kenne und auch noch keine Entwicklungsumgebung
eingerichtet habe , brauche ich erstmal was Zeit um mich einzurichten.

Der zmd von Landis und gyr unterstützt ja dmls .
http://en.m.wikipedia.org/wiki/IEC_62056
Scheint noch recht verbreitet zu sein.
Hierzu gibt es eine open source Implementierung von gurux.
Wäre ja auch möglich deren vorhanden c++ libs zu verwenden.

Hat hier schon jemand Erfahrungen?
Am 22.05.2013 08:58 schrieb Justin Otherguy jus...@justinotherguy.org:

 Hi Michael,

 Am 22.05.2013 um 07:41 schrieb Michael Wulz:

  Am 21.05.13 08:15, schrieb Thorben Thuermer:
  es ist einfach sch***, dass da soeine unspezifische meldung
  ausgegeben wird... ich hatte das schonmal gepatcht, aber das ist
  irgendwann wieder untergegagen...
  Da war doch mal ein Patch im alten C vzlogger. Der hatte bei mir damals
 geholfen.
  Ich glaube das Problem war, dass der Zähler ein zeichen (Zahl oder
 Buchstabe) im Output
  sendet mit dem der vzlogger an der Stelle nicht rechnet und dann abkackt.
 
  Glaub Thorben oder Udo hatte damals den Patch für den C vzlogger gemacht.
 ja, Thorben hatte in der C-Version einige Bugs zur Strecke gebracht, die
 nun zum Teil im Master noch fehlen.
 Ich kann mir ja vorstellen, dass er diese Fixes im Master nachzieht, wenn
 man ihn nett bittet :-)

 Dazu hilft's natürlich, wenn Du Rückmeldung gibst - möglichst konkret.

  Bei mir läuft auch heut noch der C logger weil die C++ Version einfach
 nicht klappt (angefangen bei den 300 baud wie Peter Kreuzer gesehen hat
  und eben beim Parsen des Outputs vom d0 Zähler.
 -vvv
 anders formuliert: wo klemmt's noch?
 Die Zähler, die den Plappermodus erst nach Aufforderung benutzen (aka
 Kindermodus - redet nur, wenn gefragt), werden durch Peter Evertz'
 Entwicklerversion [1] unterstützt. Die Patches dazu werden voraussichtlich
 demnächst in den Master Einzug halten. Mehr Test ist auch hier mehr gut.

 Ich gehe davon aus, dass die C-Version auslaufen wird; wer diese noch
 nutzt, sollte den aktuellen Master (C++-Version) nochmal testen und
 Bescheid geben, wo's klemmt. Dann können wir versuchen, das im Master zu
 fixen.


 Gruss, J.

 [1] https://github.com/peterevertz/vzlogger




Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-22 Diskussionsfäden Justin Otherguy
Hi Michael,

Am 22.05.2013 um 07:41 schrieb Michael Wulz:

 Am 21.05.13 08:15, schrieb Thorben Thuermer:
 es ist einfach sch***, dass da soeine unspezifische meldung
 ausgegeben wird... ich hatte das schonmal gepatcht, aber das ist
 irgendwann wieder untergegagen...
 Da war doch mal ein Patch im alten C vzlogger. Der hatte bei mir damals 
 geholfen.
 Ich glaube das Problem war, dass der Zähler ein zeichen (Zahl oder Buchstabe) 
 im Output
 sendet mit dem der vzlogger an der Stelle nicht rechnet und dann abkackt.
 
 Glaub Thorben oder Udo hatte damals den Patch für den C vzlogger gemacht.
ja, Thorben hatte in der C-Version einige Bugs zur Strecke gebracht, die nun 
zum Teil im Master noch fehlen.
Ich kann mir ja vorstellen, dass er diese Fixes im Master nachzieht, wenn man 
ihn nett bittet :-)

Dazu hilft's natürlich, wenn Du Rückmeldung gibst - möglichst konkret.

 Bei mir läuft auch heut noch der C logger weil die C++ Version einfach nicht 
 klappt (angefangen bei den 300 baud wie Peter Kreuzer gesehen hat
 und eben beim Parsen des Outputs vom d0 Zähler.
-vvv
anders formuliert: wo klemmt's noch?
Die Zähler, die den Plappermodus erst nach Aufforderung benutzen (aka 
Kindermodus - redet nur, wenn gefragt), werden durch Peter Evertz' 
Entwicklerversion [1] unterstützt. Die Patches dazu werden voraussichtlich 
demnächst in den Master Einzug halten. Mehr Test ist auch hier mehr gut.

Ich gehe davon aus, dass die C-Version auslaufen wird; wer diese noch nutzt, 
sollte den aktuellen Master (C++-Version) nochmal testen und Bescheid geben, 
wo's klemmt. Dann können wir versuchen, das im Master zu fixen.


Gruss, J.

[1] https://github.com/peterevertz/vzlogger



Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-21 Diskussionsfäden Thorben Thuermer
On Mon, 20 May 2013 10:38:37 +0200
Peter Kreutzer kreutzer.pe...@gmail.com wrote:
 habe nun vzlogger von peter evertz über git installiert
 meine vzlogger.conf hab eich wie folgt angepasst:
[...]
 meters : [{
 enabled : true,
 device : /dev/ttyS0,
 protocol : d0,
 baudrate : 300,
 parity : 7N1,
 pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
 interval : 61, // Wartezeit bis zum nächsten Pull
 }]
 }
[...]
  sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20 
 vzlogger.trace
 
  write(3, [May 20 10:35:23][mtr0] Config.local: 0\n, 40) = 40
 [pid 10271] read(4, , 1)  = 0
 [pid 10271] stat(/etc/localtime, {st_mode=S_IFREG|0644,
 st_size=1892, ...}) = 0
 [pid 10271] getppid()   = 10269
 [pid 10271] write(2, [May 20 10:35:27][d0]   , 24[May 20
 10:35:27][d0]   ) = 24
 [pid 10271] write(2, Something unexpected happened: read:306!,
 40Something unexpected happened: read:306!) = 40
 [pid 10271] write(2, \n, 1
 )   = 1

das ist ungekuerzt?
das ein read mal nichts liefert ist eigentlich kein problem,
ich wuerde vermuten die meldung entsteht durch weiter oben
gelesene daten...
es ist einfach sch***, dass da soeine unspezifische meldung
ausgegeben wird... ich hatte das schonmal gepatcht, aber das ist
irgendwann wieder untergegagen...

 die lesekopf scheint also was leeres zu schicken.
 Muss ich den Eintrag noch in HEX umrechnen?
 pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz

wenn ich das richtig sehe, in dem beispeiel, dann besteht die pullseq
NUR aus hex-ziffern, OHNE plaintext und OHNE -marker.
das war nur die pseudo-syntax die ich in der email benutzt hatte.
das beispiel in peter's beispielconfig aus seiner mail
enthaelt ohnehin schon den korrektten string!
(wenn der code das nicht korrekt behandelt (bzw, keinen fehler meldet),
 dann sollte das behoben werden.)
wie gehabt:
 pullseq : 4060200D0A, // HEX Darstellung der Pullsequenz
http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html

 Grüsse

- T.

 Am 19. Mai 2013 21:26 schrieb Justin Otherguy jus...@justinotherguy.org:
 
  Hi Peter,
 
  Am 19.05.2013 um 21:20 schrieb Peter Kreutzer:
 
   Als nächstes werde ich mit dann den vzlogger von peter evertz mal
  anschauen.
   Da er nicht im als ubuntu package vorhanden ist werde ich ihn selber
  compiliere...
  
   Geben euch noch eine Rückmeldung wenn es gelaufen ist.
  prima; derzeit sieht's so aus, als könnten wir mit Peters Fork den
  aktuellen Master (https://github.com/volkszaehler/vzlogger) ersetzen.
  Bei mir läuft er seit Tagen problemlos und auch von anderen kam bislang
  nur positive Rückmeldung. Das bezieht sich erst mal auf die
  Grundfunktionalität, also das, was derzeit bereits im Master enthalten
  ist. Wenn wir das Triggern der Zähler sowie die Aggregierung als Funktionen
  mit dazu nehmen können, wäre das sehr schick.
 
  Daher: ich freue mich über Rückmeldung.
 
 
  Gruss, J.
 
 


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-21 Diskussionsfäden Michael Wulz

Am 21.05.13 08:15, schrieb Thorben Thuermer:

habe nun vzlogger von peter evertz über git installiert
meine vzlogger.conf hab eich wie folgt angepasst:

[...]

meters : [{
 enabled : true,
 device : /dev/ttyS0,
 protocol : d0,
 baudrate : 300,
 parity : 7N1,
 pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
 interval : 61, // Wartezeit bis zum nächsten Pull
 }]
}

[...]

  sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20 
vzlogger.trace

  write(3, [May 20 10:35:23][mtr0] Config.local: 0\n, 40) = 40
[pid 10271] read(4, , 1)  = 0
[pid 10271] stat(/etc/localtime, {st_mode=S_IFREG|0644,
st_size=1892, ...}) = 0
[pid 10271] getppid()   = 10269
[pid 10271] write(2, [May 20 10:35:27][d0]   , 24[May 20
10:35:27][d0]   ) = 24
[pid 10271] write(2, Something unexpected happened: read:306!,
40Something unexpected happened: read:306!) = 40
[pid 10271] write(2, \n, 1
)   = 1

das ist ungekuerzt?
das ein read mal nichts liefert ist eigentlich kein problem,
ich wuerde vermuten die meldung entsteht durch weiter oben
gelesene daten...
es ist einfach sch***, dass da soeine unspezifische meldung
ausgegeben wird... ich hatte das schonmal gepatcht, aber das ist
irgendwann wieder untergegagen...
Da war doch mal ein Patch im alten C vzlogger. Der hatte bei mir damals 
geholfen.
Ich glaube das Problem war, dass der Zähler ein zeichen (Zahl oder 
Buchstabe) im Output

sendet mit dem der vzlogger an der Stelle nicht rechnet und dann abkackt.

Glaub Thorben oder Udo hatte damals den Patch für den C vzlogger gemacht.

Bei mir läuft auch heut noch der C logger weil die C++ Version einfach 
nicht klappt (angefangen bei den 300 baud wie Peter Kreuzer gesehen hat

und eben beim Parsen des Outputs vom d0 Zähler.



die lesekopf scheint also was leeres zu schicken.
Muss ich den Eintrag noch in HEX umrechnen?
pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz

wenn ich das richtig sehe, in dem beispeiel, dann besteht die pullseq
NUR aus hex-ziffern, OHNE plaintext und OHNE -marker.
das war nur die pseudo-syntax die ich in der email benutzt hatte.
das beispiel in peter's beispielconfig aus seiner mail
enthaelt ohnehin schon den korrektten string!
(wenn der code das nicht korrekt behandelt (bzw, keinen fehler meldet),
  dann sollte das behoben werden.)
wie gehabt:

pullseq : 4060200D0A, // HEX Darstellung der Pullsequenz

http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html



Grüße
M


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-20 Diskussionsfäden Peter Kreutzer
hi ,

habe nun vzlogger von peter evertz über git installiert
meine vzlogger.conf hab eich wie folgt angepasst:


/* vzlogger configuration
 *
 * use proper encoded JSON with javascript comments
 *
 * take a look at the wiki for detailed information:
 * http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
 */

{
retry : 30,   /* how long to sleep between failed
requests, in seconds */
//daemon: false,  /* run periodically */
foreground : true,/* run in background */
verbosity : 20,   /* between 0 and 15 */
log : /var/log/vzlogger.log,/* path to logfile, optional */

local : {
enabled : false,  /* should we start the local HTTPd for
serving live readings? */
port : 80,/* the TCP port for the local HTTPd */
index : true, /* should we provide a index listing of
available channels? */
timeout : 30, /* timeout for long polling comet requests,
0 disables comet, in seconds */
buffer : 600  /* how long to buffer readings for the
local interface, in seconds */
},

meters : [{
enabled : true,
device : /dev/ttyS0,
protocol : d0,
baudrate : 300,
parity : 7N1,
pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz
interval : 61, // Wartezeit bis zum nächsten Pull
}]
}

Beim start sudo vzlogger --config /etc/vzlogger.conf -v 20
bekomme ich eine Fehlermeldung:

[May 20 10:24:35]   Start parsing configuration from /etc/vzlogger.conf
[May 20 10:24:35][mtr0] Creating new meter with protocol d0.
[May 20 10:24:35][d0]   Invalid baudrate: 300
[May 20 10:24:35][d0]   Failed to parse the baudrate
[May 20 10:24:35][] parse configuration failed due to:
[May 20 10:24:35]   Failed to parse configuration due to: Invalid
baudrate

ich habe dann einfach mal meine 300 im Meter vzlogger / src / protocols /
MeterD0.cpp
ergänzt

switch (baudrate) {
case 300: _baudrate = B300; break;
case 1200: _baudrate = B1200; break;
case 1800: _baudrate = B1800; break;
case 2400: _baudrate = B2400; break;
case 4800: _baudrate = B4800; break;
case 9600: _baudrate = B9600; break;
case 19200: _baudrate = B19200; break;
case 38400: _baudrate = B38400; break;
case 57600: _baudrate = B57600; break;
case 115200: _baudrate = B115200; break;
case 230400: _baudrate = B230400; break;
default:
print(log_error, Invalid baudrate: 
%i, name().c_str(), baudrate);
throw vz::VZException(Invalid 
baudrate);
}
scheint aber  immer noch nicht zu funktionieren.

[May 20 10:32:47][d0]   Something unexpected happened: read:306!
[May 20 10:32:47][mtr0] Got 0 new readings from meter:
[May 20 10:32:47][mtr0] Next reading in 56 seconds
[May 20 10:33:48][d0]   Something unexpected happened: read:306!
[May 20 10:33:48][mtr0] Got 0 new readings from meter:
[May 20 10:33:48][mtr0] Next reading in 56 seconds

 sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20 
vzlogger.trace

 write(3, [May 20 10:35:23][mtr0] Config.local: 0\n, 40) = 40
[pid 10271] read(4, , 1)  = 0
[pid 10271] stat(/etc/localtime, {st_mode=S_IFREG|0644,
st_size=1892, ...}) = 0
[pid 10271] getppid()   = 10269
[pid 10271] write(2, [May 20 10:35:27][d0]   , 24[May 20
10:35:27][d0]   ) = 24
[pid 10271] write(2, Something unexpected happened: read:306!,
40Something unexpected happened: read:306!) = 40
[pid 10271] write(2, \n, 1
)   = 1

die lesekopf scheint also was leeres zu schicken.
Muss ich den Eintrag noch in HEX umrechnen?
pullseq :  /?!0D0A, // HEX Darstellung der Pullsequenz

Grüsse



Am 19. Mai 2013 21:26 schrieb Justin Otherguy jus...@justinotherguy.org:

 Hi Peter,

 Am 19.05.2013 um 21:20 schrieb Peter Kreutzer:

  Als nächstes werde ich mit dann den vzlogger von peter evertz mal
 anschauen.
  Da er nicht im als ubuntu package vorhanden ist werde ich ihn selber
 compiliere...
 
  Geben euch noch eine Rückmeldung wenn es gelaufen ist.
 prima; derzeit sieht's so aus, als könnten wir mit Peters Fork den
 aktuellen Master (https://github.com/volkszaehler/vzlogger) ersetzen.
 Bei mir läuft er seit Tagen problemlos und auch von anderen kam bislang
 nur positive Rückmeldung. Das bezieht sich erst mal auf die
 Grundfunktionalität, also das, was derzeit bereits im Master enthalten
 ist. Wenn wir das Triggern der Zähler sowie die Aggregierung als Funktionen
 mit dazu nehmen können, wäre das sehr schick.

 Daher: ich freue mich über Rückmeldung.


 Gruss, J.




Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-20 Diskussionsfäden Udo1

Am 20.05.2013 10:38, schrieb Peter Kreutzer:

protocol : d0,

Hallo Peter,

kannst du mal unter Windows mit Hterm (nicht mit der Test1107.exe) den 
Zähler auslesen und das Ergebnis hier posten. Nur mal um sicher zu 
stellen, dass der Zähler auch D0 spricht.


Gruß
Udo


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-20 Diskussionsfäden Udo1

Am 20.05.2013 14:34, schrieb Peter Kreutzer:
Vielleicht mache ich aber irgenwas falsch, 

Nur /?! eingeben und bei Send on enter: CR+LF auswählen.
Oder Type Hex auswählen und 2F 3F 21 0D 0A  eingeben.


Aber ich denke mal der Fehler liegt darin begründet, dass du in der 
vzlogger-config keinen Indentifier angibst.


Gruß
Udo


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-20 Diskussionsfäden Peter Kreutzer
Hi Udo,

sehe gerade, das der pullseq  für d0 gar nicht implementiert ist.
das müsste man erst in MeterD0.cpp einbauen.

Werde diese Woche leider keine Zeit haben dort weiter zu machen...

Was spricht dagegen das ich das perl script über exec aufrufe und so den
output des skripts and den vzlogger zu leiten?

Grüsse


Am 20. Mai 2013 14:56 schrieb Udo1 u...@gmx.net:

 Am 20.05.2013 14:34, schrieb Peter Kreutzer:

  Vielleicht mache ich aber irgenwas falsch,

 Nur /?! eingeben und bei Send on enter: CR+LF auswählen.
 Oder Type Hex auswählen und 2F 3F 21 0D 0A  eingeben.


 Aber ich denke mal der Fehler liegt darin begründet, dass du in der
 vzlogger-config keinen Indentifier angibst.

 Gruß
 Udo



Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-19 Diskussionsfäden Peter Kreutzer
Hi ,

nun habe ich mit einen skript, welches ich bei euch in der mailingliste
gefunden haben.
http://volkszaehler.org/pipermail/volkszaehler-dev/2012-April/001826.html

ich habe leicht modifiziert um nur die werde anzuzeigen.


#!/usr/bin/perl

# Zaehlerabfrage fuer Zaehler nach Protokoll IEC 62056-21 / OBIS
# Ein Anfrage-Telegramm ist mit 300 Baud, 7 Bit, 1 Stoppbit
use warnings;
use strict;
use Device::SerialPort;
use RRDs;

### KONFIGURATION ###
my $device=/dev/ttyS0;#Schnittstelle
my $request = /?!\r\n;#Anforderungstelegramm /?! \r\n
entspricht CR-LF
my $ga = 0/0/4;   #Gruppenadresse DPT9
my $obiskey=1.8.0(;   #Schluessel vor Angabe des Zaehlerstandes
z.B. 1.8.0(0001234.5 kWh)

my $file = /var/tmp/Zaehler_WP.log;   #Logdatei
wird automatisch angelegt!
### ENDE KONFIGURATION ###

### Seriellen Port initialisieren
my $port = new Device::SerialPort($device) || die can't open $device: $!;
$port-baudrate(300)  || die 'fail setting baudrate';
$port-databits(7)|| die 'fail setting databits';
$port-stopbits(1)|| die 'fail setting stopbits';
$port-parity(even) || die 'fail setting parity';
$port-write_settings || die 'fail write settings';
$port-rts_active(1);
$port-dtr_active(1);
$port-read_char_time(500); # 0.5 seconds for each character
$port-read_const_time(3000);   # 3 second per unfulfilled read call


### Anforderungstelegramm senden
my $num_out = $port-write($request);
die write failed\n unless ($num_out);
die write inclomplete\n unless ($num_out == length($request));
print send request telegram : $num_out Bytes written\n;

### AUSLESEN

my $STALL_DEFAULT=2; # how many seconds to wait for new input
my $timeout=$STALL_DEFAULT;
my $chars=0;
my $buffer=;

while ($timeout0) {
my ($count,$saw)=$port-read(255);  # Liest 255 Zeichen je
Durchlauf aus
if ($count  0) {
$chars+=$count;
$buffer.=$saw;
print $buffer;  # Ausgabe der eingelesenen
Daten
}
else
{
$timeout--;
}
}

if ($timeout=0){
$port-close || die can't close $device: $!;
print Waited $STALL_DEFAULT seconds and never saw what I wanted\n;
}


### SUBS
sub encode_dpt9 { # 2byte signed float
my $state = shift;
my $data;

my $sign = ($state 0 ? 0x8000 : 0);
my $exp  = 0;
my $mant = 0;

$mant = int($state * 100.0);
while (abs($mant)  2047) {
$mant /= 2;
$exp++;
}
$data = $sign | ($exp  11) | ($mant  0x07ff);
return $data  8, $data  0xff;
}


Soweit so gut.
Die Startsequenz und die Einstellungen der Seriellen Schnittstelle sind nun
bekannt.

Als nächstes werde ich mit dann den vzlogger von peter evertz mal anschauen.
Da er nicht im als ubuntu package vorhanden ist werde ich ihn selber
compiliere...

Geben euch noch eine Rückmeldung wenn es gelaufen ist.

Grüsse und Danke



Am 18. Mai 2013 20:03 schrieb Peter Kreutzer kreutzer.pe...@gmail.com:

 Hi Torben,

  sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20
 vzlogger.trace

 [pid  3742] stat(/etc/localtime, {st_mode=S_IFREG|0644, st_size=1892,
 ...}) = 0
 [pid  3742] getppid()   = 3740
 [pid  3742] write(3, [May 18 19:41:51][mtr0] Got 0 new readings from
 meter:\n, 55) = 55
 [pid  3742] read(4, , 1)  = 0
 [pid  3742] stat(/etc/localtime, {st_mode=S_IFREG|0644, st_size=1892,
 ...}) = 0
 [pid  3742] getppid()   = 3740
 [pid  3742] write(2, [May 18 19:41:51][d0]   , 24[May 18 19:41:51][d0]
 ) = 24
 [pid  3742] write(2, Something unexpected happened: read:281!,
 40Something unexpected happened: read:281!) = 40
 [pid  3742] write(2, \n, 1
 )   = 1

 Sieht so aus, das der Zähler einen leeren Wert senden.

 Ich habe ja schon versucht mit diesem script die baudrate und die
 Startsequenz zu senden. Anschliessend sehe ich in der while auch keinen
 Output auf der Konsole.

 #/usr/bin/pythonimport serial

 ser = serial.Serial('/dev/ttyS0', 300, timeout=100)
 ser.write(/?!0D0A)

 while True:
  x = ser.read()
  print x,
 ser.close()

 Dann ist das mit der Startsequenz irgendwie doch nicht so richtig.
 Ich denke ich muss erstmal das mit der start Sequenz lösen.

 Das obige schickt zwar die Sequenz  aber der Zähler schickt dann keine
 Werte.
 Sonst würde die while schleife ja etwas auf die console schreiben

 Grüsse
  und vielen Dank für deine Unterstützung




 Am 18. Mai 2013 14:07 schrieb Thorben Thuermer r...@constancy.org:

 On Sat, 18 May 2013 12:19:01 +0200
 Peter Kreutzer kreutzer.pe...@gmail.com wrote:
  nun habe ich mit dem python script die Startsequenz geschickt ..
  #/usr/bin/python
  import serial
  ser = serial.Serial('/dev/ttyS0', 300, timeout=100)
  ser.write(/?!0D0A)
 
  while True:
   x = ser.read()
   print x,
  ser.close()
 
  und anschliessend mit

 eigentlich musst du _waehrend_ vzlogger laeft die sequenz schicken,
 und vzlogger die antwort 

Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-18 Diskussionsfäden Udo1

Am 18.05.2013 12:19, schrieb Peter Kreutzer:

meters : [{
enabled : true,
//pullseq : 0D0A,
device : /dev/ttyS0,
protocol : d0,
}]

Das ist doch nicht die komplette Konfiguration, oder?

Beispiele siehe hier:
http://wiki.volkszaehler.org/software/controller/vzlogger

Gruß
Udo


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-18 Diskussionsfäden Peter Kreutzer
hi Udo ,

natürlich nicht.
/* vzlogger configuration
 *
 * use proper encoded JSON with javascript comments
 *
 * take a look at the wiki for detailed information:
 * http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
 */

{
retry : 30,   /* how long to sleep between failed
requests, in seconds */
//daemon: false,  /* run periodically */
foreground : true,/* run in background */
verbosity : 20,   /* between 0 and 15 */
log : /var/log/vzlogger.log,/* path to logfile, optional */

local : {
enabled : false,  /* should we start the local HTTPd for
serving live readings? */
port : 80,/* the TCP port for the local HTTPd */
index : true, /* should we provide a index listing of
available channels? */
timeout : 30, /* timeout for long polling comet requests,
0 disables comet, in seconds */
buffer : 600  /* how long to buffer readings for the
local interface, in seconds */
},

meters : [{
enabled : true,
//pullseq : /?!0D0A,
device : /dev/ttyS0,
protocol : d0,
}]
}

Ich gehe aber davon aus, das ohne channels erst mal sehen kann was vom
Zähler geschickt wird.

Grüsse
Peter


Am 18. Mai 2013 12:53 schrieb Udo1 u...@gmx.net:

 Am 18.05.2013 12:19, schrieb Peter Kreutzer:

  meters : [{
 enabled : true,
 //pullseq : 0D0A,
 device : /dev/ttyS0,
 protocol : d0,
 }]

 Das ist doch nicht die komplette Konfiguration, oder?

 Beispiele siehe hier:
 http://wiki.volkszaehler.org/**software/controller/vzloggerhttp://wiki.volkszaehler.org/software/controller/vzlogger

 Gruß
 Udo



Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-18 Diskussionsfäden Thorben Thuermer
On Sat, 18 May 2013 12:19:01 +0200
Peter Kreutzer kreutzer.pe...@gmail.com wrote:
 nun habe ich mit dem python script die Startsequenz geschickt ..
 #/usr/bin/python
 import serial
 ser = serial.Serial('/dev/ttyS0', 300, timeout=100)
 ser.write(/?!0D0A)
 
 while True:
  x = ser.read()
  print x,
 ser.close()

 und anschliessend mit

eigentlich musst du _waehrend_ vzlogger laeft die sequenz schicken,
und vzlogger die antwort lesen lassen.
das problem ist halt, dass vzlogger die nicht von sich aus schickt.
(ausser in der version von peter evertz, es waehre durchaus sinnvoll,
 wenn du testest ob die bei dir funktioniert.)
im prinzip einfach sowas wie: echo -en '/?!\r\n' /dev/ttyS0
(unter linux koennen mehrere programme gleichzeitig auf die
 schnittstelle schreiben, gibt nur ggfs chaos - aber vzlogger schreibt
 von sich aus eh nichts.)

  sudo vzlogger --config /etc/vzlogger.conf -v 20
[...]
 Hatte ihr einen Fehler drin. Die serielle Schnittstelle ist natürlich
 /dev/ttyS0, war vorher /dev/tty0

hatten wir oder hattest du? kam doch aus deinem beispiel?
wirklich ttyS0? nicht ttyUSB0 oder so?
du hast echt einen rs232 ir-kopf an COM1?

 Das Zähler schickt nun die Werte aber der vz looger kann mit den werten
 wohl nicht anfangen.
 [d0]   Something unexpected happened: read:281!
 
 Habt ihr vielleicht noch einen Tip was ander meter konfiguration nicht
 stimmt?

das dumme ist, das vzlogger nicht anzeigt, was er empfaengt.
moegliche ursachen:
* nur muell (falsche baudrate o.ae.)
* eine reflektion der anforderungssequenz
* eine variante von d0 die er nicht parsen kann

ich wuerde das untersuchen mit:
# sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20 
vzlogger.trace

in vzlogger.trace kann man dann nachlesen, was vzlogger liest.

 Danke
 Peter

- Thorben

 Am 17. Mai 2013 21:10 schrieb Thorben Thuermer r...@constancy.org:
  On Fri, 17 May 2013 20:29:25 +0200
  Peter Kreutzer kreutzer.pe...@gmail.com wrote:
   habe mal folgendes probiert
   #/usr/bin/python
   import serial
   ser = serial.Serial('/dev/tty0', 300, timeout=100)
   ser.write(\x0D)
   ser.write(\0A)
 
  die sequenz ist: /?!0d0a
 
   ser = serial.Serial('/dev/tty0', 9600, timeout=100)
 
  ausserdem sollte die rate konstant sein, solange du nicht eine aenderung
  anforderst...?
 
  probiere doch mal die version von peter evertz,
  die hat die funktion zum senden der sequenz eingebaut:
   pullseq : 4060200D0A, // HEX Darstellung der Pullsequenz
  http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html
 
   /Peter
 
  - T.
 
   Am 17. Mai 2013 00:21 schrieb Michael Wulz michael.w...@gmail.com:
  
Und die Baud Rate einstellen!
   
Von meinem iPad gesendet
   
Am 16.05.2013 um 21:53 schrieb Udo1 u...@gmx.net:
   
 Am 16.05.2013 20:58, schrieb Peter Kreutzer:
 Hier der Log
 == /?!0D0A
 Hallo Peter,

 du musst per script die Anforderungssequenz senden. Ich meine, bis
  jetzt
 ist das noch nicht in vzlogger implementiert.

 Gruß
 Udo
   
 


Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-18 Diskussionsfäden Peter Kreutzer
Hi Torben,

 sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20
vzlogger.trace

[pid  3742] stat(/etc/localtime, {st_mode=S_IFREG|0644, st_size=1892,
...}) = 0
[pid  3742] getppid()   = 3740
[pid  3742] write(3, [May 18 19:41:51][mtr0] Got 0 new readings from
meter:\n, 55) = 55
[pid  3742] read(4, , 1)  = 0
[pid  3742] stat(/etc/localtime, {st_mode=S_IFREG|0644, st_size=1892,
...}) = 0
[pid  3742] getppid()   = 3740
[pid  3742] write(2, [May 18 19:41:51][d0]   , 24[May 18 19:41:51][d0]
) = 24
[pid  3742] write(2, Something unexpected happened: read:281!,
40Something unexpected happened: read:281!) = 40
[pid  3742] write(2, \n, 1
)   = 1

Sieht so aus, das der Zähler einen leeren Wert senden.

Ich habe ja schon versucht mit diesem script die baudrate und die
Startsequenz zu senden. Anschliessend sehe ich in der while auch keinen
Output auf der Konsole.

#/usr/bin/pythonimport serial

ser = serial.Serial('/dev/ttyS0', 300, timeout=100)
ser.write(/?!0D0A)

while True:
 x = ser.read()
 print x,
ser.close()

Dann ist das mit der Startsequenz irgendwie doch nicht so richtig.
Ich denke ich muss erstmal das mit der start Sequenz lösen.

Das obige schickt zwar die Sequenz  aber der Zähler schickt dann keine
Werte.
Sonst würde die while schleife ja etwas auf die console schreiben

Grüsse
 und vielen Dank für deine Unterstützung




Am 18. Mai 2013 14:07 schrieb Thorben Thuermer r...@constancy.org:

 On Sat, 18 May 2013 12:19:01 +0200
 Peter Kreutzer kreutzer.pe...@gmail.com wrote:
  nun habe ich mit dem python script die Startsequenz geschickt ..
  #/usr/bin/python
  import serial
  ser = serial.Serial('/dev/ttyS0', 300, timeout=100)
  ser.write(/?!0D0A)
 
  while True:
   x = ser.read()
   print x,
  ser.close()
 
  und anschliessend mit

 eigentlich musst du _waehrend_ vzlogger laeft die sequenz schicken,
 und vzlogger die antwort lesen lassen.
 das problem ist halt, dass vzlogger die nicht von sich aus schickt.
 (ausser in der version von peter evertz, es waehre durchaus sinnvoll,
  wenn du testest ob die bei dir funktioniert.)
 im prinzip einfach sowas wie: echo -en '/?!\r\n' /dev/ttyS0
 (unter linux koennen mehrere programme gleichzeitig auf die
  schnittstelle schreiben, gibt nur ggfs chaos - aber vzlogger schreibt
  von sich aus eh nichts.)

   sudo vzlogger --config /etc/vzlogger.conf -v 20
 [...]
  Hatte ihr einen Fehler drin. Die serielle Schnittstelle ist natürlich
  /dev/ttyS0, war vorher /dev/tty0

 hatten wir oder hattest du? kam doch aus deinem beispiel?
 wirklich ttyS0? nicht ttyUSB0 oder so?
 du hast echt einen rs232 ir-kopf an COM1?

  Das Zähler schickt nun die Werte aber der vz looger kann mit den werten
  wohl nicht anfangen.
  [d0]   Something unexpected happened: read:281!
 
  Habt ihr vielleicht noch einen Tip was ander meter konfiguration nicht
  stimmt?

 das dumme ist, das vzlogger nicht anzeigt, was er empfaengt.
 moegliche ursachen:
 * nur muell (falsche baudrate o.ae.)
 * eine reflektion der anforderungssequenz
 * eine variante von d0 die er nicht parsen kann

 ich wuerde das untersuchen mit:
 # sudo strace -f -s  vzlogger --config /etc/vzlogger.conf -v 20
 vzlogger.trace

 in vzlogger.trace kann man dann nachlesen, was vzlogger liest.

  Danke
  Peter

 - Thorben

  Am 17. Mai 2013 21:10 schrieb Thorben Thuermer r...@constancy.org:
   On Fri, 17 May 2013 20:29:25 +0200
   Peter Kreutzer kreutzer.pe...@gmail.com wrote:
habe mal folgendes probiert
#/usr/bin/python
import serial
ser = serial.Serial('/dev/tty0', 300, timeout=100)
ser.write(\x0D)
ser.write(\0A)
  
   die sequenz ist: /?!0d0a
  
ser = serial.Serial('/dev/tty0', 9600, timeout=100)
  
   ausserdem sollte die rate konstant sein, solange du nicht eine
 aenderung
   anforderst...?
  
   probiere doch mal die version von peter evertz,
   die hat die funktion zum senden der sequenz eingebaut:
pullseq : 4060200D0A, // HEX Darstellung der Pullsequenz
  
 http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html
  
/Peter
  
   - T.
  
Am 17. Mai 2013 00:21 schrieb Michael Wulz michael.w...@gmail.com:
   
 Und die Baud Rate einstellen!

 Von meinem iPad gesendet

 Am 16.05.2013 um 21:53 schrieb Udo1 u...@gmx.net:

  Am 16.05.2013 20:58, schrieb Peter Kreutzer:
  Hier der Log
  == /?!0D0A
  Hallo Peter,
 
  du musst per script die Anforderungssequenz senden. Ich meine,
 bis
   jetzt
  ist das noch nicht in vzlogger implementiert.
 
  Gruß
  Udo

  



Re: [vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-17 Diskussionsfäden Thorben Thuermer
On Fri, 17 May 2013 20:29:25 +0200
Peter Kreutzer kreutzer.pe...@gmail.com wrote:
 habe mal folgendes probiert
 #/usr/bin/python
 import serial
 ser = serial.Serial('/dev/tty0', 300, timeout=100)
 ser.write(\x0D)
 ser.write(\0A)

die sequenz ist: /?!0d0a

 ser = serial.Serial('/dev/tty0', 9600, timeout=100)

ausserdem sollte die rate konstant sein, solange du nicht eine aenderung
anforderst...?

probiere doch mal die version von peter evertz,
die hat die funktion zum senden der sequenz eingebaut:
 pullseq : 4060200D0A, // HEX Darstellung der Pullsequenz
http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html

 /Peter

- T.

 Am 17. Mai 2013 00:21 schrieb Michael Wulz michael.w...@gmail.com:
 
  Und die Baud Rate einstellen!
 
  Von meinem iPad gesendet
 
  Am 16.05.2013 um 21:53 schrieb Udo1 u...@gmx.net:
 
   Am 16.05.2013 20:58, schrieb Peter Kreutzer:
   Hier der Log
   == /?!0D0A
   Hallo Peter,
  
   du musst per script die Anforderungssequenz senden. Ich meine, bis jetzt
   ist das noch nicht in vzlogger implementiert.
  
   Gruß
   Udo
 


[vz-dev] Inbetriebnahme ZMD120AR Landis Gyr mit IR Lesekopf über RS232

2013-05-16 Diskussionsfäden Peter Kreutzer
Hi ,


habe nun endlich geschafft meinen neunen  IR lesekopf an meinen Ubuntu
server anzuschliessen.

Den IR Lesekopf habe ich dann erst mal unter windows mit Test1107.exe
getestet.
Hier der Log
== /?!0D0A
== /?!
== --- 0x2F ---
== --- 0x4C ---
== --- 0x47 ---
== --- 0x5A ---
== --- 0x34 ---
== --- 0x5C ---
== --- 0x32 ---
== --- 0x5A ---
== --- 0x4D ---
== --- 0x44 ---
== --- 0x31 ---
== --- 0x32 ---
== --- 0x30 ---
== --- 0x32 ---
== --- 0x31 ---
== --- 0x34 ---
== --- 0x30 ---
== --- 0x2E ---
== --- 0x49 ---
== --- 0x30 ---
== --- 0x35 ---
== --- 0x0D ---
== --- 0x0A ---
==  -- STX --
== F.F()
== 0.0(  208578)
== 1.8.1(0022800*kWh)
== 1.8.1*04(0022705)
== 1.8.1*03(0022464)
== 1.8.1*02(0022026)
== 1.8.1*01(0021484)
== 1.8.1*12(0020867)
== 1.8.1*11(0020366)
== 1.8.1*10(0019983)
== 1.8.1*09(0019743)
== 1.8.1*08(0019585)
== 1.8.1*07(0019420)
== 1.8.1*06(0019261)
== 1.8.1*05(0019113)
== 1.8.1*04(0018908)
== 1.8.1*03(0018685)
== 1.8.1*02(0018379)
== 1.8.2(0033669*kWh)
== 1.8.2*04(0033580)
== 1.8.2*03(0033283)
== 1.8.2*02(0032643)
== 1.8.2*01(0031893)
== 1.8.2*12(0031054)
== 1.8.2*11(0030257)
== 1.8.2*10(0029772)
== 1.8.2*09(0029384)
== 1.8.2*08(0029120)
== 1.8.2*07(0028886)
== 1.8.2*06(0028645)
== 1.8.2*05(0028443)
== 1.8.2*04(0028145)
== 1.8.2*03(0027717)
== 1.8.2*02(0027229)
== 1.8.0(0056470*kWh)
== 2.8.0(000*kWh)
== 22.8.0(000*kWh)
== 42.8.0(000*kWh)
== 62.8.0(000*kWh)
== 0.9.1(19:26:45)
== 0.9.2(13-05-16)
== C.3.0(0080)
== 0.2.1(2010)
== C.2.1(07-06-30 02:01)
== !
==  -- ETX --
==  -- BCC --

Nun das ganze unter linux:
Nun habe ich die Middleware auf meinem ubuntu Rechner installiert.
Auch habe ich über apt den vzlogger installiert.
http://packages.mysmartgrid.de/ubuntu/
Habe  precise , Installation ist soweit durchgelaufen.

Hier meine aktuell vzlooger.conf
{
retry : 30,   /* how long to sleep between failed
requests, $
//daemon: false,  /* run periodically */
foreground : true,/* run in background */
verbosity : 20,   /* between 0 and 15 */
log : /var/log/vzlogger.log,/* path to logfile, optional */

local : {
enabled : false,  /* should we start the local HTTPd for
serving$
port : 80,/* the TCP port for the local HTTPd */
index : true, /* should we provide a index listing of
availa$
timeout : 30, /* timeout for long polling comet requests,
0 $
buffer : 600  /* how long to buffer readings for the
local i$
},

meters : [{
enabled : true,
device : /dev/tty0,
protocol : d0,
}]

}

und hier der log

vzlogger --config /etc/vzlogger.conf
[mtr0] Creating new meter with protocol d0.
[mtr0] Meter configured.
   New meter initialized (protocol=d0)
   Have 1 meters.
[main] foreground=1, daemon=0, local=0
   NOT Daemonize process...
   Opened logfile /var/log/vzlogger.log
[] === Start meters.
[mtr0] Meter connection established
[mtr0] Meter thread started
[mtr0] meter is opened. Start channels.
[] Startup done.
[mtr0] Number of readers: 32
[mtr0] Config.daemon: 0
[mtr0] Config.local: 0

und nun kommt nichts mehr... Der Zaehler sendet keine Daten.

Was mache ich falsch ?

Grüsse Peter