DAS SMART METER FÜR JEDEN

OBIS

OBIS („Object Identification System“) Kennzahlen (ehemals EDIS) werden zur eindeutigen Identifikation von Messwerten (Energiemengen, Zählerstände) und auch abstrakter Daten beim elektronischen Datenaustausch zwischen den beteiligten Kommunikationspartnern in verschiedenen Nachrichtentypen (MSCONS, UTILMD) verwendet.

Beispiele

Diese Smartmeter benutzen wie auch SML die OBIS Kennzahlen nur um verschieden Messgrößen zu kennzeichnen. Die Übertragenen Daten sind selbst kein OBIS, sondern ein zeilenbasiertes Protokoll, das in DIN EN 62056-21 beschrieben ist.

gonium hat etwas C-Code bereitgestellt um diese Daten via RS232 auszulesen: libehz.

Für node.js existiert auch ein kleines Tool: nodeehz

Easymeter Q3D

/ESY5Q3DA1002 V3.021-
0:0.0.0*255(54920)
1-0:1.8.0*255(00003984.9338242*kWh)
1-0:21.7.255*255(000176.85*W)
1-0:41.7.255*255(001025.66*W)
1-0:61.7.255*255(002529.68*W)
1-0:1.7.255*255(003732.19*W)
1-0:96.5.5*255(82)
0-0:96.1.255*255(1ESY0943000XXX)!

einige Tipps von Homer, wie er den Easymeter am NetIO von Pollin in den Volkszähler bekommen hat:

  1. Anschluss an die DSUB9 Buchse Pin 3 (Daten) und Pin 5 (GND) - Je nach Lesekopf ggf. noch eine 5V Speisung entnehmen
  2. Im Ethersex YPORT Node aktivieren, den Buffer unbedingt vergrößern. Bei mir ging ein Wert von 200 - zu große und zu kleine Werte führen zu Verschluckern, da der Buffer nicht richtig ausgelesen wird.
  3. Es ist eine Anpassung der usart.h im core Verzeichnis des Ethersex auf 7E1 erforderlich (s.u.)
  4. anschließend sollte man überprüfen, ob nc <ip> 7970 die Werte brav im Sekundentakt ausgibt.
  5. Nun gehts an vzlogger…. Besorge dir mind. vzlogger 0.3.3, erst dort ist das D0 Protokoll vorhanden, das für die Q3D Auswertung benötigt wird.
  6. In der /etc/vzlogger.conf stellt man nun nur noch die IP des Ethersex Moduls ein sowie seine uuid-Kanäle, dann sollte es klappen….

Auszug aus der usart.h

/* init the usart module */ #define generate_usart_init() \ static void \ usart_init(void) \ {\

  /* The ATmega644 datasheet suggests to clear the global\
     interrupt flags on initialization ... */\
  uint8_t sreg = SREG; cli(); \
  usart(UBRR,H) = UBRRH_VALUE; \
  usart(UBRR,L) = UBRRL_VALUE; \
  /* set mode: 7 bits, 1 stop, even parity, asynchronous usart 7e1 Q3D*/ \
  /*   and set URSEL, if present, */ \
  usart(UCSR,C) = _BV(usart(UCSZ,1)) | _BV(usart(UPM,1)) | _BV_URSEL; \
  /* Enable the RX interrupt and receiver and transmitter */ \
  usart(UCSR,B) |= _BV(usart(TXEN)) | _BV(usart(RXEN)) | _BV(usart(RXCIE));\
  /* Set or not set the 2x mode */ \
  USART_2X(); \
  /* Go! */ \
  SREG = sreg;\

}

EMH eHZ FW8E2A500AK1

/EMH5----eHZ-E0028E

1-0:0.0.0*255(123456-1234567)   <- Eigentumsnr.
1-0:1.8.1*255(068673.6968)      <- Zählerstand Bezug
1-0:96.5.5*255(82)              <- Status, hexadezimal
0-0:96.1.255*255(0005555555)    <- Fabriknummer
!

Hager eHZ

/HAG5eHZ010C_EHZ1vA02

1-0:0.0.0*255(1234567890123456) ← Eigentumsnr.

1-0:1.8.0*255(000001.2963)
1-0:96.5.5*255(82)
0-0:96.1.255*255(0000067865)
1-0:52.7.0*255(228.38*V)
1-0:51.7.0*255(000.16*A)
1-0:41.7.0*255(+00026*W)
1-0:96.50.0*0(45)
1-0:96.50.0*1(07D0)
1-0:96.50.0*2(16)
1-0:96.50.0*3(11)
1-0:96.50.0*4(1F)
1-0:96.50.0*5(18)
1-0:96.50.0*6(003D381B070AF6B0CF05140900009F80)
1-0:96.50.0*7(00)
!

Weblinks

Quelle

software/obis.txt · Zuletzt geändert: 2015/06/10 17:29 von Tom Weber