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.
Alternativ gleich ein 3D gedrucktes Gehäuse für die Montage einer NodeMCU auf dem Easymeter. https://github.com/flohoff/easymeterq3d-topcase
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, "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" } ] }
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;\ }