====== Kamstrup Multical 401 ====== Der Kamstrup Multical 401 kann nach DIN EN 62056-21 über die IR-Schnittstelle ausgelesen werden. Wahrscheinlich geht es auch mit anderen Zählern der Firma Kamstrup, bitte bei erfolgreichen Versuchen das Wiki entsprechend ergänzen. ===== Hardware ===== Man benötigt den [[hardware:controllers:ir-schreib-lesekopf|IR-Schreib-Lesekopf]], da der Zähler erst angesprochen werden muss, bevor er sendet. Je nachdem woran man den IR-Kopf anschließen will, braucht man die [[hardware:controllers:ir-schreib-lesekopf-usb-ausgang|USB-Version]], [[hardware:controllers:ir-schreib-lesekopf-rs232-ausgang|RS232-Version]] oder die [[hardware:controllers:ir-schreib-lesekopf-ttl-ausgang|TTL-Version]]. ===== Kommunikation ===== Anders als in dem technischen Handbuch von Kamstrup beschrieben wird für eine erfolgreiche Kommunikation nur ein Stop-Bit benötigt und keine zwei. Die korrekten einstellungen für die Seriele Schnittstelle lauten also: (300/1200),7E1 und nicht (300/1200),7E2 Für den Zähler gibte es mehrere Dokumentierte Befehle auf denen er antwortet. Kurioserweise hat man sich bei Kamstrup dafür entschieden, dass Befehle mit 300 Baud angenommen werden, dieser Antwortet jedoch mit 1200 Baud. Ein umstellen der Schnittsetellengeschwindigkeit nach dem Senden ist also erforderlich. Folgende Befehle sind seitens Kamstrup dokumentiert: **Befehl:**/?![CR][LF][ACK]000[CR][LF] **Antwort:** /KAM[0]MCC[CR][LF][STX] 0.0(11 digits C/N)6.8(Energy * unit) 6.26(Volume * m3) 6.31(Hours * h) ! [CR] [LF] [ETX] [BCC] **Befehl (STANDARD DATA 1):**/#1 **Antwort Beispiel:**0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 **Bedeutung:** - Zählerstand - Volumen - Betriebstunden - T Vorlauf - T Rücklauf - T Vorlauf - T Rücklauf - mom. Leistung - mom. Durchfluß - Max Leistung - Info **Befehl (STANDARD DATA 2):**/#2 **Antwort Beispiel:**00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 **Bedeutung laut tech. Dok:** - Cust. No. - TA2 - TL2 - TA3 - TL3 - In-A - In-B - ABCCC - DDEFFGG - Date **Befehl (Target Data):**/#3 **Antwort Beispiel:**00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 **Bedeutung laut tech. Dok:** - Cust. No. - Reading day - Energy - Volume - TA2 - TA3 - In-A - In-B - Peak power/flow year **Befehl (Montly Data):**/#5 **Antwort Beispiel:**00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 **Bedeutung laut tech. Dok:** - Cust. No. - Reading date - Energy - Volume - TA2 - TA3 - In-A - In-B - Peak power/flow actual Auf letzteren ( Montly Data ) hat mein Zähler jedoch nicht reagiert ( eingesetzt von den Stardwerken Flensburg ) ===== Beispielcode in Python ===== Dieser Beispielcode füttert ein RRD-tool alle etwa 30 Sekunden mit den Daten, die dann mit rrd-graph geplottet werden können: import serial import rrdtool from time import sleep mc401 = serial.Serial(port='/dev/ttyUSB0', bytesize=serial.SEVENBITS, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE, timeout=2) while True: mc401.baudrate = 300 mc401.write("/#1") mc401.flush() sleep(1) mc401.baudrate = 1200 mc401.flushInput() data = mc401.read(87).split() try: rrdtool.update('multical401.rrd', 'N:%s:%s:%s:%s:%s:%s:%s' % (data[0], data[1], data[3], data[4], data[5], data[6], data[7])) except IndexError: pass sleep(26) mc401.close() ===== Quellen ===== [1] [[http://kamstrup.com/media/11981/file.pdf|Technische Beschreibung Kamstrup Multical 401]]\\