Der Q3D hat die IR-Schnittstelle oben drauf. Man benötigt eine Adapterplatte um den IR-Schreib-Lesekopf zu befestigen.
Der IR-Kopf wird mit der Zuleitung nach vorne montiert.
Der Q3D benötigt nur teilweise eine Aufforderung um seine Daten zu senden. Die Kommunikation erfolgt mit 9600bd, 7E1.
Eine vzlogger.conf zur Ermittlung der Daten, die der Zähler sendet:
Eine exemplarische vzlogger.conf:
{ "retry": 0, "daemon": true, "verbosity": 15, "log": "/var/log/vzlogger.log", "local": { "enabled": false, "port": 8080, "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" } ] }
Wie man den Easymeter am NetIO von Pollin in den Volkszähler bekommen hat:
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;\ }