ich bin neu hier uns auch Python Anfänger und damit auf Eure Hilfe angewiesen.
Zum Vorhaben. Ich möchte mit einem Python3.X Script und dem pyserial Modul 2.6 via RPi3 mit Jessie und einem USB IR-Schreib-Lesekopf meinen Stromzähler (eHZ) auslesen. Der IR-Schreib-Lesekopf ist an ttyUSB2 verbunden.
Um die Kommunikation mit dem Zähler aufzunehmen, muss als INIT folgendes senden:
HEX: 2F3F210D0A
ASCII: /?!<CR><LF>
Der Zähler antwortet mit:
ASCII: /ITF5FRP-SMV320090704<\r><\n>
Ich sende innerhalb von 2 Sekunden:
HEX: 063035300d0a
ASCII: <ACK>050<CR><LF>
Der Zähler antwortet mit seinen Daten.
Nun habe ich mich an den Code versucht, scheitere aber schon an ser.write.
Ich habe keine Ahnung, wie ich die ASCII oder HEX Zeichenfolge eingeben muss.
Könnt ihr hier helfen?
Code: Alles auswählen
#!/usr/bin/python
#
#
import sys
import serial
import time
import string
logger.info("Logik ITF : by :" + trigger['by'] )
# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(
port='/dev/ttyUSB2',
baudrate=9600,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS
)
#ser.open()
#ser.isOpen()
ser.write(b'2F3F210D0A')
#ser.write('2F3F210D0A'.enode('utf-8'))
#ser.write("/?!<0D><0A>")
# let's wait a short time before reading the responses
time.sleep(1)
out = ser.read()
logger.info(out)
ser.close()
DANKE