#!/usr/bin/python # -*- coding: utf-8 -*- import serial, time import meterbus import requests address = 0 port = 'COM8' wakeup = "\x55" * 132 # start communication with 8N1, DTR enabled ser = serial.Serial(port, 2400, 8, 'N', 1, 0.5) ser.dsrdtr=True # send wake up sequence ser.write(wakeup) time.sleep(0.130) ser.read() response = ser.readline() # switch to 8E1 ser.parity = serial.PARITY_EVEN # SND_NKE to reset the communication meterbus.send_ping_frame(ser, address) frame = meterbus.load(meterbus.recv_frame(ser, 1)) assert isinstance(frame, meterbus.TelegramACK) # request data from meter meterbus.send_request_frame(ser, address) frame = meterbus.load(meterbus.recv_frame(ser, meterbus.FRAME_DATA_LENGTH)) assert isinstance(frame, meterbus.TelegramLong) # print data, todo: save it to file print(frame.to_JSON()) ser.close()