====== Easymeter Q3D ======
===== Hardware =====
Der Q3D hat die IR-Schnittstelle oben drauf. Man benötigt eine [[hardware:controllers:ir-schreib-lesekopf_easymeter-adapter|Adapterplatte]] um den [[hardware:controllers:ir-schreib-lesekopf-usb-ausgang|IR-Schreib-Lesekopf]] zu befestigen.\\
Der IR-Kopf wird mit der Zuleitung nach vorne montiert.\\
Alternativ gleich ein 3D gedrucktes Gehäuse für die Montage einer NodeMCU auf dem Easymeter.
[[https://github.com/flohoff/easymeterq3d-topcase|https://github.com/flohoff/easymeterq3d-topcase]]
Der Q3D benötigt nur teilweise eine Aufforderung um seine Daten zu senden. Die Kommunikation erfolgt mit [[hardware:controllers:ir-schreib-lesekopf#grundlagen|9600bd, 7E1]].\\
Eine vzlogger.conf zur Ermittlung der Daten, die der Zähler sendet:\\
===== Beispielkonfiguration =====
Eine exemplarische vzlogger.conf:
{
"retry": 0,
"verbosity": 15,
"log": "/var/log/vzlogger/vzlogger.log",
"local": {
"enabled": false,
"port": 8081,
"index": false,
"timeout": 0,
"buffer": 0
},
"meters": [
{
"enabled": true,
"allowskip": false,
"interval": -1,
"aggtime": -1,
"aggfixedinterval": false,
"channels": [
{
"api": "volkszaehler",
"uuid": "hier deine, beim Erstellen des Kanals im Frontend erhaltene UUID, eintragen",
"identifier": "1-0:1.8.0",
"middleware": "http://localhost/middleware.php",
"aggmode": "none",
"duplicates": 0
}
],
"protocol": "d0",
"device": "/dev/ttyUSB0",
"baudrate": 9600,
"parity": "7e1"
}
]
}
===== Auslesen per NetIO =====
Wie man den Easymeter am NetIO von Pollin in den Volkszähler bekommen hat:
- Anschluss an die DSUB9 Buchse Pin 3 (Daten) und Pin 5 (GND) - Je nach Lesekopf ggf. noch eine 5V Speisung entnehmen
- 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.
- Es ist eine Anpassung der usart.h im core Verzeichnis des Ethersex auf 7E1 erforderlich (s.u.)
- anschließend sollte man überprüfen, ob nc 7970 die Werte brav im Sekundentakt ausgibt.
- 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.
- 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;\
}