hardware:channels:meters:power:edl-ehz:easymeter_q3d
Inhaltsverzeichnis
Easymeter Q3D
Hardware
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:
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 <ip> 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;\ }
hardware/channels/meters/power/edl-ehz/easymeter_q3d.txt · Zuletzt geändert: 2022/09/13 18:17 von flohoff