Pythonはpyserialを用いてシリアル通信を行う


pyserialのインストール
pip install pyserial

使用可能なポートの表示
# coding:utf-8

import serial.tools.list_ports

plist = list(serial.tools.list_ports.comports())

if len(plist) <= 0:
    print("      !")
else:
    plist_0 = list(plist[0])
    serialName = plist_0[0]
    serialFd = serial.Serial(serialName, 9600, timeout=60)
    print("     >>>", serialFd.name)

16進数は以下のフォーマットに変換する必要があります.
#          010591F50000F104
cmd = [0x01, 0x05, 0x91, 0xF5, 0x00, 0x00, 0xF1, 0x04]

シリアル通信Windows下ポートはCOM*、Ubuntu下ポートは/dev/ttyS0
import serial

class Ser(object):
    def __init__(self):
        #     
        self.port = serial.Serial(port='COM4', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=2)

    #          
    def send_cmd(self, cmd):
        self.port.write(cmd)
        response = self.port.readall()
        response = self.convert_hex(response)
        return response

    #   16     
    def convert_hex(self, string):
        res = []
        result = []
        for item in string:
            res.append(item)
        for i in res:
            result.append(hex(i))
        return result